From e6b7a69ab66f49a531ff8d2b56a72eca31676435 Mon Sep 17 00:00:00 2001 From: Phil Edwards Date: Sun, 6 Jul 2003 04:07:36 +0000 Subject: [PATCH] acinclude.m4 (GLIBCXX_ENABLE_SYMVERS): Bump minimal version requirement. 2003-07-05 Phil Edwards * 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. From-SVN: r68992 --- libstdc++-v3/ChangeLog | 17 +++ libstdc++-v3/acinclude.m4 | 5 +- libstdc++-v3/aclocal.m4 | 5 +- libstdc++-v3/config/linker-map.gnu | 7 +- libstdc++-v3/configure | 91 +++++++--------- libstdc++-v3/configure.host | 7 +- libstdc++-v3/docs/html/17_intro/porting.html | 42 ++++---- libstdc++-v3/docs/html/17_intro/porting.texi | 42 ++++---- libstdc++-v3/src/Makefile.am | 27 +++-- libstdc++-v3/src/Makefile.in | 103 ++++++------------- 10 files changed, 161 insertions(+), 185 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index e00b406ed1a4..274be04725b7 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,20 @@ +2003-07-05 Phil Edwards + + * 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 * scripts/create_testsuite_files: New file. diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 64c4d8138751..8d81668f1111 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 1a5563ce0bc0..17a95f69c45e 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 34470c4233b6..5cf3dd9c7e7d 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 9e9d38f087cf..c3352ed9d019 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 #include -#if HAVE_SYS_TYPES_H -# include -#endif - -#if HAVE_STDLIB_H -# include -#endif - -#if HAVE_SYS_STAT_H -# include -#endif - -#if HAVE_UNISTD_H -# include -#endif - /* This mess was copied from the GNU getpagesize.h. */ #ifndef HAVE_GETPAGESIZE +# ifdef HAVE_UNISTD_H +# include +# 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 <&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 <&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 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 < #include @@ -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 < #include @@ -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 < #include @@ -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 < #include @@ -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 < #include @@ -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 < 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 <&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= 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 a9619ea4d892..763324d9ae70 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 ac51f4506734..fb4682c8c2c9 100644 --- a/libstdc++-v3/docs/html/17_intro/porting.html +++ b/libstdc++-v3/docs/html/17_intro/porting.html @@ -6,7 +6,7 @@