On Sun, Dec 04, 2011 at 08:35:07PM +0000, Iain Sandoe wrote: > > On 4 Dec 2011, at 20:19, Jack Howarth wrote: > >> On Sun, Dec 04, 2011 at 08:18:32PM +0100, Jakub Jelinek wrote: >>> On Sun, Dec 04, 2011 at 02:00:20PM -0500, Jack Howarth wrote: >>>>>> at -m32/-m64 on x86_64-apple-darwin11 due to the -pie linker >>>>>> default. Iain had wanted >>>>>> to leave these in place to encourage boehm-gc to be fixed but I >>>>>> doubt that is a realistic >>>>>> goal in the near/middle term. Perhaps we could patch boehm-gc/ >>>>>> testsuite/lib/boehm-gc.exp >>>>>> to pass -fno-pie on darwin (now that it is functional)? >>>>> >>>>> I think we should just find a way to add -fno-pie... Are there any >>>>> flags that are added because we are doing gc that we can key off >>>>> of? >>> >>> -f{pic,PIC,pie,PIE,no-pic} aren't option that should have any effect >>> on how >>> are binaries/shared libraries linked, these options control solely >>> compilation. -shared, -pie or lack of these options determines how >>> are >>> things linked. So, either you should pass -no-pie or whatever >>> linker option >>> you need to generate position dependent binaries by default, unless >>> -shared >>> or -pie is specified, or you should add -no-pie or something >>> similar, but >>> IMHO it shouldn't be -fno-pie, that is a compilation option/too >>> similar to >>> them. >> >> Jakub, >> This isn't really an option on darwin11 and later since the linker >> defaults to >> -pie and this results in warnings from the linker of the form... >> >> ld: warning: PIE disabled. Absolute addressing (perhaps -mdynamic-no- >> pic) not allowed in code signed PIE, but used in _f from /var/tmp// >> ccVNy9V9.o. To fix this warning, don't compile with -mdynamic-no-pic >> or link with -Wl,-no_pie > > perhaps the question should be "why is this particualr code being built > with non-default options?". > x86 darwin code should default to fPIC - so someone must be passing - > mdynamic-no-pic or -fno-PIC etc.
Iain, I was only pointing out that we are in a unique situation when targeting darwin11 and later since we are the only target currently creating PIE by default. However unlike linux, darwin doesn't require or even encourage the use of -fpie/-fPIE to do this but silently relies on the default -fPIC. Also, the warning cited above was from gcc.dg/20020312-2.c which previously failed its excessive error test since it passed -fno-pic which triggered the warning. Jack > > (perhaps derived from the bootstrap usage of the "-mdynamic-no-pic" > option - which suggests that this should be disabled for Darwin >= 11). > > Iain