This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][Revised] Pass -no_pie on SYSTEMSPEC for darwin11
On Sat, Jun 18, 2011 at 08:11:43AM -0700, Mike Stump wrote:
> On Jun 17, 2011, at 7:49 PM, 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 with PR added to comment as requested?
> > Jack
> > ps This change also works for gcc-4_6-branch in concert with a backport of
> > r175089 and r175108.
> >
> > 2011-06-17 Jack Howarth <howarth@bromo.med.uc.edu>
> >
> > PR target/49461
> > * libjava/configure.ac (SYSTEMSPEC): Pass -no_pie for darwin11.
> > * libjava/configure: Regenerate.
>
> Checked in r175182, with one additional comment. We still welcome tracking down what exactly doesn't work and a bug report and fix for that, until then, I think life is too short to have java be broken for too long.
>
Mike,
Also note Ian's comments on -fPIE/-pie in http://gcc.gnu.org/ml/gcc/2011-06/msg00215.html.
Jack
> 2011-06-17 Jack Howarth <howarth@bromo.med.uc.edu>
>
> PR target/49461
> * libjava/configure.ac (SYSTEMSPEC): Pass -no_pie for darwin11.
> * libjava/configure: Regenerate.
>
> Index: configure.ac
> ===================================================================
> --- configure.ac (revision 175181)
> +++ configure.ac (revision 175182)
> @@ -898,9 +898,14 @@ case "${host}" in
> SYSTEMSPEC="-lunicows $SYSTEMSPEC"
> fi
> ;;
> - *-*-darwin[[912]]*)
> + *-*-darwin9*)
> SYSTEMSPEC="%{!Zdynamiclib:%{!Zbundle:-allow_stack_execute}}"
> ;;
> + *-*-darwin[[12]]*)
> + # Something is incompatible with pie, would be nice to fix it and
> + # remove -no_pie. PR49461
> + SYSTEMSPEC="-no_pie %{!Zdynamiclib:%{!Zbundle:-allow_stack_execute}}"
> + ;;
> *)
> SYSTEMSPEC=
> ;;