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. > > - that is what we should fix. > cheers > Iain > >> >> on x86_64-apple-darwin11 due to the -pie linker default. The attached >> patch >> uses -fno-pie on darwin to insure that -no_pie is passed to the linker >> when >> targeting darwin11 or later. This approach is used because istarget >> doesn't >> support complex regex to allow -Wl,-no_pie to be passed for darwin11 >> and later >> only (since only recent Xcode releases understand the -no_pie linker >> option). >> Also, -fno_pie has the advantage of supporting -mmacosx-version-min >> usage. >> Regression tested on x86_64-apple-darwin11... >> >> http://gcc.gnu.org/ml/gcc-testresults/2011-12/msg00856.html >> >> Okay for gcc trunk? >> Jack >> >> >> boehm-gc/ >> >> 2011-12-08 Jack Howarth <howa...@bromo.med.uc.edu> >> >> * testsuite/lib/boehm-gc.exp: Use -fno-pie on darwin. >> >> Index: boehm-gc/testsuite/lib/boehm-gc.exp >> =================================================================== >> --- boehm-gc/testsuite/lib/boehm-gc.exp (revision 182117) >> +++ boehm-gc/testsuite/lib/boehm-gc.exp (working copy) >> @@ -214,6 +214,11 @@ proc boehm-gc_target_compile { source de >> lappend options "additional_flags=-I${gc_include} -I${srcdir}/../ >> include" >> lappend options "additional_flags=${threadcflags}" >> >> + # Disable -pie linker default for darwin11 and later using -fno- >> pie. >> + if { [istarget *-*-darwin*] } { >> + lappend options "additional_flags=-fno-pie" >> + } >> + >> lappend options "libs=-Wc,-shared-libgcc" >> >> if { [file extension $dest] == ".la" } {
boehm-gc.log.bz2
Description: BZip2 compressed data