summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog17
-rw-r--r--libstdc++-v3/acinclude.m45
-rw-r--r--libstdc++-v3/aclocal.m45
-rw-r--r--libstdc++-v3/config/linker-map.gnu7
-rwxr-xr-xlibstdc++-v3/configure91
-rw-r--r--libstdc++-v3/configure.host7
-rw-r--r--libstdc++-v3/docs/html/17_intro/porting.html42
-rw-r--r--libstdc++-v3/docs/html/17_intro/porting.texi42
-rw-r--r--libstdc++-v3/src/Makefile.am27
-rw-r--r--libstdc++-v3/src/Makefile.in103
10 files changed, 161 insertions, 185 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index e00b406ed1a..274be04725b 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -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.
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
index 64c4d813875..8d81668f111 100644
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -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)
diff --git a/libstdc++-v3/aclocal.m4 b/libstdc++-v3/aclocal.m4
index 1a5563ce0bc..17a95f69c45 100644
--- a/libstdc++-v3/aclocal.m4
+++ b/libstdc++-v3/aclocal.m4
@@ -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)
diff --git a/libstdc++-v3/config/linker-map.gnu b/libstdc++-v3/config/linker-map.gnu
index 34470c4233b..5cf3dd9c7e7 100644
--- a/libstdc++-v3/config/linker-map.gnu
+++ b/libstdc++-v3/config/linker-map.gnu
@@ -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:
*;
};
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 9e9d38f087c..c3352ed9d01 100755
--- a/libstdc++-v3/configure
+++ b/libstdc++-v3/configure
@@ -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
@@ -23219,18 +23206,18 @@ fi
# 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
@@ -23579,12 +23567,12 @@ fi
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
diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host
index a9619ea4d89..763324d9ae7 100644
--- a/libstdc++-v3/configure.host
+++ b/libstdc++-v3/configure.host
@@ -41,6 +41,11 @@
# 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*)
diff --git a/libstdc++-v3/docs/html/17_intro/porting.html b/libstdc++-v3/docs/html/17_intro/porting.html
index ac51f450673..fb4682c8c2c 100644
--- a/libstdc++-v3/docs/html/17_intro/porting.html
+++ b/libstdc++-v3/docs/html/17_intro/porting.html
@@ -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:
diff --git a/libstdc++-v3/docs/html/17_intro/porting.texi b/libstdc++-v3/docs/html/17_intro/porting.texi
index 6f3618c637d..ed4042f932d 100644
--- a/libstdc++-v3/docs/html/17_intro/porting.texi
+++ b/libstdc++-v3/docs/html/17_intro/porting.texi
@@ -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:
diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am
index 2322a6737f4..72f7cbdb50b 100644
--- a/libstdc++-v3/src/Makefile.am
+++ b/libstdc++-v3/src/Makefile.am
@@ -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)
diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in
index d86cc4b57a8..9062d7ccb10 100644
--- a/libstdc++-v3/src/Makefile.in
+++ b/libstdc++-v3/src/Makefile.in
@@ -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)