From patchwork Fri Jun 17 11:04:34 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: : Pass -no_pie on SYSTEMSPEC for darwin11 Date: Fri, 17 Jun 2011 01:04:34 -0000 From: IainS X-Patchwork-Id: 100794 Message-Id: <4C4D13B3-179F-44B9-BDB0-29EE706C589A@sandoe-acoustics.co.uk> To: Jack Howarth Cc: GCC Patches , Mike Stump Hi Jack, On 17 Jun 2011, at 03:21, Jack Howarth wrote: > > The gcj compiler needs to pass -no_pie for linkage on darwin11 due > to the new -pie > default of the linker. The attached patch accomplishes this by > passing -no_pie on SYSTEMSPEC > for *-*-darwin[12]*. Since Darwin10 supports -no_pie in its linker, > I included it in the > triplet match to simplify the syntax. Bootstrap and tested on x86_64- > apple-darwin11. > Okay for gcc trunk? > Jack > > 2011-06-16 Jack Howarth > > * libjava/configure.ac (SYSTEMSPEC): Pass -no_pie for darwin11. > * libjava/configure: Regenerate. I would like to see some more analysis of what the underlying reasons for failure are. -fpie works fine with darwin 9 and darwin 10 libjava [XCode 3.1.4 and 3.2.5 respectively, bootstrap w/4.2.1] (modulo suppressing it when building test-suite .dylibs *** - which is a testsuite options handling issue - not a fundamental problem). so: make -k check-target-libjava "RUNTESTFLAGS=--target_board=unix/-fpie\{- m32,-m64\} " passes without regression (re the no pie case) given that pie is suppressed for dylibs. ----- So is your proposed patch a work-around for (as yet unreleased) darwin 11 tool-chain bugs or ... ? Iain ALIGN) \ do { \ === **** kludge to suppress pie for for dylibs (use in place of the darwin9.h hunk from the attachment on PR49371). Index: gcc/config/darwin9.h =================================================================== --- gcc/config/darwin9.h (revision 175110) +++ gcc/config/darwin9.h (working copy) @@ -35,6 +35,12 @@ along with GCC; see the file COPYING3. If not see /* Tell collect2 to run dsymutil for us as necessary. */ #define COLLECT_RUN_DSYMUTIL 1 +#undef PIE_SPEC +#define PIE_SPEC \ + "%{fpie|pie|fPIE: %{!Zdynamiclib: \ + %{mdynamic-no-pic: %n'-mdynamic-no-pic' overrides '-pie', '- fpie' or '-fPIE'; \ + :-pie}}}" + #undef ASM_OUTPUT_ALIGNED_COMMON #define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE,