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 <howa...@bromo.med.uc.edu>

        PR target/49461
        * libjava/configure.ac (SYSTEMSPEC): Pass -no_pie for darwin11.
        * libjava/configure: Regenerate.


Index: libjava/configure.ac
===================================================================
--- libjava/configure.ac        (revision 175131)
+++ libjava/configure.ac        (working copy)
@@ -898,9 +898,12 @@ case "${host}" in
         SYSTEMSPEC="-lunicows $SYSTEMSPEC"
       fi
     ;;
-    *-*-darwin[[912]]*)
+    *-*-darwin9*)
       SYSTEMSPEC="%{!Zdynamiclib:%{!Zbundle:-allow_stack_execute}}"
     ;;
+    *-*-darwin[[12]]*)
+      SYSTEMSPEC="-no_pie %{!Zdynamiclib:%{!Zbundle:-allow_stack_execute}}"
+    ;;
     *)
       SYSTEMSPEC=
     ;;

Reply via email to