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" } {

Attachment: boehm-gc.log.bz2
Description: BZip2 compressed data

Reply via email to