[Unison-hackers] Mac update

Marcus Crestani crestani at informatik.uni-tuebingen.de
Thu Jul 17 11:51:25 EDT 2014


>>>>>"AS" == Alan Shutko <ats at acm.org> writes:
AS> Marcus, how is your build setup? Is it possible there is a difference
AS> between the way certain libraries were built? It seems like we might
AS> get a SIGILL as shown in your crash if we have some parts compiled for
AS> 32-bit and others for 64-bit (or other arch differences).  In
AS> UISTYLE=text, all the build arguments are controlled by the
AS> makefile. In UISTYLE=uimac* the flags for compiling the objective C
AS> stuff is in the xcode project.

otool -L /Applications/Unison.app/Contents/MacOS/Unison shows that the
binary is only linked to Frameworks or dylibs that come with OS X, no
libraries that I have custom built:

	/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 20.0.0)
	/System/Library/Frameworks/Security.framework/Versions/A/Security (compatibility version 1.0.0, current version 55471.14.0)
	/System/Library/Frameworks/ExceptionHandling.framework/Versions/A/ExceptionHandling (compatibility version 1.0.0, current version 10.0.0)
	@executable_path/../Frameworks/Growl.framework/Versions/A/Growl (compatibility version 1.0.0, current version 1.0.0)
	/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1056.13.0)
	/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
	/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1265.19.0)
	/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 855.14.0)

These built-in libraries are all fat binaries:

# otool -L /Applications/Unison.app/Contents/MacOS/Unison | cut -d ' ' -f 1 | grep -v "^Unison" | xargs file
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa:                         Mach-O universal binary with 2 architectures
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (for architecture x86_64):	Mach-O 64-bit dynamically linked shared library x86_64
/System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (for architecture i386):	Mach-O dynamically linked shared library i386
/System/Library/Frameworks/Security.framework/Versions/A/Security:                   Mach-O universal binary with 2 architectures
/System/Library/Frameworks/Security.framework/Versions/A/Security (for architecture x86_64):	Mach-O 64-bit dynamically linked shared library x86_64
/System/Library/Frameworks/Security.framework/Versions/A/Security (for architecture i386):	Mach-O dynamically linked shared library i386
/System/Library/Frameworks/ExceptionHandling.framework/Versions/A/ExceptionHandling: Mach-O universal binary with 2 architectures
/System/Library/Frameworks/ExceptionHandling.framework/Versions/A/ExceptionHandling (for architecture x86_64):	Mach-O 64-bit dynamically linked shared library x86_64
/System/Library/Frameworks/ExceptionHandling.framework/Versions/A/ExceptionHandling (for architecture i386):	Mach-O dynamically linked shared library i386
@executable_path/../Frameworks/Growl.framework/Versions/A/Growl:                     cannot open `@executable_path/../Frameworks/Growl.framework/Versions/A/Growl' (No such file or directory)
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation:               Mach-O universal binary with 2 architectures
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (for architecture x86_64):	Mach-O 64-bit dynamically linked shared library x86_64
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (for architecture i386):	Mach-O dynamically linked shared library i386
/usr/lib/libobjc.A.dylib:                                                            Mach-O universal binary with 2 architectures
/usr/lib/libobjc.A.dylib (for architecture x86_64):	Mach-O 64-bit dynamically linked shared library x86_64
/usr/lib/libobjc.A.dylib (for architecture i386):	Mach-O dynamically linked shared library i386
/usr/lib/libSystem.B.dylib:                                                          Mach-O universal binary with 2 architectures
/usr/lib/libSystem.B.dylib (for architecture x86_64):	Mach-O 64-bit dynamically linked shared library x86_64
/usr/lib/libSystem.B.dylib (for architecture i386):	Mach-O dynamically linked shared library i386
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit:                       Mach-O universal binary with 2 architectures
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (for architecture x86_64):	Mach-O 64-bit dynamically linked shared library x86_64
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (for architecture i386):	Mach-O dynamically linked shared library i386
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation:       Mach-O universal binary with 2 architectures
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (for architecture x86_64):	Mach-O 64-bit dynamically linked shared library x86_64
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (for architecture i386):	Mach-O dynamically linked shared library i386

The path to Growl in the above output is broken.  But it is also a fat
binary:

# file /Applications/Unison.app/Contents/Frameworks/Growl.framework/Growl 
/Applications/Unison.app/Contents/Frameworks/Growl.framework/Growl: Mach-O universal binary with 3 architectures
/Applications/Unison.app/Contents/Frameworks/Growl.framework/Growl (for architecture x86_64):	Mach-O 64-bit dynamically linked shared library x86_64
/Applications/Unison.app/Contents/Frameworks/Growl.framework/Growl (for architecture i386):	Mach-O dynamically linked shared library i386
/Applications/Unison.app/Contents/Frameworks/Growl.framework/Growl (for architecture ppc):	Mach-O dynamically linked shared library ppc

AS> Three questions: could you send me a log of your compilation?  

Sure, it is attached.

AS> Are you using the new version on both the local and remote system?

I always use the new version on both systems (otherwise, Unison would
fail with a version mismatch, I guess).

AS> If so, is it crashing on the local system, the remote, or both?

It crashes only on the local system.

Thanks for looking into it, hope this helps,
Marcus

-------------- next part --------------
A non-text attachment was scrubbed...
Name: build.log
Type: application/octet-stream
Size: 153030 bytes
Desc: not available
URL: <http://lists.seas.upenn.edu/pipermail/unison-hackers/attachments/20140717/eb190726/attachment-0001.obj>


More information about the Unison-hackers mailing list