This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] use -fno-pie on darwin in boehm-gc.exp
- From: Iain Sandoe <developer at sandoe-acoustics dot co dot uk>
- To: Jack Howarth <howarth at bromo dot med dot uc dot edu>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, Mike Stump <mikestump at comcast dot net>, hboehm at gcc dot gnu dot org
- Date: Thu, 8 Dec 2011 15:54:35 +0000
- Subject: Re: [PATCH] use -fno-pie on darwin in boehm-gc.exp
- References: <20111208153855.GA8678@bromo.med.uc.edu>
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
- 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" } {