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]

[committed] Fix libcc1 build on Darwin (PR target/65351)


Hi!

I've committed the following patch (which Iain tested - at least
libiberty part).  The issue is that while Darwin is PIC by default, for
performance reasons it uses -mdynamic-no-pic and that makes code compiled
that way not suitable for shared libraries.

Committed to trunk as obvious.

2015-04-07  Jakub Jelinek  <jakub@redhat.com>
	    Iain Sandoe  <iain@codesourcery.com>

	PR target/65351
config/
	* picflag.m4: Append -mno-dynamic-no-pic for Darwin.
libiberty/
	* configure: Regenerate.
libada/
	* configure: Regenerate.
libgcc/
	* configure: Regenerate.
gcc/
	* configure: Regenerate.

--- config/picflag.m4.jj	2013-11-18 09:59:08.000000000 +0100
+++ config/picflag.m4	2015-04-07 11:40:49.963566972 +0200
@@ -9,7 +9,9 @@ case "${$2}" in
     *-*-darwin*)
 	# PIC is the default on this platform
 	# Common symbols not allowed in MH_DYLIB files
-	$1=-fno-common
+	# Cancel any earlier -mdynamic-no-pic, as that makes
+	# the code not suitable for shared libraries.
+	$1='-fno-common -mno-dynamic-no-pic'
 	;;
     alpha*-dec-osf5*)
 	# PIC is the default.
--- libiberty/configure.jj	2014-11-24 10:26:27.000000000 +0100
+++ libiberty/configure	2015-04-07 11:41:43.075707899 +0200
@@ -4887,7 +4887,9 @@ case "${host}" in
     *-*-darwin*)
 	# PIC is the default on this platform
 	# Common symbols not allowed in MH_DYLIB files
-	PICFLAG=-fno-common
+	# Cancel any earlier -mdynamic-no-pic, as that makes
+	# the code not suitable for shared libraries.
+	PICFLAG='-fno-common -mno-dynamic-no-pic'
 	;;
     alpha*-dec-osf5*)
 	# PIC is the default.
--- libada/configure.jj	2015-01-05 13:40:49.000000000 +0100
+++ libada/configure	2015-04-07 11:42:44.517715744 +0200
@@ -2826,7 +2826,9 @@ case "${host}" in
     *-*-darwin*)
 	# PIC is the default on this platform
 	# Common symbols not allowed in MH_DYLIB files
-	PICFLAG=-fno-common
+	# Cancel any earlier -mdynamic-no-pic, as that makes
+	# the code not suitable for shared libraries.
+	PICFLAG='-fno-common -mno-dynamic-no-pic'
 	;;
     alpha*-dec-osf5*)
 	# PIC is the default.
--- libgcc/configure.jj	2015-03-09 08:05:17.000000000 +0100
+++ libgcc/configure	2015-04-07 11:42:30.927935072 +0200
@@ -2305,7 +2305,9 @@ case "${host}" in
     *-*-darwin*)
 	# PIC is the default on this platform
 	# Common symbols not allowed in MH_DYLIB files
-	PICFLAG=-fno-common
+	# Cancel any earlier -mdynamic-no-pic, as that makes
+	# the code not suitable for shared libraries.
+	PICFLAG='-fno-common -mno-dynamic-no-pic'
 	;;
     alpha*-dec-osf5*)
 	# PIC is the default.
--- gcc/configure.jj	2015-03-11 20:17:47.000000000 +0100
+++ gcc/configure	2015-04-07 11:42:11.266252397 +0200
@@ -4788,7 +4788,9 @@ case "${target}" in
     *-*-darwin*)
 	# PIC is the default on this platform
 	# Common symbols not allowed in MH_DYLIB files
-	PICFLAG_FOR_TARGET=-fno-common
+	# Cancel any earlier -mdynamic-no-pic, as that makes
+	# the code not suitable for shared libraries.
+	PICFLAG_FOR_TARGET='-fno-common -mno-dynamic-no-pic'
 	;;
     alpha*-dec-osf5*)
 	# PIC is the default.
@@ -18147,7 +18149,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 18150 "configure"
+#line 18152 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -18253,7 +18255,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 18256 "configure"
+#line 18258 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H

	Jakub


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