OSDN Git Service

2003-07-05 Phil Edwards <pme@gcc.gnu.org>
authorpme <pme@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 6 Jul 2003 04:07:36 +0000 (04:07 +0000)
committerpme <pme@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 6 Jul 2003 04:07:36 +0000 (04:07 +0000)
* acinclude.m4 (GLIBCXX_ENABLE_SYMVERS):  Bump minimal version
requirement.  Add port_specific_symbol_file variable.
* configure.host:  Add docs for port_specific_symbol_file.
Clean up try_cpu block for x86.
* config/linker-map.gnu:  No more "last symbol can't have a
semicolon" kaka.  Add hook for port-specific symbols.
* src/Makefile.am:  Remove trailing whitespace.
(libstdc++-symbol.ver):  Detect the presence of port-specific
symbols, and add them accordingly.

* docs/html/17_intro/porting.texi:  Bring up to date.

* src/Makefile.in, aclocal.m4, configure,
docs/html/17_intro/porting.html:  Regenerated.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68992 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/acinclude.m4
libstdc++-v3/aclocal.m4
libstdc++-v3/config/linker-map.gnu
libstdc++-v3/configure
libstdc++-v3/configure.host
libstdc++-v3/docs/html/17_intro/porting.html
libstdc++-v3/docs/html/17_intro/porting.texi
libstdc++-v3/src/Makefile.am
libstdc++-v3/src/Makefile.in

index e00b406..274be04 100644 (file)
@@ -1,5 +1,22 @@
 2003-07-05  Phil Edwards  <pme@gcc.gnu.org>
 
+       * acinclude.m4 (GLIBCXX_ENABLE_SYMVERS):  Bump minimal version
+       requirement.  Add port_specific_symbol_file variable.
+       * configure.host:  Add docs for port_specific_symbol_file.
+       Clean up try_cpu block for x86.
+       * config/linker-map.gnu:  No more "last symbol can't have a
+       semicolon" kaka.  Add hook for port-specific symbols.
+       * src/Makefile.am:  Remove trailing whitespace.
+       (libstdc++-symbol.ver):  Detect the presence of port-specific
+       symbols, and add them accordingly.
+
+       * docs/html/17_intro/porting.texi:  Bring up to date.
+
+       * src/Makefile.in, aclocal.m4, configure,
+       docs/html/17_intro/porting.html:  Regenerated.
+
+2003-07-05  Phil Edwards  <pme@gcc.gnu.org>
+
        * scripts/create_testsuite_files:  New file.
        * testsuite/Makefile.am (all-local, check-performance):  Use it.
        * testsuite/lib/libstdc++-v3-dg.exp (v3-computer-tests):  Remove.
index 64c4d81..8d81668 100644 (file)
@@ -2258,9 +2258,9 @@ if test $enable_symvers != no; then
   AC_MSG_RESULT($glibcxx_shared_libgcc)
 fi
 
-# For GNU ld, we need at least this version.  It's 2.12 in the same format
+# For GNU ld, we need at least this version.  It's 2.14 in the same format
 # as the tested-for version.  See GLIBCXX_CHECK_LINKER_FEATURES for more.
-glibcxx_min_gnu_ld_version=21200
+glibcxx_min_gnu_ld_version=21400
 
 # Check to see if unspecified "yes" value can win, given results
 # above.
@@ -2305,6 +2305,7 @@ case $enable_symvers in
 esac
 
 AC_SUBST(SYMVER_MAP)
+AC_SUBST(port_specific_symbol_file)
 AM_CONDITIONAL(GLIBCXX_BUILD_VERSIONED_SHLIB, test $enable_symvers != no)
 AC_MSG_CHECKING([versioning on shared library symbols])
 AC_MSG_RESULT($enable_symvers)
index 1a5563c..17a95f6 100644 (file)
@@ -2270,9 +2270,9 @@ if test $enable_symvers != no; then
   AC_MSG_RESULT($glibcxx_shared_libgcc)
 fi
 
-# For GNU ld, we need at least this version.  It's 2.12 in the same format
+# For GNU ld, we need at least this version.  It's 2.14 in the same format
 # as the tested-for version.  See GLIBCXX_CHECK_LINKER_FEATURES for more.
-glibcxx_min_gnu_ld_version=21200
+glibcxx_min_gnu_ld_version=21400
 
 # Check to see if unspecified "yes" value can win, given results
 # above.
@@ -2317,6 +2317,7 @@ case $enable_symvers in
 esac
 
 AC_SUBST(SYMVER_MAP)
+AC_SUBST(port_specific_symbol_file)
 AM_CONDITIONAL(GLIBCXX_BUILD_VERSIONED_SHLIB, test $enable_symvers != no)
 AC_MSG_CHECKING([versioning on shared library symbols])
 AC_MSG_RESULT($enable_symvers)
index 34470c4..5cf3dd9 100644 (file)
@@ -1,4 +1,4 @@
-## Linker script for GNU ld 2.11.94+ only.
+## Linker script for GNU ld 2.13.91+ only.
 ##
 ## Copyright (C) 2002, 2003 Free Software Foundation, Inc.
 ##
@@ -25,7 +25,6 @@ GLIBCXX_3.4 {
   global:
 
     # Names inside the 'extern' block are demangled names.
-    # All but the last are terminated with a semicolon.
     extern "C++"
     {
       std::[A-Za-k]*;
@@ -56,7 +55,7 @@ GLIBCXX_3.4 {
       std::__num_base::_S_format_int*;
       std::__num_base::_S_atoms_in;
       std::__num_base::_S_atoms_out;
-      std::__numpunct_cache*
+      std::__numpunct_cache*;
     };
 
     # Names not in an 'extern' block are mangled names.
@@ -169,6 +168,8 @@ GLIBCXX_3.4 {
     _ZN9__gnu_cxx22_Atomic_add_mutex_onceE;
     _ZN9__gnu_cxx31__gthread_atomic_add_mutex_onceEv;
 
+  # DO NOT DELETE THIS LINE.  Port-specific symbols, if any, will be here.
+
   local:
     *;
 };
index 9e9d38f..c3352ed 100755 (executable)
@@ -841,7 +841,7 @@ test "$ac_cv_mingw32" = yes && MINGW32=yes
 
     
 
-  for ac_prog in gawk mawk nawk awk
+  for ac_prog in mawk gawk nawk awk
 do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -1476,7 +1476,7 @@ else
   if { (eval echo configure:1477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
     for file in conftest.*; do
       case $file in
-      *.c | *.o | *.obj) ;;
+      *.$ac_ext | *.c | *.o | *.obj) ;;
       *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
       esac
     done
@@ -22911,7 +22911,7 @@ else
 fi
 rm -f conftest*
 
-  for ac_hdr in stdlib.h unistd.h sys/stat.h sys/types.h
+  for ac_hdr in unistd.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
@@ -23043,24 +23043,11 @@ else
 #include <fcntl.h>
 #include <sys/mman.h>
 
-#if HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-
-#if HAVE_STDLIB_H
-# include <stdlib.h>
-#endif
-
-#if HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
 /* This mess was copied from the GNU getpagesize.h.  */
 #ifndef HAVE_GETPAGESIZE
+# ifdef HAVE_UNISTD_H
+#  include <unistd.h>
+# endif
 
 /* Assume that all systems that can run configure have sys/param.h.  */
 # ifndef HAVE_SYS_PARAM_H
@@ -23168,7 +23155,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:23172: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:23159: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_mmap_fixed_mapped=yes
 else
 # Check to see if libgcc_s exists, indicating that shared libgcc is possible.
 if test $enable_symvers != no; then
   echo $ac_n "checking for shared libgcc""... $ac_c" 1>&6
-echo "configure:23223: checking for shared libgcc" >&5
+echo "configure:23210: checking for shared libgcc" >&5
   ac_save_CFLAGS="$CFLAGS"
   CFLAGS=' -lgcc_s'
   cat > conftest.$ac_ext <<EOF
-#line 23227 "configure"
+#line 23214 "configure"
 #include "confdefs.h"
 
 int main() {
 return 0
 ; return 0; }
 EOF
-if { (eval echo configure:23234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:23221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   glibcxx_shared_libgcc=yes
 else
@@ -23244,9 +23231,9 @@ rm -f conftest*
   echo "$ac_t""$glibcxx_shared_libgcc" 1>&6
 fi
 
-# For GNU ld, we need at least this version.  It's 2.12 in the same format
+# For GNU ld, we need at least this version.  It's 2.14 in the same format
 # as the tested-for version.  See GLIBCXX_CHECK_LINKER_FEATURES for more.
-glibcxx_min_gnu_ld_version=21200
+glibcxx_min_gnu_ld_version=21400
 
 # Check to see if unspecified "yes" value can win, given results
 # above.
@@ -23265,14 +23252,14 @@ if test $enable_symvers = yes ; then
       echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map
       
       cat > conftest.$ac_ext <<EOF
-#line 23269 "configure"
+#line 23256 "configure"
 #include "confdefs.h"
 int foo;
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:23276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:23263: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   enable_symvers=gnu
 else
@@ -23310,6 +23297,7 @@ esac
 
 
 
+
 if test $enable_symvers != no; then
   GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE=
   GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE='#'
@@ -23318,7 +23306,7 @@ else
   GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE=
 fi
 echo $ac_n "checking versioning on shared library symbols""... $ac_c" 1>&6
-echo "configure:23322: checking versioning on shared library symbols" >&5
+echo "configure:23310: checking versioning on shared library symbols" >&5
 echo "$ac_t""$enable_symvers" 1>&6
 
 
@@ -23333,17 +23321,17 @@ echo "$ac_t""$enable_symvers" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:23337: checking for $ac_hdr" >&5
+echo "configure:23325: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 23342 "configure"
+#line 23330 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:23347: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:23335: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -23376,7 +23364,7 @@ done
     # Can't do these in a loop, else the resulting syntax is wrong.
     
   cat > conftest.$ac_ext <<EOF
-#line 23380 "configure"
+#line 23368 "configure"
 #include "confdefs.h"
 #include <unistd.h>
                   #include <sys/time.h>
@@ -23386,7 +23374,7 @@ int main() {
  int f = RLIMIT_DATA ; 
 ; return 0; }
 EOF
-if { (eval echo configure:23390: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23378: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcxx_mresult=1
 else
@@ -23403,7 +23391,7 @@ EOF
 
     
   cat > conftest.$ac_ext <<EOF
-#line 23407 "configure"
+#line 23395 "configure"
 #include "confdefs.h"
 #include <unistd.h>
                   #include <sys/time.h>
@@ -23413,7 +23401,7 @@ int main() {
  int f = RLIMIT_RSS ; 
 ; return 0; }
 EOF
-if { (eval echo configure:23417: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23405: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcxx_mresult=1
 else
@@ -23430,7 +23418,7 @@ EOF
 
     
   cat > conftest.$ac_ext <<EOF
-#line 23434 "configure"
+#line 23422 "configure"
 #include "confdefs.h"
 #include <unistd.h>
                   #include <sys/time.h>
@@ -23440,7 +23428,7 @@ int main() {
  int f = RLIMIT_VMEM ; 
 ; return 0; }
 EOF
-if { (eval echo configure:23444: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23432: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcxx_mresult=1
 else
@@ -23457,7 +23445,7 @@ EOF
 
     
   cat > conftest.$ac_ext <<EOF
-#line 23461 "configure"
+#line 23449 "configure"
 #include "confdefs.h"
 #include <unistd.h>
                   #include <sys/time.h>
@@ -23467,7 +23455,7 @@ int main() {
  int f = RLIMIT_AS ; 
 ; return 0; }
 EOF
-if { (eval echo configure:23471: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23459: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcxx_mresult=1
 else
@@ -23489,7 +23477,7 @@ EOF
 else
   
       cat > conftest.$ac_ext <<EOF
-#line 23493 "configure"
+#line 23481 "configure"
 #include "confdefs.h"
 #include <unistd.h>
                   #include <sys/time.h>
@@ -23499,7 +23487,7 @@ int main() {
  struct rlimit r; setrlimit(0, &r);
 ; return 0; }
 EOF
-if { (eval echo configure:23503: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23491: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_setrlimit=yes
 else
@@ -23515,7 +23503,7 @@ fi
   fi
 
   echo $ac_n "checking for testsuite memory limit support""... $ac_c" 1>&6
-echo "configure:23519: checking for testsuite memory limit support" >&5
+echo "configure:23507: checking for testsuite memory limit support" >&5
   if test $setrlimit_have_headers = yes && test $ac_setrlimit = yes; then
     ac_mem_limits=yes
     cat >> confdefs.h <<\EOF
@@ -23531,7 +23519,7 @@ EOF
     # Look for setenv, so that extended locale tests can be performed.
     
   echo $ac_n "checking for setenv declaration""... $ac_c" 1>&6
-echo "configure:23535: checking for setenv declaration" >&5
+echo "configure:23523: checking for setenv declaration" >&5
   if test x${glibcxx_cv_func_setenv_use+set} != xset; then
     if eval "test \"`echo '$''{'glibcxx_cv_func_setenv_use'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -23546,14 +23534,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
 cross_compiling=$ac_cv_prog_cxx_cross
 
       cat > conftest.$ac_ext <<EOF
-#line 23550 "configure"
+#line 23538 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 int main() {
  setenv(0, 0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:23557: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23545: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   glibcxx_cv_func_setenv_use=yes
 else
     for ac_func in setenv
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:23583: checking for $ac_func" >&5
+echo "configure:23571: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 23588 "configure"
+#line 23576 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -23607,7 +23595,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:23611: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:23599: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -23767,7 +23755,7 @@ glibcxx_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:23771: checking for --with-gxx-include-dir" >&5
+echo "configure:23759: 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"
@@ -23791,7 +23779,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:23795: checking for --enable-version-specific-runtime-libs" >&5
+echo "configure:23783: 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"
@@ -23842,7 +23830,7 @@ if test x"$glibcxx_toolexecdir" = x"no"; then
 fi
 
 echo $ac_n "checking for install location""... $ac_c" 1>&6
-echo "configure:23846: checking for install location" >&5
+echo "configure:23834: checking for install location" >&5
 echo "$ac_t""$gxx_include_dir" 1>&6
 
 
@@ -24126,6 +24114,7 @@ s%@OPT_LDFLAGS@%$OPT_LDFLAGS%g
 s%@LIBMATHOBJS@%$LIBMATHOBJS%g
 s%@WERROR@%$WERROR%g
 s%@SYMVER_MAP@%$SYMVER_MAP%g
+s%@port_specific_symbol_file@%$port_specific_symbol_file%g
 s%@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@%$GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE%g
 s%@GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@%$GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE%g
 s%@baseline_dir@%$baseline_dir%g
index a9619ea..763324d 100644 (file)
 #                          the form '-Wl,blah'
 #                          (defaults to empty in acinclude.m4)
 #
+#   port_specific_symbol_file
+#                          whitespace-seperated list of files containing
+#                              additional symbols to export from the shared
+#                              library, when symbol versioning is in use
+#
 #
 # If the defaults will not work for your platform, you need only change the
 # variables that won't work, i.e., you do not need to explicitly set a
@@ -66,7 +71,7 @@ case "${host_cpu}" in
   alpha*)
     try_cpu=alpha
     ;;
-  athlon* | i586 | i686 | i786 | x86_64)
+  i[567]86 | x86_64)
     try_cpu=i486
     ;;
   hppa*)
index ac51f45..fb4682c 100644 (file)
@@ -6,7 +6,7 @@
 <meta name="generator" content="makeinfo 4.3">
 <link href="http://www.gnu.org/software/texinfo/" rel="generator-home">
 <!--
-Copyright &copy; 2000, 2001, 2002 Free Software Foundation, Inc.
+Copyright &copy; 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 
    <p>Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.2 or
@@ -56,6 +56,9 @@ imposed by the ANSI/ISO standard.
 works.  It is difficult to test the C++ compiler without a working
 library, but you should at least try some minimal test cases.
 
+   <p>(Note that what we think of as a "target," the library refers to as
+a "host."  The comment at the top of <code>configure.in</code> explains why.)
+
    <p>Here are the primary steps required to port the library:
 
 <ul class="menu">
@@ -92,7 +95,7 @@ directory.  The important information is that there needs to be a
 directory under <code>config/os</code> to store the files for your operating
 system.
 
-   <p>You might have to change the <code>configure.target</code> file to ensure that
+   <p>You might have to change the <code>configure.host</code> file to ensure that
 your new directory is activated.  Look for the switch statement that sets
 <code>os_include_dir</code>, and add a pattern to handle your operating system
 if the default will not suffice.  The switch statement switches on only
@@ -134,45 +137,42 @@ need to define.  You will need to add them to the
 target.  It will not work to simply define these macros in
 <code>os_defines.h</code>.
 
-   <p>At this time, there are a few libstdc++-v3-specific macro which may be
-defined.  <code>_G_USING_THUNKS</code> may be defined to 0 to express that the
-port doesn't use thunks (although it is unclear that this is still
-useful since libio support isn't currently working and the g++ v3 ABI
-invalidates the assumption that some ports don't use thunks).
+   <p>At this time, there are a few libstdc++-v3-specific macros which may be
+defined:
 
-   <p><code>_GLIBCPP_USE_C99_CHECK</code> may be defined to 1 to check C99
+   <p><code>_GLIBCXX_USE_C99_CHECK</code> may be defined to 1 to check C99
 function declarations (which are not covered by specialization below)
 found in system headers against versions found in the library headers
 derived from the standard.
 
-   <p><code>_GLIBCPP_USE_C99_DYNAMIC</code> may be defined to an expression that
+   <p><code>_GLIBCXX_USE_C99_DYNAMIC</code> may be defined to an expression that
 yields 0 if and only if the system headers are exposing proper support
 for C99 functions (which are not covered by specialization below).  If
 defined, it must be 0 while bootstrapping the compiler/rebuilding the
 library.
 
-   <p><code>_GLIBCPP_USE_C99_LONG_LONG_CHECK</code> may be defined to 1 to check
+   <p><code>_GLIBCXX_USE_C99_LONG_LONG_CHECK</code> may be defined to 1 to check
 the set of C99 long long function declarations found in system headers
 against versions found in the library headers derived from the
 standard.
 
-   <p><code>_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC</code> may be defined to an
+   <p><code>_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC</code> may be defined to an
 expression that yields 0 if and only if the system headers are
 exposing proper support for the set of C99 long long functions.  If
 defined, it must be 0 while bootstrapping the compiler/rebuilding the
 library.
 
-   <p><code>_GLIBCPP_USE_C99_FP_MACROS_DYNAMIC</code> may be defined to an
+   <p><code>_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC</code> may be defined to an
 expression that yields 0 if and only if the system headers
 are exposing proper support for the related set of macros.  If defined,
 it must be 0 while bootstrapping the compiler/rebuilding the library.
 
-   <p><code>_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_CHECK</code> may be defined
+   <p><code>_GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_CHECK</code> may be defined
 to 1 to check the related set of function declarations found in system
 headers against versions found in the library headers derived from
 the standard.
 
-   <p><code>_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC</code> may be defined
+   <p><code>_GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC</code> may be defined
 to an expression that yields 0 if and only if the system headers
 are exposing proper support for the related set of functions.  If defined,
 it must be 0 while bootstrapping the compiler/rebuilding the library.
@@ -180,8 +180,8 @@ it must be 0 while bootstrapping the compiler/rebuilding the library.
    <p>Finally, you should bracket the entire file in an include-guard, like
 this:
 
-<pre class="example">     #ifndef _GLIBCPP_OS_DEFINES
-     #define _GLIBCPP_OS_DEFINES
+<pre class="example">     #ifndef _GLIBCXX_OS_DEFINES
+     #define _GLIBCXX_OS_DEFINES
      ...
      #endif
      </pre>
@@ -209,14 +209,14 @@ setup files without explicit help.
 
    <p>We recommend that for a target triplet <code>&lt;CPU&gt;-&lt;vendor&gt;-&lt;OS&gt;</code>, you
 name your configuration directory <code>config/cpu/&lt;CPU&gt;</code>.  If you do this,
-the configury will find the directory itself.  Otherwise you will need to
-edit the <code>configure.target</code> file and, in the switch statement that sets
+the configury will find the directory by itself.  Otherwise you will need to
+edit the <code>configure.host</code> file and, in the switch statement that sets
 <code>cpu_include_dir</code>, add a pattern to handle your chip.
 
    <p>Note that some chip families share a single configuration directory, for
 example, <code>alpha</code>, <code>alphaev5</code>, and <code>alphaev6</code> all use the
 <code>config/cpu/alpha</code> directory, and there is an entry in the
-<code>configure.target</code> switch statement to handle this.
+<code>configure.host</code> switch statement to handle this.
 
    <p>The <code>cpu_include_dir</code> sets default locations for the files controlling
 <a href="#Thread%20safety">Thread safety</a> and <a href="#Numeric%20limits">Numeric limits</a>, if the defaults are not
@@ -456,14 +456,14 @@ see the <code>atomicity.h</code> file for IRIX or IA64.
    <p>Alternatively, if the primitives are more closely related to the OS
 than they are to the CPU, you can put the <code>atomicity.h</code> file in
 the <a href="#Operating%20system">Operating system</a> directory instead.  In this case, you must
-edit <code>configure.target</code>, and in the switch statement that handles
+edit <code>configure.host</code>, and in the switch statement that handles
 operating systems, override the <code>ATOMICITYH</code> variable to point to
 the appropriate <code>os_include_dir</code>.  For examples of this approach,
 see the <code>atomicity.h</code> file for AIX.
 
    <p>With those bits out of the way, you have to actually write
 <code>atomicity.h</code> itself.  This file should be wrapped in an
-include guard named <code>_BITS_ATOMICITY_H</code>.  It should define one
+include guard named <code>_GLIBCXX_ATOMICITY_H</code>.  It should define one
 type, and two functions.
 
    <p>The type is <code>_Atomic_word</code>.  Here is the version used on IRIX:
index 6f3618c..ed4042f 100644 (file)
@@ -9,7 +9,7 @@
 @setchapternewpage odd
 
 @copying
-Copyright @copyright{} 2000, 2001, 2002 Free Software Foundation, Inc.
+Copyright @copyright{} 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
 under the terms of the GNU Free Documentation License, Version 1.2 or
@@ -74,6 +74,9 @@ In addition, you should try to verify that the C++ compiler generally
 works.  It is difficult to test the C++ compiler without a working
 library, but you should at least try some minimal test cases.
 
+(Note that what we think of as a ``target,'' the library refers to as
+a ``host.''  The comment at the top of @file{configure.in} explains why.)
+
 Here are the primary steps required to port the library:
 
 @menu
@@ -106,7 +109,7 @@ directory.  The important information is that there needs to be a
 directory under @file{config/os} to store the files for your operating
 system.
 
-You might have to change the @file{configure.target} file to ensure that
+You might have to change the @file{configure.host} file to ensure that
 your new directory is activated.  Look for the switch statement that sets
 @code{os_include_dir}, and add a pattern to handle your operating system
 if the default will not suffice.  The switch statement switches on only
@@ -150,45 +153,42 @@ need to define.  You will need to add them to the
 target.  It will not work to simply define these macros in
 @file{os_defines.h}.
 
-At this time, there are a few libstdc++-v3-specific macro which may be
-defined.  @code{_G_USING_THUNKS} may be defined to 0 to express that the
-port doesn't use thunks (although it is unclear that this is still
-useful since libio support isn't currently working and the g++ v3 ABI
-invalidates the assumption that some ports don't use thunks).
+At this time, there are a few libstdc++-v3-specific macros which may be
+defined:
 
-@code{_GLIBCPP_USE_C99_CHECK} may be defined to 1 to check C99
+@code{_GLIBCXX_USE_C99_CHECK} may be defined to 1 to check C99
 function declarations (which are not covered by specialization below)
 found in system headers against versions found in the library headers
 derived from the standard.
 
-@code{_GLIBCPP_USE_C99_DYNAMIC} may be defined to an expression that
+@code{_GLIBCXX_USE_C99_DYNAMIC} may be defined to an expression that
 yields 0 if and only if the system headers are exposing proper support
 for C99 functions (which are not covered by specialization below).  If
 defined, it must be 0 while bootstrapping the compiler/rebuilding the
 library.
 
-@code{_GLIBCPP_USE_C99_LONG_LONG_CHECK} may be defined to 1 to check
+@code{_GLIBCXX_USE_C99_LONG_LONG_CHECK} may be defined to 1 to check
 the set of C99 long long function declarations found in system headers
 against versions found in the library headers derived from the
 standard.
 
-@code{_GLIBCPP_USE_C99_LONG_LONG_DYNAMIC} may be defined to an
+@code{_GLIBCXX_USE_C99_LONG_LONG_DYNAMIC} may be defined to an
 expression that yields 0 if and only if the system headers are
 exposing proper support for the set of C99 long long functions.  If
 defined, it must be 0 while bootstrapping the compiler/rebuilding the
 library.
 
-@code{_GLIBCPP_USE_C99_FP_MACROS_DYNAMIC} may be defined to an
+@code{_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC} may be defined to an
 expression that yields 0 if and only if the system headers
 are exposing proper support for the related set of macros.  If defined,
 it must be 0 while bootstrapping the compiler/rebuilding the library.
 
-@code{_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_CHECK} may be defined
+@code{_GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_CHECK} may be defined
 to 1 to check the related set of function declarations found in system
 headers against versions found in the library headers derived from
 the standard.
 
-@code{_GLIBCPP_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC} may be defined
+@code{_GLIBCXX_USE_C99_FLOAT_TRANSCENDENTALS_DYNAMIC} may be defined
 to an expression that yields 0 if and only if the system headers
 are exposing proper support for the related set of functions.  If defined,
 it must be 0 while bootstrapping the compiler/rebuilding the library.
@@ -197,8 +197,8 @@ Finally, you should bracket the entire file in an include-guard, like
 this:
 
 @example
-#ifndef _GLIBCPP_OS_DEFINES
-#define _GLIBCPP_OS_DEFINES
+#ifndef _GLIBCXX_OS_DEFINES
+#define _GLIBCXX_OS_DEFINES
 ...
 #endif
 @end example
@@ -222,14 +222,14 @@ setup files without explicit help.
 
 We recommend that for a target triplet @code{<CPU>-<vendor>-<OS>}, you
 name your configuration directory @file{config/cpu/<CPU>}.  If you do this,
-the configury will find the directory itself.  Otherwise you will need to
-edit the @file{configure.target} file and, in the switch statement that sets
+the configury will find the directory by itself.  Otherwise you will need to
+edit the @file{configure.host} file and, in the switch statement that sets
 @code{cpu_include_dir}, add a pattern to handle your chip.
 
 Note that some chip families share a single configuration directory, for
 example, @code{alpha}, @code{alphaev5}, and @code{alphaev6} all use the
 @file{config/cpu/alpha} directory, and there is an entry in the
-@file{configure.target} switch statement to handle this.
+@file{configure.host} switch statement to handle this.
 
 The @code{cpu_include_dir} sets default locations for the files controlling
 @ref{Thread safety} and @ref{Numeric limits}, if the defaults are not
@@ -474,14 +474,14 @@ see the @file{atomicity.h} file for IRIX or IA64.
 Alternatively, if the primitives are more closely related to the OS
 than they are to the CPU, you can put the @file{atomicity.h} file in
 the @ref{Operating system} directory instead.  In this case, you must
-edit @file{configure.target}, and in the switch statement that handles
+edit @file{configure.host}, and in the switch statement that handles
 operating systems, override the @code{ATOMICITYH} variable to point to
 the appropriate @code{os_include_dir}.  For examples of this approach,
 see the @file{atomicity.h} file for AIX.
 
 With those bits out of the way, you have to actually write
 @file{atomicity.h} itself.  This file should be wrapped in an
-include guard named @code{_BITS_ATOMICITY_H}.  It should define one
+include guard named @code{_GLIBCXX_ATOMICITY_H}.  It should define one
 type, and two functions.  
 
 The type is @code{_Atomic_word}.  Here is the version used on IRIX:
index 2322a67..72f7cbd 100644 (file)
@@ -37,9 +37,16 @@ toolexeclib_LTLIBRARIES = libstdc++.la
 
 # Symbol versioning for shared libraries.
 if GLIBCXX_BUILD_VERSIONED_SHLIB
+port_specific_symbol_file = @port_specific_symbol_file@
 version_arg = -Wl,--version-script=libstdc++-symbol.ver
 libstdc++-symbol.ver:  ${glibcxx_srcdir}/@SYMVER_MAP@
-       @LN_S@  ${glibcxx_srcdir}/@SYMVER_MAP@ ./libstdc++-symbol.ver || true
+       cp ${glibcxx_srcdir}/@SYMVER_MAP@ ./libstdc++-symbol.ver
+       if test "x${port_specific_symbol_file}" != x; then \
+         sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \
+         sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \
+         cat tmp.top $(port_specific_symbol_file) tmp.bottom > $@; \
+         rm tmp.top tmp.bottom; \
+       fi
 else
 version_arg =
 libstdc++-symbol.ver:
@@ -106,7 +113,7 @@ time_members.cc: ${glibcxx_srcdir}/@CTIME_CC@
 # particular host, but with ad hoc naming rules.
 host_sources_extra = \
        basic_file.cc \
-       c++locale.cc 
+       c++locale.cc
 
 c++locale.cc: ${glibcxx_srcdir}/@CLOCALE_CC@
        @LN_S@ ${glibcxx_srcdir}/@CLOCALE_CC@ ./$@ || true
@@ -157,7 +164,7 @@ libstdc___la_DEPENDENCIES = libstdc++-symbol.ver $(libstdc___la_LIBADD)
 
 libstdc___la_LDFLAGS = \
        -version-info @libtool_VERSION@ ${version_arg} \
-       -lm @LIBUNWIND_FLAG@ 
+       -lm @LIBUNWIND_FLAG@
 
 
 # Use special rules for the deprecated source files so that they find
@@ -188,13 +195,13 @@ demangle.o: demangle.cc
 # modified in a per-library or per-sub-library way.  Need to manually
 # set this option because CONFIG_CXXFLAGS has to be after
 # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
-# as the occasion call for it. 
+# as the occasion calls for it.
 AM_CXXFLAGS = \
        -fno-implicit-templates \
        $(LIBSUPCXX_CXXFLAGS) \
        $(WARN_CXXFLAGS) \
        $(OPTIMIZE_CXXFLAGS) \
-       $(CONFIG_CXXFLAGS)  
+       $(CONFIG_CXXFLAGS)
 
 
 # libstdc++ libtool notes
@@ -216,7 +223,7 @@ AM_CXXFLAGS = \
 # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
 # attempt to infer which configuration to use
 LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \
-              $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) 
+              $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
 
 # 3) We'd have a problem when building the shared libstdc++ object if
 # the rules automake generates would be used.  We cannot allow g++ to
@@ -234,13 +241,13 @@ all-local: build_debug
 install-data-local: install_debug
 else
 all-local:
-install-data-local: 
+install-data-local:
 endif
 
 debugdir = debug
 
 # Build parallel set of debug objects here.
-stamp-debug: 
+stamp-debug:
        if test ! -d ${debugdir}; then \
          mkdir -p ${debugdir}; \
          (cd ${debugdir}; \
@@ -251,12 +258,12 @@ stamp-debug:
              -e 's/install-data-local: install_debug/install-data-local:/' \
          < ../Makefile > Makefile) ; \
        fi; \
-       echo `date` > stamp-debug; 
+       echo `date` > stamp-debug;
 
 build_debug: stamp-debug
        (cd ${debugdir} && $(MAKE) CXXFLAGS='@DEBUG_FLAGS@' all)
 
 # Install debug library here.
-install_debug: 
+install_debug:
        (cd ${debugdir} && $(MAKE) \
        toolexeclibdir=@glibcxx_toolexeclibdir@/debug install)
index d86cc4b..9062d7c 100644 (file)
@@ -147,7 +147,10 @@ glibcxx_builddir = @glibcxx_builddir@
 toolexecdir = @glibcxx_toolexecdir@
 toolexeclibdir = @glibcxx_toolexeclibdir@
 toolexeclib_LTLIBRARIES = libstdc++.la
-@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@version_arg = @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@-Wl,--version-script=libstdc++-symbol.ver
+
+# Symbol versioning for shared libraries.
+@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@port_specific_symbol_file = @port_specific_symbol_file@
+@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@version_arg = -Wl,--version-script=libstdc++-symbol.ver
 @GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@version_arg = 
 
 # Compile flags that should be constant throughout the build, both for
@@ -156,13 +159,11 @@ OPTIMIZE_CXXFLAGS = @OPTIMIZE_CXXFLAGS@
 
 # These bits are all figured out from configure. Look in acinclude.m4
 # or configure.in to see how they are set. See GLIBCXX_EXPORT_FLAGS
-CONFIG_CXXFLAGS = \
-       @SECTION_FLAGS@ @EXTRA_CXX_FLAGS@
+CONFIG_CXXFLAGS =      @SECTION_FLAGS@ @EXTRA_CXX_FLAGS@
 
 
 # Warning flags to use.
-WARN_CXXFLAGS = \
-       @WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once
+WARN_CXXFLAGS =        @WARN_FLAGS@ $(WERROR) -fdiagnostics-show-location=once
 
 
 # Use common includes from acinclude.m4/GLIBCXX_EXPORT_INCLUDES
@@ -171,78 +172,33 @@ LIBMATH_INCLUDES = @LIBMATH_INCLUDES@
 LIBSUPCXX_INCLUDES = @LIBSUPCXX_INCLUDES@
 TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
 
-INCLUDES = \
-       -nostdinc++ \
-       $(GLIBCXX_INCLUDES) \
-       $(LIBSUPCXX_INCLUDES) $(LIBMATH_INCLUDES) \
-       $(TOPLEVEL_INCLUDES)
+INCLUDES =     -nostdinc++     $(GLIBCXX_INCLUDES)     $(LIBSUPCXX_INCLUDES) $(LIBMATH_INCLUDES)       $(TOPLEVEL_INCLUDES)
 
 
 # Source files linked in via configuration/make substitution for a
 # particular host.
-host_sources = \
-       codecvt_members.cc \
-       collate_members.cc \
-       ctype_members.cc \
-       messages_members.cc \
-       monetary_members.cc \
-       numeric_members.cc \
-       time_members.cc
+host_sources =         codecvt_members.cc      collate_members.cc      ctype_members.cc        messages_members.cc     monetary_members.cc     numeric_members.cc      time_members.cc
 
 
 # Source files linked in via configuration/make substitution for a
 # particular host, but with ad hoc naming rules.
-host_sources_extra = \
-       basic_file.cc \
-       c++locale.cc 
+host_sources_extra =   basic_file.cc   c++locale.cc
 
 
 # Sources present in the src directory.
-sources = \
-       allocator-inst.cc \
-       codecvt.cc \
-       complex_io.cc \
-       concept-inst.cc \
-       ctype.cc \
-       demangle.cc \
-       ext-inst.cc \
-       fstream-inst.cc \
-       functexcept.cc \
-       globals.cc \
-       io-inst.cc \
-       ios.cc \
-       istream-inst.cc \
-       limits.cc \
-       locale.cc \
-       locale-inst.cc \
-       localename.cc \
-       misc-inst.cc \
-       ostream-inst.cc \
-       sstream-inst.cc \
-       stdexcept.cc \
-       streambuf-inst.cc \
-       string-inst.cc \
-       strstream.cc \
-       valarray-inst.cc \
-       wstring-inst.cc \
-       ${host_sources} \
-       ${host_sources_extra}
+sources =      allocator-inst.cc       codecvt.cc      complex_io.cc   concept-inst.cc         ctype.cc        demangle.cc     ext-inst.cc     fstream-inst.cc         functexcept.cc  globals.cc      io-inst.cc      ios.cc  istream-inst.cc         limits.cc       locale.cc       locale-inst.cc  localename.cc   misc-inst.cc    ostream-inst.cc         sstream-inst.cc         stdexcept.cc    streambuf-inst.cc       string-inst.cc  strstream.cc    valarray-inst.cc        wstring-inst.cc         ${host_sources}         ${host_sources_extra}
 
 
 VPATH = $(top_srcdir)/src:$(top_srcdir)
 
 libstdc___la_SOURCES = $(sources)
 
-libstdc___la_LIBADD = \
-       $(top_builddir)/libmath/libmath.la \
-       $(top_builddir)/libsupc++/libsupc++convenience.la
+libstdc___la_LIBADD =          $(top_builddir)/libmath/libmath.la      $(top_builddir)/libsupc++/libsupc++convenience.la
 
 
 libstdc___la_DEPENDENCIES = libstdc++-symbol.ver $(libstdc___la_LIBADD)
 
-libstdc___la_LDFLAGS = \
-       -version-info @libtool_VERSION@ ${version_arg} \
-       -lm @LIBUNWIND_FLAG@ 
+libstdc___la_LDFLAGS =         -version-info @libtool_VERSION@ ${version_arg}  -lm @LIBUNWIND_FLAG@
 
 
 # Use special rules for the deprecated source files so that they find
@@ -253,13 +209,8 @@ GLIBCXX_INCLUDE_DIR = @glibcxx_builddir@/include
 # modified in a per-library or per-sub-library way.  Need to manually
 # set this option because CONFIG_CXXFLAGS has to be after
 # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden
-# as the occasion call for it. 
-AM_CXXFLAGS = \
-       -fno-implicit-templates \
-       $(LIBSUPCXX_CXXFLAGS) \
-       $(WARN_CXXFLAGS) \
-       $(OPTIMIZE_CXXFLAGS) \
-       $(CONFIG_CXXFLAGS)  
+# as the occasion calls for it.
+AM_CXXFLAGS =          -fno-implicit-templates         $(LIBSUPCXX_CXXFLAGS)   $(WARN_CXXFLAGS)        $(OPTIMIZE_CXXFLAGS)    $(CONFIG_CXXFLAGS)
 
 
 # libstdc++ libtool notes
@@ -280,8 +231,7 @@ AM_CXXFLAGS = \
 # correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe
 # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to
 # attempt to infer which configuration to use
-LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \
-              $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS) 
+LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES)         $(AM_CPPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $(AM_CXXFLAGS)
 
 
 # 3) We'd have a problem when building the shared libstdc++ object if
@@ -290,8 +240,7 @@ LTCXXCOMPILE = $(LIBTOOL) --tag CXX --mode=compile $(CXX) $(INCLUDES) \
 # course is problematic at this point.  So, we get the top-level
 # directory to configure libstdc++-v3 to use gcc as the C++
 # compilation driver.
-CXXLINK = $(LIBTOOL) --tag CXX --mode=link $(CXX) \
-         @OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
+CXXLINK = $(LIBTOOL) --tag CXX --mode=link $(CXX)        @OPT_LDFLAGS@ @SECTION_LDFLAGS@ $(AM_CXXFLAGS) $(LDFLAGS) -o $@
 
 
 debugdir = debug
@@ -321,7 +270,7 @@ DIST_COMMON =  Makefile.am Makefile.in
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = gtar
+TAR = tar
 GZIP_ENV = --best
 SOURCES = $(libstdc___la_SOURCES)
 OBJECTS = $(libstdc___la_OBJECTS)
@@ -433,7 +382,7 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) $(LISP)
          awk '    { files[$$0] = 1; } \
               END { for (i in files) print i; }'`; \
        test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \
-         || (cd $(srcdir) && etags $(ETAGS_ARGS) $$tags  $$unique $(LISP) -o $$here/TAGS)
+         || (cd $(srcdir) && etags -o $$here/TAGS $(ETAGS_ARGS) $$tags  $$unique $(LISP))
 
 mostlyclean-tags:
 
@@ -540,7 +489,13 @@ distclean-generic clean-generic maintainer-clean-generic clean \
 mostlyclean distclean maintainer-clean
 
 @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@libstdc++-symbol.ver:  ${glibcxx_srcdir}/@SYMVER_MAP@
-@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@   @LN_S@  ${glibcxx_srcdir}/@SYMVER_MAP@ ./libstdc++-symbol.ver || true
+@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@   cp ${glibcxx_srcdir}/@SYMVER_MAP@ ./libstdc++-symbol.ver
+@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@   if test "x${port_specific_symbol_file}" != x; then \
+@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@     sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \
+@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@     sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \
+@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@     cat tmp.top $(port_specific_symbol_file) tmp.bottom > $@; \
+@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@     rm tmp.top tmp.bottom; \
+@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@   fi
 @GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@libstdc++-symbol.ver:
 
 codecvt_members.cc: ${glibcxx_srcdir}/@CCODECVT_CC@
@@ -593,10 +548,10 @@ demangle.o: demangle.cc
 @GLIBCXX_BUILD_DEBUG_TRUE@all-local: build_debug
 @GLIBCXX_BUILD_DEBUG_TRUE@install-data-local: install_debug
 @GLIBCXX_BUILD_DEBUG_FALSE@all-local:
-@GLIBCXX_BUILD_DEBUG_FALSE@install-data-local: 
+@GLIBCXX_BUILD_DEBUG_FALSE@install-data-local:
 
 # Build parallel set of debug objects here.
-stamp-debug: 
+stamp-debug:
        if test ! -d ${debugdir}; then \
          mkdir -p ${debugdir}; \
          (cd ${debugdir}; \
@@ -607,13 +562,13 @@ stamp-debug:
              -e 's/install-data-local: install_debug/install-data-local:/' \
          < ../Makefile > Makefile) ; \
        fi; \
-       echo `date` > stamp-debug; 
+       echo `date` > stamp-debug;
 
 build_debug: stamp-debug
        (cd ${debugdir} && $(MAKE) CXXFLAGS='@DEBUG_FLAGS@' all)
 
 # Install debug library here.
-install_debug: 
+install_debug:
        (cd ${debugdir} && $(MAKE) \
        toolexeclibdir=@glibcxx_toolexeclibdir@/debug install)