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 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?

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 <howarth@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>


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