GHC 7.0.4 on Lion

David Peixotto dmp at
Mon Jul 25 16:33:00 CEST 2011

I think the warnings are not a big concern. I silence both of them by adding -optl"-Wl,-no_compact_unwind,-no_pie" to my ghc options in /usr/bin/ghc.

In 10.7 they changed the default linking options to create a PIE (position independent executable). To create a PIE you have to compile all code as position independent, which is the default option of GHC on mac os x. For performance reasons some code is compiled with absolute references (like the gmp library code in your example) so it cannot be used when creating a PIE. The advantage of a PIE executable is that it is more secure because the OS can load it at a random base address.

I believe the "compact unwind" warning is related to the creation of unwind frames for error handling with exceptions in languages like C++. There are some more details in this trac ticket: I'm not sure what the advantage of the compact unwind is, but it sounds like it could make the executable smaller.


On Jul 25, 2011, at 7:59 AM, Luca Ciciriello wrote:

> Hi All.
> I've installed on my Mac the new MacOS X 10.7 (Lion) with Xcode 4.1
> Using ghc 7.0.4 (64-bit) on that system a get the following warnings in the linking phase:
> Linking hslint ...
> ld: warning: could not create compact unwind for _ffi_call_unix64: does not use RBP or RSP based frame
> ld: warning: PIE disabled. Absolute addressing (perhaps -mdynamic-no-pic) not allowed in code signed PIE, but used in ___gmpn_modexact_1c_odd from /Library/Frameworks/GHC.framework/Versions/7.0.4-x86_64/usr/lib/ghc-7.0.4/integer-gmp- To fix this warning, don't compile with -mdynamic-no-pic or link with -Wl,-no_pie
> Is this something to worrying about?
> Thanks in advance for any answer.
> Luca
> _______________________________________________
> Glasgow-haskell-users mailing list
> Glasgow-haskell-users at

More information about the Glasgow-haskell-users mailing list