[Mono-osx] mkbunde produces broken binary

Alexander Shulgin alexander.shulgin at yessoftware.com
Mon Oct 25 09:11:25 EDT 2010

On 28.09.2010 14:51, jahewson wrote:
> I'm trying to get mkbundle to work on OS X 10.6.3, using Mono 2.8
> To get mkbundle itself working I use the following hacks from the forum:
> export
> PKG_CONFIG_PATH="/Library/Frameworks/Mono.framework/Versions/Current/lib/pkgconfig/"
> export AS="as -arch i386"
> export CC="cc -arch i386"
> This works, and mkbundle produces a binary, however attempting to run the
> binary gives the error:
> dyld: _dyld_bind_fully_image_containing_address() error
> dyld: Symbol not found: _CFLocaleCopyCurrent
>    Referenced from:
> /Library/Frameworks/Mono.framework/Versions/2.8/lib/libmono-2.0.1.dylib
>    Expected in: dynamic lookup
> Trace/BPT trap
> It's taken me a several days to get mkbundle working at all... to me this is
> a deal breaker for Mono adoption.

I was bitten by the same issue, but have found a workaround:

$ mkbundle hello.exe -c -o hello.c --keeptemp

$ cc -arch i386 -g -o hello -Wall hello.c `pkg-config --cflags --libs 
mono-2` temp.o -framework CoreFoundation

So basically, this tells mkbundle to produce and assemble temp.s and 
only produce hello.c which we then compile using the same command 
mkbundle will use, while adding that '-framework' option.

I guess the correct way would be to fix mono-2.pc file to include the 
required option.


More information about the Mono-osx mailing list