From c779bab85b1a11bd137cc9eb492aad0c6f586462 Mon Sep 17 00:00:00 2001
From: Paolo Bonzini <bonzini@gnu.org>
Date: Thu, 27 Mar 2008 14:16:55 +0000
Subject: [PATCH] 2008-03-27  Paolo Bonzini  <bonzini@gnu.org>

	* Makefile.tpl (PICFLAG, PICFLAG_FOR_TARGET): Remove.
	* Makefile.in: Regenerate.

config:
2008-03-27  Paolo Bonzini  <bonzini@gnu.org>

	* extensions.m4: New.

2008-03-27  Paolo Bonzini  <bonzini@gnu.org>

	* mh-armpic: Remove.
	* mh-i370pic: Remove.
	* mh-m68kpic: Remove.
	* mh-ppcpic: Remove.
	* mh-sparcpic: Remove.
	* mh-ia64pic: Remove.
	* mh-papic: Remove.
	* mh-s390pic: Remove.
	* mh-x86pic: Remove.

libiberty:
2008-03-27  Paolo Bonzini  <bonzini@gnu.org>

	* configure.ac (frags): Don't set, use frag instead.
	(PICFLAG): Set here and substitute.
	* Makefile.in (PICFLAG): Substitute from autoconf.
	* configure: Regenerate.
---
 ChangeLog              |  5 +++
 Makefile.in            |  2 --
 Makefile.tpl           |  2 --
 config/ChangeLog       | 16 +++++++++
 config/extensions.m4   | 76 ++++++++++++++++++++++++++++++++++++++++++
 config/mh-armpic       |  1 -
 config/mh-elfalphapic  |  1 -
 config/mh-i370pic      |  1 -
 config/mh-ia64pic      |  1 -
 config/mh-m68kpic      |  1 -
 config/mh-papic        |  1 -
 config/mh-ppcpic       |  1 -
 config/mh-s390pic      |  1 -
 config/mh-sparcpic     |  1 -
 config/mh-x86pic       |  1 -
 libiberty/ChangeLog    |  7 ++++
 libiberty/Makefile.in  |  2 +-
 libiberty/configure    | 45 ++++++++++++-------------
 libiberty/configure.ac | 42 +++++++++++------------
 19 files changed, 147 insertions(+), 60 deletions(-)
 create mode 100644 config/extensions.m4
 delete mode 100644 config/mh-armpic
 delete mode 100644 config/mh-elfalphapic
 delete mode 100644 config/mh-i370pic
 delete mode 100644 config/mh-ia64pic
 delete mode 100644 config/mh-m68kpic
 delete mode 100644 config/mh-papic
 delete mode 100644 config/mh-ppcpic
 delete mode 100644 config/mh-s390pic
 delete mode 100644 config/mh-sparcpic
 delete mode 100644 config/mh-x86pic

diff --git a/ChangeLog b/ChangeLog
index d18e778639b..7b49f03d9aa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.tpl (PICFLAG, PICFLAG_FOR_TARGET): Remove.
+	* Makefile.in: Regenerate.
+
 2008-03-20  Ian Lance Taylor  <iant@google.com>
 
 	* configure.ac: Add support for --enable-gold.
diff --git a/Makefile.in b/Makefile.in
index 518ca4cbd2b..ff3e9072136 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -319,7 +319,6 @@ LDFLAGS = @LDFLAGS@
 LIBCFLAGS = $(CFLAGS)
 CXXFLAGS = @CXXFLAGS@
 LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
-PICFLAG = 
 
 # Only build the C compiler for stage1, because that is the only one that
 # we can guarantee will build with the native compiler, and also it is the
@@ -386,7 +385,6 @@ DEBUG_PREFIX_CFLAGS_FOR_TARGET = @DEBUG_PREFIX_CFLAGS_FOR_TARGET@
 LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
 LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
 LDFLAGS_FOR_TARGET = 
-PICFLAG_FOR_TARGET = 
 
 # ------------------------------------
 # Miscellaneous targets and flag lists
diff --git a/Makefile.tpl b/Makefile.tpl
index 6bc461bfdda..95441f5bc43 100644
--- a/Makefile.tpl
+++ b/Makefile.tpl
@@ -322,7 +322,6 @@ LDFLAGS = @LDFLAGS@
 LIBCFLAGS = $(CFLAGS)
 CXXFLAGS = @CXXFLAGS@
 LIBCXXFLAGS = $(CXXFLAGS) -fno-implicit-templates
-PICFLAG = 
 
 # Only build the C compiler for stage1, because that is the only one that
 # we can guarantee will build with the native compiler, and also it is the
@@ -389,7 +388,6 @@ DEBUG_PREFIX_CFLAGS_FOR_TARGET = @DEBUG_PREFIX_CFLAGS_FOR_TARGET@
 LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
 LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
 LDFLAGS_FOR_TARGET = 
-PICFLAG_FOR_TARGET = 
 
 # ------------------------------------
 # Miscellaneous targets and flag lists
diff --git a/config/ChangeLog b/config/ChangeLog
index deefcd02cd3..9152d8acdab 100644
--- a/config/ChangeLog
+++ b/config/ChangeLog
@@ -1,3 +1,19 @@
+2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
+
+	* extensions.m4: New.
+
+2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
+
+	* mh-armpic: Remove.
+	* mh-i370pic: Remove.
+	* mh-m68kpic: Remove.
+	* mh-ppcpic: Remove.
+	* mh-sparcpic: Remove.
+	* mh-ia64pic: Remove.
+	* mh-papic: Remove.
+	* mh-s390pic: Remove.
+	* mh-x86pic: Remove.
+
 2008-03-16  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
 	* proginstall.m4: New file, with fixed AC_PROG_INSTALL.
diff --git a/config/extensions.m4 b/config/extensions.m4
new file mode 100644
index 00000000000..8ae4a675e2b
--- /dev/null
+++ b/config/extensions.m4
@@ -0,0 +1,76 @@
+# serial 5  -*- Autoconf -*-
+# Enable extensions on systems that normally disable them.
+
+# Copyright (C) 2003, 2006, 2007 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from CVS
+# Autoconf.  Perhaps we can remove this once we can assume Autoconf
+# 2.62 or later everywhere, but since CVS Autoconf mutates rapidly
+# enough in this area it's likely we'll need to redefine
+# AC_USE_SYSTEM_EXTENSIONS for quite some time.
+
+# AC_USE_SYSTEM_EXTENSIONS
+# ------------------------
+# Enable extensions on systems that normally disable them,
+# typically due to standards-conformance issues.
+# Remember that #undef in AH_VERBATIM gets replaced with #define by
+# AC_DEFINE.  The goal here is to define all known feature-enabling
+# macros, then, if reports of conflicts are made, disable macros that
+# cause problems on some platforms (such as __EXTENSIONS__).
+AC_DEFUN([AC_USE_SYSTEM_EXTENSIONS],
+[AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
+AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
+
+  AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=])
+  if test "$MINIX" = yes; then
+    AC_DEFINE([_POSIX_SOURCE], [1],
+      [Define to 1 if you need to in order for `stat' and other
+       things to work.])
+    AC_DEFINE([_POSIX_1_SOURCE], [2],
+      [Define to 2 if the system does not provide POSIX.1 features
+       except with this defined.])
+    AC_DEFINE([_MINIX], [1],
+      [Define to 1 if on MINIX.])
+  fi
+
+  AH_VERBATIM([__EXTENSIONS__],
+[/* Enable extensions on AIX 3, Interix.  */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris.  */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions on HP NonStop.  */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable general extensions on Solaris.  */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+])
+  AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__],
+    [ac_cv_safe_to_define___extensions__],
+    [AC_COMPILE_IFELSE(
+       [AC_LANG_PROGRAM([
+#	  define __EXTENSIONS__ 1
+	  AC_INCLUDES_DEFAULT])],
+       [ac_cv_safe_to_define___extensions__=yes],
+       [ac_cv_safe_to_define___extensions__=no])])
+  test $ac_cv_safe_to_define___extensions__ = yes &&
+    AC_DEFINE([__EXTENSIONS__])
+  AC_DEFINE([_ALL_SOURCE])
+  AC_DEFINE([_GNU_SOURCE])
+  AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
+  AC_DEFINE([_TANDEM_SOURCE])
+])# AC_USE_SYSTEM_EXTENSIONS
+
diff --git a/config/mh-armpic b/config/mh-armpic
deleted file mode 100644
index 35cf2c8ee4e..00000000000
--- a/config/mh-armpic
+++ /dev/null
@@ -1 +0,0 @@
-PICFLAG=-fPIC
diff --git a/config/mh-elfalphapic b/config/mh-elfalphapic
deleted file mode 100644
index 35cf2c8ee4e..00000000000
--- a/config/mh-elfalphapic
+++ /dev/null
@@ -1 +0,0 @@
-PICFLAG=-fPIC
diff --git a/config/mh-i370pic b/config/mh-i370pic
deleted file mode 100644
index 35cf2c8ee4e..00000000000
--- a/config/mh-i370pic
+++ /dev/null
@@ -1 +0,0 @@
-PICFLAG=-fPIC
diff --git a/config/mh-ia64pic b/config/mh-ia64pic
deleted file mode 100644
index 92e48d90fbd..00000000000
--- a/config/mh-ia64pic
+++ /dev/null
@@ -1 +0,0 @@
-PICFLAG=-fpic
diff --git a/config/mh-m68kpic b/config/mh-m68kpic
deleted file mode 100644
index 92e48d90fbd..00000000000
--- a/config/mh-m68kpic
+++ /dev/null
@@ -1 +0,0 @@
-PICFLAG=-fpic
diff --git a/config/mh-papic b/config/mh-papic
deleted file mode 100644
index 35cf2c8ee4e..00000000000
--- a/config/mh-papic
+++ /dev/null
@@ -1 +0,0 @@
-PICFLAG=-fPIC
diff --git a/config/mh-ppcpic b/config/mh-ppcpic
deleted file mode 100644
index 35cf2c8ee4e..00000000000
--- a/config/mh-ppcpic
+++ /dev/null
@@ -1 +0,0 @@
-PICFLAG=-fPIC
diff --git a/config/mh-s390pic b/config/mh-s390pic
deleted file mode 100644
index 92e48d90fbd..00000000000
--- a/config/mh-s390pic
+++ /dev/null
@@ -1 +0,0 @@
-PICFLAG=-fpic
diff --git a/config/mh-sparcpic b/config/mh-sparcpic
deleted file mode 100644
index e218bb48aa4..00000000000
--- a/config/mh-sparcpic
+++ /dev/null
@@ -1 +0,0 @@
-PICFLAG=`case '${LIBCFLAGS} ${LIBCXXFLAGS}' in *-fpic* ) echo -fpic ;; * ) echo -fPIC ;; esac`
diff --git a/config/mh-x86pic b/config/mh-x86pic
deleted file mode 100644
index 92e48d90fbd..00000000000
--- a/config/mh-x86pic
+++ /dev/null
@@ -1 +0,0 @@
-PICFLAG=-fpic
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 04ca8692648..c85691c40e1 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,10 @@
+2008-03-27  Paolo Bonzini  <bonzini@gnu.org>
+
+	* configure.ac (frags): Don't set, use frag instead.
+	(PICFLAG): Set here and substitute.
+	* Makefile.in (PICFLAG): Substitute from autoconf.
+	* configure: Regenerate.
+
 2008-03-24  Ian Lance Taylor  <iant@google.com>
 
 	* sha1.c: New file, from gnulib.
diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
index bb3bd814a40..40a1d47718b 100644
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
@@ -60,7 +60,7 @@ RANLIB = @RANLIB@
 MAKEINFO = @MAKEINFO@
 PERL = @PERL@
 
-PICFLAG =
+PICFLAG = @PICFLAG@
 
 MAKEOVERRIDES =
 
diff --git a/libiberty/configure b/libiberty/configure
index e444bd367d8..bbe792dab64 100755
--- a/libiberty/configure
+++ b/libiberty/configure
@@ -309,7 +309,7 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libiberty_topdir MAINT NOTMAINT MAKEINFO BUILD_INFO PERL HAVE_PERL build build_cpu build_vendor build_os host host_cpu host_vendor host_os AR ac_ct_AR RANLIB ac_ct_RANLIB CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP ac_libiberty_warn_cflags NO_MINUS_C_MINUS_O OUTPUT_OPTION INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA EGREP LIBOBJS CHECK target_header_dir pexecute INSTALL_DEST datarootdir docdir htmldir LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libiberty_topdir MAINT NOTMAINT MAKEINFO BUILD_INFO PERL HAVE_PERL build build_cpu build_vendor build_os host host_cpu host_vendor host_os AR ac_ct_AR RANLIB ac_ct_RANLIB CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP ac_libiberty_warn_cflags NO_MINUS_C_MINUS_O OUTPUT_OPTION INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PICFLAG EGREP LIBOBJS CHECK target_header_dir pexecute INSTALL_DEST datarootdir docdir htmldir LTLIBOBJS'
 ac_subst_files='host_makefile_frag'
 
 # Initialize some variables set by options.
@@ -3699,9 +3699,7 @@ case "${host}" in
 esac
 
 if [ -n "${frag}" ]; then
-  frags=${libiberty_topdir}/libiberty/config/$frag
-else
-  frags=
+  frag=${libiberty_topdir}/libiberty/config/$frag
 fi
 
 # If they didn't specify --enable-shared, don't generate shared libs.
@@ -3712,34 +3710,34 @@ case "${enable_shared}" in
   *) shared=yes ;;
 esac
 if [ "${shared}" = "yes" ]; then
-  frag=
   case "${host}" in
     *-*-cygwin*)	;;
-    alpha*-*-linux*)	frag=mh-elfalphapic ;;
-    arm*-*-*)		frag=mh-armpic ;;
-    hppa*-*-*)		frag=mh-papic ;;
+    alpha*-*-linux*)	PICFLAG=-fPIC ;;
+    arm*-*-*)		PICFLAG=-fPIC ;;
+    hppa*-*-*)		PICFLAG=-fPIC ;;
+    i370-*-*)		PICFLAG=-fPIC ;;
+    ia64-*-*)		PICFLAG=-fpic ;;
     i[34567]86-*-* | x86_64-*-*)
-			frag=mh-x86pic ;;
+			PICFLAG=-fpic ;;
+    m68k-*-*)		PICFLAG=-fpic ;;
     powerpc*-*-aix*)	;;
-    powerpc*-*-*)	frag=mh-ppcpic ;;
-    sparc*-*-*)		frag=mh-sparcpic ;;
-    s390*-*-*)		frag=mh-s390pic ;;
-    *)			frag=mh-${host_cpu}pic ;;
+    powerpc*-*-*)	PICFLAG=-fPIC ;;
+    sparc*-*-*)		case "${CFLAGS}" in
+			  *-fpic* ) PICFLAG=-fpic ;;
+			  * ) PICFLAG=-fPIC ;;
+			esac ;;
+    s390*-*-*)		PICFLAG=-fpic ;;
   esac
-  if [ -n "${frag}" ]; then
-    frags="${frags} ${libiberty_topdir}/config/${frag}"
-  fi
 fi
 
+
 echo "# Warning: this fragment is automatically generated" > temp-frag
 
-for frag in ${frags}; do
-  if [ -f ${frag} ]; then
-    echo "Appending ${frag} to xhost-mkfrag"
-    echo "# Following fragment copied from ${frag}" >> temp-frag
-    cat ${frag} >> temp-frag
-  fi
-done
+if [ -n "${frag}" ] && [ -f "${frag}" ]; then
+  echo "Appending ${frag} to xhost-mkfrag"
+  echo "# Following fragment copied from ${frag}" >> temp-frag
+  cat ${frag} >> temp-frag
+fi
 
 # record if we want to build shared libs.
 if [ "${shared}" = "yes" ]; then
@@ -9671,6 +9669,7 @@ s,@OUTPUT_OPTION@,$OUTPUT_OPTION,;t t
 s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
 s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
 s,@INSTALL_DATA@,$INSTALL_DATA,;t t
+s,@PICFLAG@,$PICFLAG,;t t
 s,@EGREP@,$EGREP,;t t
 s,@LIBOBJS@,$LIBOBJS,;t t
 s,@CHECK@,$CHECK,;t t
diff --git a/libiberty/configure.ac b/libiberty/configure.ac
index 864db177be9..f5df5582b36 100644
--- a/libiberty/configure.ac
+++ b/libiberty/configure.ac
@@ -187,9 +187,7 @@ case "${host}" in
 esac
 
 if [[ -n "${frag}" ]]; then
-  frags=${libiberty_topdir}/libiberty/config/$frag
-else
-  frags=
+  frag=${libiberty_topdir}/libiberty/config/$frag
 fi
 
 # If they didn't specify --enable-shared, don't generate shared libs.
@@ -200,34 +198,34 @@ case "${enable_shared}" in
   *) shared=yes ;;
 esac
 if [[ "${shared}" = "yes" ]]; then
-  frag=
   case "${host}" in
     *-*-cygwin*)	;;
-    alpha*-*-linux*)	frag=mh-elfalphapic ;;
-    arm*-*-*)		frag=mh-armpic ;;
-    hppa*-*-*)		frag=mh-papic ;;
+    alpha*-*-linux*)	PICFLAG=-fPIC ;;
+    arm*-*-*)		PICFLAG=-fPIC ;;
+    hppa*-*-*)		PICFLAG=-fPIC ;;
+    i370-*-*)		PICFLAG=-fPIC ;;
+    ia64-*-*)		PICFLAG=-fpic ;;
     i[[34567]]86-*-* | x86_64-*-*)
-			frag=mh-x86pic ;;
+			PICFLAG=-fpic ;;
+    m68k-*-*)		PICFLAG=-fpic ;;
     powerpc*-*-aix*)	;;
-    powerpc*-*-*)	frag=mh-ppcpic ;;
-    sparc*-*-*)		frag=mh-sparcpic ;;
-    s390*-*-*)		frag=mh-s390pic ;;
-    *)			frag=mh-${host_cpu}pic ;;
+    powerpc*-*-*)	PICFLAG=-fPIC ;;
+    sparc*-*-*)		case "${CFLAGS}" in
+			  *-fpic* ) PICFLAG=-fpic ;;
+			  * ) PICFLAG=-fPIC ;;
+			esac ;;
+    s390*-*-*)		PICFLAG=-fpic ;;
   esac
-  if [[ -n "${frag}" ]]; then
-    frags="${frags} ${libiberty_topdir}/config/${frag}"
-  fi
 fi
+AC_SUBST(PICFLAG)
 
 echo "# Warning: this fragment is automatically generated" > temp-frag
 
-for frag in ${frags}; do
-  if [[ -f ${frag} ]]; then
-    echo "Appending ${frag} to xhost-mkfrag"
-    echo "# Following fragment copied from ${frag}" >> temp-frag
-    cat ${frag} >> temp-frag
-  fi
-done
+if [[ -n "${frag}" ]] && [[ -f "${frag}" ]]; then
+  echo "Appending ${frag} to xhost-mkfrag"
+  echo "# Following fragment copied from ${frag}" >> temp-frag
+  cat ${frag} >> temp-frag
+fi
 
 # record if we want to build shared libs.
 if [[ "${shared}" = "yes" ]]; then
-- 
GitLab