From ef16a2989a6f7dabcfb5001f7115b044407e0917 Mon Sep 17 00:00:00 2001
From: Benjamin Kosnik <bkoz@redhat.com>
Date: Sat, 14 Jun 2003 05:38:04 +0000
Subject: [PATCH] i686-pc-linux-gnu: To..

2003-06-13  Benjamin Kosnik  <bkoz@redhat.com>

	* config/abi/i686-pc-linux-gnu: To..
	* config/abi/i486-linux-gnu: ...this.
	* config/abi/alphaev67-unknown-linux-gnu: To..
	* config/abi/alpha-linux-gnu: ...this.
	* config/abi/ia64-unknown-linux-gnu: To...
	* config/abi/ia64-linux-gnu: ...this.
	* config/abi/x86_64-unknown-linux-gnu: To...
	* config/abi/x86_64-linux-gnu: ...this.
	* config/abi/i386-unknown-freebsd4: To...
	* config/abi/i386-freebsd4: ...this.
	* configure.host: abi_baseline_triplet to abi_baseline_pair.
	Simplify cpu bits so that abi_baseline_pair can use the same
	cpu configuration.
	* acinclude.m4: Same.
	* aclocal.m4: Regenerate.
	* configure.in: Can't get enable_abi_check to yes unless native.
	* configure: Regenerate.

From-SVN: r67931
---
 libstdc++-v3/ChangeLog                        | 22 +++++-
 libstdc++-v3/acinclude.m4                     |  2 +-
 libstdc++-v3/aclocal.m4                       |  2 +-
 .../baseline_symbols.txt                      |  0
 .../baseline_symbols.txt                      |  0
 .../baseline_symbols.txt                      |  0
 .../baseline_symbols.txt                      |  0
 .../baseline_symbols.txt                      |  0
 libstdc++-v3/configure                        | 11 ++-
 libstdc++-v3/configure.host                   | 76 ++++++++++---------
 libstdc++-v3/configure.in                     |  4 +-
 11 files changed, 70 insertions(+), 47 deletions(-)
 rename libstdc++-v3/config/abi/{alphaev67-unknown-linux-gnu => alpha-linux-gnu}/baseline_symbols.txt (100%)
 rename libstdc++-v3/config/abi/{i386-unknown-freebsd4 => i386-freebsd4}/baseline_symbols.txt (100%)
 rename libstdc++-v3/config/abi/{i686-pc-linux-gnu => i486-linux-gnu}/baseline_symbols.txt (100%)
 rename libstdc++-v3/config/abi/{ia64-unknown-linux-gnu => ia64-linux-gnu}/baseline_symbols.txt (100%)
 rename libstdc++-v3/config/abi/{x86_64-unknown-linux-gnu => x86_64-linux-gnu}/baseline_symbols.txt (100%)

diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 75de06fadaa4..115828554c2d 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,23 @@
+2003-06-13  Benjamin Kosnik  <bkoz@redhat.com>
+
+	* config/abi/i686-pc-linux-gnu: To..
+	* config/abi/i486-linux-gnu: ...this.
+	* config/abi/alphaev67-unknown-linux-gnu: To..
+	* config/abi/alpha-linux-gnu: ...this.
+	* config/abi/ia64-unknown-linux-gnu: To...
+	* config/abi/ia64-linux-gnu: ...this.
+	* config/abi/x86_64-unknown-linux-gnu: To...
+	* config/abi/x86_64-linux-gnu: ...this.
+	* config/abi/i386-unknown-freebsd4: To...
+	* config/abi/i386-freebsd4: ...this.
+	* configure.host: abi_baseline_triplet to abi_baseline_pair.
+	Simplify cpu bits so that abi_baseline_pair can use the same
+	cpu configuration.
+	* acinclude.m4: Same.
+	* aclocal.m4: Regenerate.
+	* configure.in: Can't get enable_abi_check to yes unless native.
+	* configure: Regenerate.
+
 2003-06-13  Paolo Carlini  <pcarlini@unitus.it>
 
 	* testsuite/27_io/basic_filebuf/seekoff/char/1.cc: Split and
@@ -42,7 +62,7 @@
         This is necessary here because _M_mutate is sometimes called with
         all-zero arguments; in all other uses of _M_is_shared, the test comes
         out right anyhow.
-
+	
 2003-06-12  Benjamin Kosnik  <bkoz@redhat.com>
 
 	* src/allocator-inst.cc: Explicitly instantiate.
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index 9981eed63ae8..f7844912aa63 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -2055,7 +2055,7 @@ AC_DEFUN(GLIBCPP_CONFIGURE_TESTSUITE, [
   GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
 
   # Export file names for ABI checking.
-  baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_triplet}/baseline_symbols.txt"
+  baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_pair}/baseline_symbols.txt"
   AC_SUBST(baseline_file)
 
   dnl XXX move to configure.host?
diff --git a/libstdc++-v3/aclocal.m4 b/libstdc++-v3/aclocal.m4
index c56ac1ac99f1..4e255d0abba8 100644
--- a/libstdc++-v3/aclocal.m4
+++ b/libstdc++-v3/aclocal.m4
@@ -2067,7 +2067,7 @@ AC_DEFUN(GLIBCPP_CONFIGURE_TESTSUITE, [
   GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
 
   # Export file names for ABI checking.
-  baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_triplet}/baseline_symbols.txt"
+  baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_pair}/baseline_symbols.txt"
   AC_SUBST(baseline_file)
 
   dnl XXX move to configure.host?
diff --git a/libstdc++-v3/config/abi/alphaev67-unknown-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/alpha-linux-gnu/baseline_symbols.txt
similarity index 100%
rename from libstdc++-v3/config/abi/alphaev67-unknown-linux-gnu/baseline_symbols.txt
rename to libstdc++-v3/config/abi/alpha-linux-gnu/baseline_symbols.txt
diff --git a/libstdc++-v3/config/abi/i386-unknown-freebsd4/baseline_symbols.txt b/libstdc++-v3/config/abi/i386-freebsd4/baseline_symbols.txt
similarity index 100%
rename from libstdc++-v3/config/abi/i386-unknown-freebsd4/baseline_symbols.txt
rename to libstdc++-v3/config/abi/i386-freebsd4/baseline_symbols.txt
diff --git a/libstdc++-v3/config/abi/i686-pc-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/i486-linux-gnu/baseline_symbols.txt
similarity index 100%
rename from libstdc++-v3/config/abi/i686-pc-linux-gnu/baseline_symbols.txt
rename to libstdc++-v3/config/abi/i486-linux-gnu/baseline_symbols.txt
diff --git a/libstdc++-v3/config/abi/ia64-unknown-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/ia64-linux-gnu/baseline_symbols.txt
similarity index 100%
rename from libstdc++-v3/config/abi/ia64-unknown-linux-gnu/baseline_symbols.txt
rename to libstdc++-v3/config/abi/ia64-linux-gnu/baseline_symbols.txt
diff --git a/libstdc++-v3/config/abi/x86_64-unknown-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/x86_64-linux-gnu/baseline_symbols.txt
similarity index 100%
rename from libstdc++-v3/config/abi/x86_64-unknown-linux-gnu/baseline_symbols.txt
rename to libstdc++-v3/config/abi/x86_64-linux-gnu/baseline_symbols.txt
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index ce5d0db91dde..3c97728eb76e 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -23472,7 +23472,7 @@ done
 
 
   # Export file names for ABI checking.
-  baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_triplet}/baseline_symbols.txt"
+  baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_pair}/baseline_symbols.txt"
   
 
     case "$target" in
@@ -23649,10 +23649,9 @@ else
   GLIBCPP_TEST_WCHAR_T_TRUE='#'
   GLIBCPP_TEST_WCHAR_T_FALSE=
 fi	
-# Don't do ABI checking unless native.
 
 
-if ${GLIBCPP_IS_CROSS_COMPILING} && test "$enable_abi_check" = yes ; then
+if test "$enable_abi_check" = yes; then
   GLIBCPP_BUILD_ABI_CHECK_TRUE=
   GLIBCPP_BUILD_ABI_CHECK_FALSE='#'
 else
@@ -23724,7 +23723,7 @@ glibcpp_prefixdir=${prefix}
 
 # Process the option --with-gxx-include-dir=<path to include-files directory>
 echo $ac_n "checking for --with-gxx-include-dir""... $ac_c" 1>&6
-echo "configure:23728: checking for --with-gxx-include-dir" >&5
+echo "configure:23727: checking for --with-gxx-include-dir" >&5
 # Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
 if test "${with_gxx_include_dir+set}" = set; then
   withval="$with_gxx_include_dir"
@@ -23748,7 +23747,7 @@ echo "$ac_t""$gxx_include_dir" 1>&6
 
 # Process the option "--enable-version-specific-runtime-libs"
 echo $ac_n "checking for --enable-version-specific-runtime-libs""... $ac_c" 1>&6
-echo "configure:23752: checking for --enable-version-specific-runtime-libs" >&5
+echo "configure:23751: checking for --enable-version-specific-runtime-libs" >&5
 # Check whether --enable-version-specific-runtime-libs or --disable-version-specific-runtime-libs was given.
 if test "${enable_version_specific_runtime_libs+set}" = set; then
   enableval="$enable_version_specific_runtime_libs"
@@ -23799,7 +23798,7 @@ if test x"$glibcpp_toolexecdir" = x"no"; then
 fi
 
 echo $ac_n "checking for install location""... $ac_c" 1>&6
-echo "configure:23803: checking for install location" >&5
+echo "configure:23802: checking for install location" >&5
 echo "$ac_t""$gxx_include_dir" 1>&6
 
 
diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host
index cd431ff39436..98c0b606f618 100644
--- a/libstdc++-v3/configure.host
+++ b/libstdc++-v3/configure.host
@@ -17,27 +17,27 @@
 # It sets the following shell variables:
 #
 #   cpu_include_dir        CPU-specific directory, defaults to cpu/generic
-#                              if cpu/host_cpu doesn't exist.  This is
-#                              used to set ATOMICITYH.
+#                          if cpu/host_cpu doesn't exist.  This is
+#                          used to set ATOMICITYH.
 #
 #   os_include_dir         OS-specific directory, defaults to os/generic.
 #
-#   c_model                the model to use for "C" headers, defaults to c_std.
+#   c_model                the "C" header model, defaults to c_std.
 #
 #   c_compatibility        if "C" compatibility headers are necessary,
-#                              defaults to no.
+#                          defaults to no.
 #
-#   abi_baseline_triplet   directory name for ABI compat testing,
-#                              defaults to host (as per config.guess)
+#   abi_baseline_pair      directory name for ABI compat testing,
+#                          defaults to host_cpu-host_os (as per config.guess)
 #
 #   ATOMICITYH             location of atomicity.h,
-#                              defaults to cpu_include_dir
+#                          defaults to cpu_include_dir
 #
 # It possibly modifies the following variables:
 #
 #   OPT_LDFLAGS            extra flags to pass when linking the library, of
-#                              the form '-Wl,blah'
-#                              (defaults to empty in acinclude.m4)
+#                          the form '-Wl,blah'
+#                          (defaults to empty in acinclude.m4)
 #
 #
 # If the defaults will not work for your platform, you need only change the
@@ -50,62 +50,70 @@
 # Try to guess a default cpu_include_dir based on the name of the CPU.  We
 # cannot do this for os_include_dir; there are too many portable operating
 # systems out there.  :-)
-abi_baseline_triplet=${host}
 c_model=c_std
 c_compatibility=no
-if test -d ${glibcpp_srcdir}/config/cpu/${host_cpu}; then
-    cpu_include_dir="cpu/${host_cpu}"
-else
-    cpu_include_dir="cpu/generic"
-fi
 
 
 # HOST-SPECIFIC OVERRIDES
 # Set any CPU-dependent bits.
 # Here we override defaults and catch more general cases due to naming
 # conventions (e.g., chip_name* to catch all variants).
+if test -d ${glibcpp_srcdir}/config/cpu/${host_cpu}; then
+  try_cpu=${host_cpu}
+fi
+
 # THIS TABLE IS SORTED.  KEEP IT THAT WAY.
 case "${host_cpu}" in
   alpha*)
-    cpu_include_dir="cpu/alpha"
+    try_cpu=alpha
     ;;
   athlon* | i586 | i686 | i786 | x86_64)
-    cpu_include_dir="cpu/i486"
+    try_cpu=i486
     ;;
   hppa*)
-    cpu_include_dir="cpu/hppa"
+    try_cpu=hppa
     ;;
   mips*)
-    # cpu/mips/atomicity.h needs MIPS II or above.  Only use it
-    # where it is known to be safe.
-    ATOMICITYH="cpu/generic"
+    # NB: cpu/mips/atomicity.h needs MIPS II or above.  
+    # Of course, there is no sane way to test for this, no ABI macro,
+    # and no consistent host_cpu name differentiation. Therefore, only
+    # use it where it is known to be safe, ie it runs linux (see below).
+    try_cpu=generic
     ;;
   m680[246]0)
-    cpu_include_dir="cpu/m68k"
+    try_cpu=m68k
     ;;
   powerpc* | rs6000)
-    cpu_include_dir="cpu/powerpc"
+    try_cpu=powerpc
     ;;
   s390x)
-    cpu_include_dir="cpu/s390"
+    try_cpu=s390
     ;;
   sparc* | ultrasparc)
-    cpu_include_dir="cpu/sparc"
+    try_cpu=sparc
+    ;;
+  *)
+    try_cpu=generic
     ;;
 esac
 
 
 # Now look for the file(s) usually tied to a CPU model, and make default
 # choices for those if they haven't been explicitly set already.
-_cpu_incdir_fullpath=${glibcpp_srcdir}/config/${cpu_include_dir}
-if test x${ATOMICITYH+set} != xset; then
-  if test -f ${_cpu_incdir_fullpath}/atomicity.h; then
-    ATOMICITYH=$cpu_include_dir
-  else
-    ATOMICITYH="cpu/generic"
-  fi
+cpu_include_dir="cpu/${try_cpu}"  
+ATOMICITYH=$cpu_include_dir
+
+
+# Check whether ABI baseline file exists, if not try to guess name.
+abi_baseline_pair=${try_cpu}-${host_os}
+try_baseline_file=config/abi/${abi_baseline_pair}/baseline_symbols.txt
+if test ! -e ${glibcpp_srcdir}/${try_baseline_file} ; then
+  case "${host}" in
+    i*86-*-freebsd4*)
+      abi_baseline_pair="i386-freebsd4"
+      ;;
+  esac  
 fi
-unset _cpu_incdir_fullpath
 
 
 # Set any OS-dependent bits.
@@ -141,8 +149,6 @@ case "${host_os}" in
     ;;
   freebsd*)
     os_include_dir="os/bsd/freebsd"
-    # The FreeBSD ABI is expressed in the major version number only.
-    abi_baseline_triplet=`echo ${host} | sed 's,\(\.[0-9]*\)*$,,'`
     ;;
   gnu* | linux*)
     os_include_dir="os/gnu-linux"
diff --git a/libstdc++-v3/configure.in b/libstdc++-v3/configure.in
index 8e20600527c9..c5fa8fcac3fb 100644
--- a/libstdc++-v3/configure.in
+++ b/libstdc++-v3/configure.in
@@ -455,9 +455,7 @@ AM_CONDITIONAL(GLIBCPP_BUILD_LIBMATH,  test "$need_libmath" = yes)
 dnl from GLIBCPP_CHECK_WCHAR_T_SUPPORT:
 AM_CONDITIONAL(GLIBCPP_TEST_WCHAR_T, test "$enable_wchar_t" = yes)	
 dnl from GLIBCPP_CONFIGURE_TESTSUITE:
-# Don't do ABI checking unless native.
-AM_CONDITIONAL(GLIBCPP_BUILD_ABI_CHECK,
-               ${GLIBCPP_IS_CROSS_COMPILING} && test "$enable_abi_check" = yes )
+AM_CONDITIONAL(GLIBCPP_BUILD_ABI_CHECK, test "$enable_abi_check" = yes)
  
 AC_CACHE_SAVE
 
-- 
GitLab