This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] use -fno-pie on darwin in boehm-gc.exp



On 8 Dec 2011, at 17:24, Jack Howarth wrote:


On Thu, Dec 08, 2011 at 05:05:12PM +0000, Iain Sandoe wrote:

On 8 Dec 2011, at 16:58, Jack Howarth wrote:


On Thu, Dec 08, 2011 at 03:54:35PM +0000, Iain Sandoe wrote:

On 8 Dec 2011, at 15:38, Jack Howarth wrote:


Currently the boehm-gc testsuite fails...

FAIL: boehm-gc.c/gctest.c -O2 execution test
FAIL: boehm-gc.c/leak_test.c -O2 execution test
FAIL: boehm-gc.c/thread_leak_test.c -O2 execution test
FAIL: boehm-gc.lib/staticrootstest.c -O2 execution test

you have not answered these questions:


a) "what is anything being built in these tests which is not PIC"?
b) and why is it being built that way?

ISTM the fix below should not be required
- and the problem lies in something being built with -mdynamic-no-
pic or
similar

Nothing in boehm-gc is built non-PIC (see the attached log for boehm-
gc).
Likewise nothing in the testsuite is built non-PIC. For example,
gctest.c
at -O2 is built, according to -v, as...


/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/cc1 -quiet -v - I /
sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/x86_64-apple-
darwin11.2.0/./boehm-gc/include -I /sw/src/fink.build/gcc47-4.7.0-1/
gcc-4.7-20111207/boehm-gc/testsuite/../include -iprefix /sw/src/
fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/../lib/gcc/x86_64-apple-
darwin11.2.0/4.7.0/ -isystem /sw/src/fink.build/gcc47-4.7.0-1/
darwin_objdir/gcc/include -isystem /sw/src/fink.build/gcc47-4.7.0-1/
darwin_objdir/gcc/include-fixed -D__DYNAMIC__ /sw/src/fink.build/
gcc47-4.7.0-1/gcc-4.7-20111207/boehm-gc/testsuite/boehm-gc.c/ gctest.c
-fPIC -quiet -dumpbase gctest.c -mmacosx-version-min=10.7.2
-mtune=core2 -auxbase gctest -O2 -version -o /var/tmp//ccgHCNRC.s


The test is also just linked to the the libgcjgcj built in boehm- gc...

/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/collect-ld - dynamic
-arch x86_64 -macosx_version_min 10.7.2 -weak_reference_mismatches
non-weak -o ./.libs/gctest -lcrt1.10.6.o -
L/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc /var/tmp//
ccb3OaQl.o /sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/x86_64-
apple-darwin11.2.0/./boehm-gc/.libs/libgcjgc.dylib - no_compact_unwind
-lSystem -lgcc_ext.10.5 -lgcc -lSystem -v


so the build in boehm-gc appears to be self-contained.

OK- so it appears ... ... so why is ld complaining that there's non-PIC code present?

Where do you see ld complaining of non-PIC code?

OK. Different problem - I recalled that there were [PIE] issues with ld complaining.


.. if PIE is fundamentally incompatible with boehm-gc (is it??) - then, right, we need to make sure it's off -

- presumably it's not affecting any other target - because they don't do PIE unless told to ...

Perhaps it would be better to adjust the spec that you made (and has been applied) to ensure that -no_pie is passed to the linker *unless* pie is explicitly given on the c/l?

At present, you pass it when "no-pic, no-pie" etc. are - perhaps it should just be the default and *only* switched on for -pie something like....

%{!fpie: %{!PIE: %:version-compare(>= 10.7 mmacosx-version-min= - no_pie) } }

Otherwise, D11 is behaving differently from other targets for the whole test-suite - not just boehm-gc.

cheers
Iain



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]