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 Thu, Dec 08, 2011 at 05:55:37PM +0000, Iain Sandoe wrote:
>
> 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.

Iain,
   One could make the alternative argument that the testing on linux is
currently incomplete because it is not done on any of the hardened linux
distros which utilize PIE such as...

http://www.gentoo.org/proj/en/hardened/

I find it very stange that there seems to be so little communication between
such projects and FSF gcc.
                  Jack
>
> cheers
> Iain
>


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