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? Running target unix Using /sw/share/dejagnu/baseboards/unix.exp as board description file for target. Using /sw/share/dejagnu/config/unix.exp as generic interface file for target. Using /sw/src/fink.build/gcc47-4.7.0-1/gcc-4.7-20111207/boehm-gc/testsuite/config/default.exp as tool-and-target-specific interface file. Running /sw/src/fink.build/gcc47-4.7.0-1/gcc-4.7-20111207/boehm-gc/testsuite/boehm-gc.c/c.exp ... set_ld_library_path_env_vars: ld_library_path=.:/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc:/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/x86_64-apple-darwin11.2.0/./boehm-gc/.libs:.libs Executing on host: ../libtool --silent --tag=CC --mode=link /sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/xgcc -B/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/ /sw/src/fink.build/gcc47-4.7.0-1/gcc-4.7-20111207/boehm-gc/testsuite/boehm-gc.c/gctest.c /sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/x86_64-apple-darwin11.2.0/./boehm-gc/libgcjgc.la -O2 -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 -Wc,-shared-libgcc -lpthread -lm -o ./gctest (timeout = 300) PASS: boehm-gc.c/gctest.c -O2 (test for excess errors) Setting LD_LIBRARY_PATH to .:/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc:/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/x86_64-apple-darwin11.2.0/./boehm-gc/.libs:.libs:.:/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc:/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/x86_64-apple-darwin11.2.0/./boehm-gc/.libs:.libs FAIL: boehm-gc.c/gctest.c -O2 execution test which shows no warnings... ../libtool --silent --tag=CC --mode=link /sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/xgcc -B/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/ /sw/src/fink.build/gcc47-4.7.0-1/gcc-4.7-20111207/boehm-gc/testsuite/boehm-gc.c/gctest.c /sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/x86_64-apple-darwin11.2.0/./boehm-gc/libgcjgc.la -O2 -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 -Wc,-shared-libgcc -lpthread -lm -v -o ./gctest Reading specs from /sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/specs COLLECT_GCC=/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/xgcc COLLECT_LTO_WRAPPER=/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/lto-wrapper Target: x86_64-apple-darwin11.2.0 Configured with: ../gcc-4.7-20111207/configure --prefix=/sw --prefix=/sw/lib/gcc4.7 --mandir=/sw/share/man --infodir=/sw/lib/gcc4.7/info --with-build-config=bootstrap-lto --enable-stage1-languages=c,lto --enable-languages=c,c++,fortran,lto,objc,obj-c++,java --with-gmp=/sw --with-libiconv-prefix=/sw --with-ppl=/sw --with-cloog=/sw --with-mpc=/sw --with-system-zlib --x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib --program-suffix=-fsf-4.7 --enable-checking=yes --enable-cloog-backend=isl Thread model: posix gcc version 4.7.0 20111207 (experimental) (GCC) COLLECT_GCC_OPTIONS='-mmacosx-version-min=10.7.2' '-B' '/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/' '-O2' '-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' '-shared-libgcc' '-v' '-o' './.libs/gctest' '-mtune=core2' /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//ccJtQ5Pa.s GNU C (GCC) version 4.7.0 20111207 (experimental) (x86_64-apple-darwin11.2.0) compiled by GNU C version 4.7.0 20111207 (experimental), GMP version 5.0.2, MPFR version 3.1.0, MPC version 0.9 GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 ignoring nonexistent directory "/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/../lib/gcc/x86_64-apple-darwin11.2.0/4.7.0/include" ignoring nonexistent directory "/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/../lib/gcc/x86_64-apple-darwin11.2.0/4.7.0/include-fixed" ignoring nonexistent directory "/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/../lib/gcc/x86_64-apple-darwin11.2.0/4.7.0/../../../../x86_64-apple-darwin11.2.0/include" ignoring nonexistent directory "/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/../lib/gcc/../../lib/gcc/x86_64-apple-darwin11.2.0/4.7.0/include" ignoring nonexistent directory "/usr/local/include" ignoring nonexistent directory "/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/../lib/gcc/../../include" ignoring nonexistent directory "/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/../lib/gcc/../../lib/gcc/x86_64-apple-darwin11.2.0/4.7.0/include-fixed" ignoring nonexistent directory "/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/../lib/gcc/../../lib/gcc/x86_64-apple-darwin11.2.0/4.7.0/../../../../x86_64-apple-darwin11.2.0/include" #include "..." search starts here: #include <...> search starts here: /sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/x86_64-apple-darwin11.2.0/./boehm-gc/include /sw/src/fink.build/gcc47-4.7.0-1/gcc-4.7-20111207/boehm-gc/testsuite/../include /sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/include /sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/include-fixed /usr/include /System/Library/Frameworks /Library/Frameworks End of search list. GNU C (GCC) version 4.7.0 20111207 (experimental) (x86_64-apple-darwin11.2.0) compiled by GNU C version 4.7.0 20111207 (experimental), GMP version 5.0.2, MPFR version 3.1.0, MPC version 0.9 GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Compiler executable checksum: d717e692788ee15b8ed2ea38e31fce4d COLLECT_GCC_OPTIONS='-mmacosx-version-min=10.7.2' '-B' '/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/' '-O2' '-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' '-shared-libgcc' '-v' '-o' './.libs/gctest' '-mtune=core2' /sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/as -arch x86_64 -force_cpusubtype_ALL -o /var/tmp//cc2YMxyw.o /var/tmp//ccJtQ5Pa.s COMPILER_PATH=/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/ LIBRARY_PATH=/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/:/usr/lib/ COLLECT_GCC_OPTIONS='-mmacosx-version-min=10.7.2' '-B' '/sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/' '-O2' '-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' '-shared-libgcc' '-v' '-o' './.libs/gctest' '-mtune=core2' /sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc/collect2 -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//cc2YMxyw.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 collect2 version 4.7.0 20111207 (experimental) /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//cc2YMxyw.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 @(#)PROGRAM:ld PROJECT:ld64-127.2 Library search paths: /sw/src/fink.build/gcc47-4.7.0-1/darwin_objdir/gcc /usr/lib /usr/local/lib Framework search paths: /Library/Frameworks/ /System/Library/Frameworks/ Unless you suspect that the fact that PIC code is being bundled into a convenience archive which is then linked into libgcjgc is causing the problems? Jack > > if it's a tool bug, then we should XFAIL the tests ... > > cheers > Iain > >>> - 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>