From 871b22dbf2c7c78cf1a832407327c8009734ad76 Mon Sep 17 00:00:00 2001 From: bkoz Date: Sun, 18 Dec 2005 09:39:23 +0000 Subject: [PATCH] 2005-12-18 Benjamin Kosnik * config/abi/post: New. * config/abi/*-linux-gnu: Move to.. * config/abi/post/*-linux-gnu: ... here. * config/abi/pre: New. * config/linker-map.gnu: Move to .. * config/abi/pre/gnu.ver: ... here. * config/linker-map.dummy: Move to.. * config/abi/pre/none.ver: ... here. * src/Makefile.am: Use ENABLE_SYMVERS_GNU, ENABLE_SYMVERS_DARWIN, ENABLE_SYMVERS_GNU_NAMESPACE. Use libstdc++-symbols.ver instead of libstdc++-symbol.ver. * src/Makefile.in: Regnerate. * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Adjust paths for new placement of abi baseline files. (GLIBCXX_ENABLE_SYMVERS): Add ENABLE_SYMVERS, ENABLE_SYMVERS_GNU, ENABLE_SYMVERS_DARWIN. SYMVER_MAP to SYMVER_FILE. * configure: Regnerate. * config.h.in: Regnerate. * src/compatibility.cc: Adjust macro usage. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@108748 138bc75d-0d04-0410-961f-82ee72b054a4 --- libstdc++-v3/ChangeLog | 22 ++++ libstdc++-v3/Makefile.in | 8 +- libstdc++-v3/acinclude.m4 | 67 +++++++----- libstdc++-v3/config.h.in | 8 +- .../alpha-linux-gnu/baseline_symbols.txt | 0 .../{ => post}/hppa-linux-gnu/baseline_symbols.txt | 0 .../{ => post}/i386-linux-gnu/baseline_symbols.txt | 0 .../{ => post}/i486-linux-gnu/baseline_symbols.txt | 0 .../{ => post}/ia64-linux-gnu/baseline_symbols.txt | 0 .../{ => post}/mips-linux-gnu/baseline_symbols.txt | 0 .../powerpc-linux-gnu/baseline_symbols.txt | 0 .../powerpc64-linux-gnu/32/baseline_symbols.txt | 0 .../powerpc64-linux-gnu/baseline_symbols.txt | 0 .../{ => post}/s390-linux-gnu/baseline_symbols.txt | 0 .../s390x-linux-gnu/baseline_symbols.txt | 0 .../sparc-linux-gnu/baseline_symbols.txt | 0 .../x86_64-linux-gnu/32/baseline_symbols.txt | 0 .../x86_64-linux-gnu/baseline_symbols.txt | 0 .../config/{linker-map.gnu => abi/pre/gnu.ver} | 0 .../config/{linker-map.dummy => abi/pre/none.ver} | 0 libstdc++-v3/configure | 119 +++++++++++++-------- libstdc++-v3/include/Makefile.in | 8 +- libstdc++-v3/libmath/Makefile.in | 8 +- libstdc++-v3/libsupc++/Makefile.in | 8 +- libstdc++-v3/po/Makefile.in | 8 +- libstdc++-v3/src/Makefile.am | 26 +++-- libstdc++-v3/src/Makefile.in | 59 +++++----- libstdc++-v3/src/compatibility.cc | 8 +- libstdc++-v3/testsuite/Makefile.in | 8 +- 29 files changed, 220 insertions(+), 137 deletions(-) rename libstdc++-v3/config/abi/{ => post}/alpha-linux-gnu/baseline_symbols.txt (100%) rename libstdc++-v3/config/abi/{ => post}/hppa-linux-gnu/baseline_symbols.txt (100%) rename libstdc++-v3/config/abi/{ => post}/i386-linux-gnu/baseline_symbols.txt (100%) rename libstdc++-v3/config/abi/{ => post}/i486-linux-gnu/baseline_symbols.txt (100%) rename libstdc++-v3/config/abi/{ => post}/ia64-linux-gnu/baseline_symbols.txt (100%) rename libstdc++-v3/config/abi/{ => post}/mips-linux-gnu/baseline_symbols.txt (100%) rename libstdc++-v3/config/abi/{ => post}/powerpc-linux-gnu/baseline_symbols.txt (100%) rename libstdc++-v3/config/abi/{ => post}/powerpc64-linux-gnu/32/baseline_symbols.txt (100%) rename libstdc++-v3/config/abi/{ => post}/powerpc64-linux-gnu/baseline_symbols.txt (100%) rename libstdc++-v3/config/abi/{ => post}/s390-linux-gnu/baseline_symbols.txt (100%) rename libstdc++-v3/config/abi/{ => post}/s390x-linux-gnu/baseline_symbols.txt (100%) rename libstdc++-v3/config/abi/{ => post}/sparc-linux-gnu/baseline_symbols.txt (100%) rename libstdc++-v3/config/abi/{ => post}/x86_64-linux-gnu/32/baseline_symbols.txt (100%) rename libstdc++-v3/config/abi/{ => post}/x86_64-linux-gnu/baseline_symbols.txt (100%) rename libstdc++-v3/config/{linker-map.gnu => abi/pre/gnu.ver} (100%) rename libstdc++-v3/config/{linker-map.dummy => abi/pre/none.ver} (100%) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 638a77133a0..60f7b8ef4da 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,25 @@ +2005-12-18 Benjamin Kosnik + + * config/abi/post: New. + * config/abi/*-linux-gnu: Move to.. + * config/abi/post/*-linux-gnu: ... here. + * config/abi/pre: New. + * config/linker-map.gnu: Move to .. + * config/abi/pre/gnu.ver: ... here. + * config/linker-map.dummy: Move to.. + * config/abi/pre/none.ver: ... here. + * src/Makefile.am: Use ENABLE_SYMVERS_GNU, + ENABLE_SYMVERS_DARWIN, ENABLE_SYMVERS_GNU_NAMESPACE. + Use libstdc++-symbols.ver instead of libstdc++-symbol.ver. + * src/Makefile.in: Regnerate. + * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Adjust paths for new + placement of abi baseline files. + (GLIBCXX_ENABLE_SYMVERS): Add ENABLE_SYMVERS, ENABLE_SYMVERS_GNU, + ENABLE_SYMVERS_DARWIN. SYMVER_MAP to SYMVER_FILE. + * configure: Regnerate. + * config.h.in: Regnerate. + * src/compatibility.cc: Adjust macro usage. + 2005-12-17 Benjamin Kosnik * src/io-inst.cc: Separate instantiations into... diff --git a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in index 5d5e744d188..f7d0f70740e 100644 --- a/libstdc++-v3/Makefile.in +++ b/libstdc++-v3/Makefile.in @@ -131,10 +131,12 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ -ENABLE_SYMVERS_DARWIN_EXPORT_FALSE = @ENABLE_SYMVERS_DARWIN_EXPORT_FALSE@ -ENABLE_SYMVERS_DARWIN_EXPORT_TRUE = @ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@ +ENABLE_SYMVERS_DARWIN_FALSE = @ENABLE_SYMVERS_DARWIN_FALSE@ +ENABLE_SYMVERS_DARWIN_TRUE = @ENABLE_SYMVERS_DARWIN_TRUE@ +ENABLE_SYMVERS_FALSE = @ENABLE_SYMVERS_FALSE@ ENABLE_SYMVERS_GNU_FALSE = @ENABLE_SYMVERS_GNU_FALSE@ ENABLE_SYMVERS_GNU_TRUE = @ENABLE_SYMVERS_GNU_TRUE@ +ENABLE_SYMVERS_TRUE = @ENABLE_SYMVERS_TRUE@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GLIBCXX_BUILD_DEBUG_FALSE = @GLIBCXX_BUILD_DEBUG_FALSE@ @@ -183,7 +185,7 @@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -SYMVER_MAP = @SYMVER_MAP@ +SYMVER_FILE = @SYMVER_FILE@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 12d0eb6daf7..d32c7996448 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -577,7 +577,7 @@ AC_DEFUN([GLIBCXX_CONFIGURE_TESTSUITE], [ fi # Export file names for ABI checking. - baseline_dir="$glibcxx_srcdir/config/abi/${abi_baseline_pair}\$(MULTISUBDIR)" + baseline_dir="$glibcxx_srcdir/config/abi/post/${abi_baseline_pair}\$(MULTISUBDIR)" AC_SUBST(baseline_dir) ]) @@ -1685,7 +1685,7 @@ AC_DEFUN([GLIBCXX_ENABLE_SYMVERS], [ GLIBCXX_ENABLE(symvers,$1,[=STYLE], [enables symbol versioning of the shared library], - [permit yes|no|gnu|darwin-export]) + [permit yes|no|gnu|darwin|darwin-export]) # If we never went through the GLIBCXX_CHECK_LINKER_FEATURES macro, then we # don't know enough about $LD to do tricks... @@ -1693,24 +1693,27 @@ AC_REQUIRE([GLIBCXX_CHECK_LINKER_FEATURES]) # Turn a 'yes' into a suitable default. if test x$enable_symvers = xyes ; then - if test $enable_shared = no || - test "x$LD" = x ; then + if test $enable_shared = no || test "x$LD" = x ; then enable_symvers=no - elif test $with_gnu_ld = yes ; then - enable_symvers=gnu else - case ${target_os} in - darwin*) - enable_symvers=darwin-export ;; - *) - AC_MSG_WARN([=== You have requested some kind of symbol versioning, but]) - AC_MSG_WARN([=== you are not using a supported linker.]) - AC_MSG_WARN([=== Symbol versioning will be disabled.]) - enable_symvers=no ;; - esac + if test $with_gnu_ld = yes ; then + enable_symvers=gnu + else + case ${target_os} in + darwin*) + enable_symvers=darwin ;; + *) + enable_symvers=no ;; + esac + fi fi fi +# Check to see if 'darwin' or 'darwin-export' can win. +if test x$enable_symvers = xdarwin-export ; then + enable_symvers=darwin +fi + # Check to see if 'gnu' can win. if test $enable_symvers = gnu; then # Check to see if libgcc_s exists, indicating that shared libgcc is possible. @@ -1768,18 +1771,33 @@ fi # Everything parsed; figure out what file to use. case $enable_symvers in no) - SYMVER_MAP=config/linker-map.dummy + SYMVER_FILE=config/abi/pre/none.ver ;; gnu) - SYMVER_MAP=config/linker-map.gnu - AC_DEFINE(_GLIBCXX_SYMVER, 1, - [Define to use GNU symbol versioning in the shared library.]) + SYMVER_FILE=config/abi/pre/gnu.ver + AC_DEFINE(_GLIBCXX_SYMVER_GNU, 1, + [Define to use GNU versioning in the shared library.]) ;; - darwin-export) - SYMVER_MAP=config/linker-map.gnu + darwin) + SYMVER_FILE=config/abi/pre/gnu.ver + AC_DEFINE(_GLIBCXX_SYMVER_DARWIN, 1, + [Define to use darwin versioning in the shared library.]) ;; esac +if test x$enable_symvers != xno ; then + AC_DEFINE(_GLIBCXX_SYMVER, 1, + [Define to use symbol versioning in the shared library.]) +fi + +AC_SUBST(SYMVER_FILE) +AC_SUBST(port_specific_symbol_files) +GLIBCXX_CONDITIONAL(ENABLE_SYMVERS, test $enable_symvers != no) +GLIBCXX_CONDITIONAL(ENABLE_SYMVERS_GNU, test $enable_symvers = gnu) +GLIBCXX_CONDITIONAL(ENABLE_SYMVERS_DARWIN, test $enable_symvers = darwin) +AC_MSG_NOTICE(versioning on shared library symbols is $enable_symvers) + +# Now, set up compatibility support, if any. # In addition, need this to deal with std::size_t mangling in # src/compatibility.cc. In a perfect world, could use # typeid(std::size_t).name()[0] to do direct substitution. @@ -1804,13 +1822,6 @@ if test "$glibcxx_ptrdiff_t_is_i" = yes; then AC_DEFINE(_GLIBCXX_PTRDIFF_T_IS_INT, 1, [Define if ptrdiff_t is int.]) fi AC_MSG_RESULT([$glibcxx_ptrdiff_t_is_i]) - -AC_SUBST(SYMVER_MAP) -AC_SUBST(port_specific_symbol_files) -GLIBCXX_CONDITIONAL(ENABLE_SYMVERS_GNU, test $enable_symvers = gnu) -GLIBCXX_CONDITIONAL(ENABLE_SYMVERS_DARWIN_EXPORT, dnl - test $enable_symvers = darwin-export) -AC_MSG_NOTICE(versioning on shared library symbols is $enable_symvers) ]) diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in index 2aa1341ec7e..124ce6e2c8a 100644 --- a/libstdc++-v3/config.h.in +++ b/libstdc++-v3/config.h.in @@ -670,9 +670,15 @@ /* Define if the compiler is configured for setjmp/longjmp exceptions. */ #undef _GLIBCXX_SJLJ_EXCEPTIONS -/* Define to use GNU symbol versioning in the shared library. */ +/* Define to use symbol versioning in the shared library. */ #undef _GLIBCXX_SYMVER +/* Define to use darwin versioning in the shared library. */ +#undef _GLIBCXX_SYMVER_DARWIN + +/* Define to use GNU versioning in the shared library. */ +#undef _GLIBCXX_SYMVER_GNU + /* Define if C99 functions or macros from , , , , and can be used or exposed. */ #undef _GLIBCXX_USE_C99 diff --git a/libstdc++-v3/config/abi/alpha-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt similarity index 100% rename from libstdc++-v3/config/abi/alpha-linux-gnu/baseline_symbols.txt rename to libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt diff --git a/libstdc++-v3/config/abi/hppa-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/hppa-linux-gnu/baseline_symbols.txt similarity index 100% rename from libstdc++-v3/config/abi/hppa-linux-gnu/baseline_symbols.txt rename to libstdc++-v3/config/abi/post/hppa-linux-gnu/baseline_symbols.txt diff --git a/libstdc++-v3/config/abi/i386-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt similarity index 100% rename from libstdc++-v3/config/abi/i386-linux-gnu/baseline_symbols.txt rename to libstdc++-v3/config/abi/post/i386-linux-gnu/baseline_symbols.txt diff --git a/libstdc++-v3/config/abi/i486-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt similarity index 100% rename from libstdc++-v3/config/abi/i486-linux-gnu/baseline_symbols.txt rename to libstdc++-v3/config/abi/post/i486-linux-gnu/baseline_symbols.txt diff --git a/libstdc++-v3/config/abi/ia64-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/ia64-linux-gnu/baseline_symbols.txt similarity index 100% rename from libstdc++-v3/config/abi/ia64-linux-gnu/baseline_symbols.txt rename to libstdc++-v3/config/abi/post/ia64-linux-gnu/baseline_symbols.txt diff --git a/libstdc++-v3/config/abi/mips-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/mips-linux-gnu/baseline_symbols.txt similarity index 100% rename from libstdc++-v3/config/abi/mips-linux-gnu/baseline_symbols.txt rename to libstdc++-v3/config/abi/post/mips-linux-gnu/baseline_symbols.txt diff --git a/libstdc++-v3/config/abi/powerpc-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt similarity index 100% rename from libstdc++-v3/config/abi/powerpc-linux-gnu/baseline_symbols.txt rename to libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt diff --git a/libstdc++-v3/config/abi/powerpc64-linux-gnu/32/baseline_symbols.txt b/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt similarity index 100% rename from libstdc++-v3/config/abi/powerpc64-linux-gnu/32/baseline_symbols.txt rename to libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt diff --git a/libstdc++-v3/config/abi/powerpc64-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt similarity index 100% rename from libstdc++-v3/config/abi/powerpc64-linux-gnu/baseline_symbols.txt rename to libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt diff --git a/libstdc++-v3/config/abi/s390-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/s390-linux-gnu/baseline_symbols.txt similarity index 100% rename from libstdc++-v3/config/abi/s390-linux-gnu/baseline_symbols.txt rename to libstdc++-v3/config/abi/post/s390-linux-gnu/baseline_symbols.txt diff --git a/libstdc++-v3/config/abi/s390x-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt similarity index 100% rename from libstdc++-v3/config/abi/s390x-linux-gnu/baseline_symbols.txt rename to libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt diff --git a/libstdc++-v3/config/abi/sparc-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt similarity index 100% rename from libstdc++-v3/config/abi/sparc-linux-gnu/baseline_symbols.txt rename to libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt diff --git a/libstdc++-v3/config/abi/x86_64-linux-gnu/32/baseline_symbols.txt b/libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt similarity index 100% rename from libstdc++-v3/config/abi/x86_64-linux-gnu/32/baseline_symbols.txt rename to libstdc++-v3/config/abi/post/x86_64-linux-gnu/32/baseline_symbols.txt diff --git a/libstdc++-v3/config/abi/x86_64-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt similarity index 100% rename from libstdc++-v3/config/abi/x86_64-linux-gnu/baseline_symbols.txt rename to libstdc++-v3/config/abi/post/x86_64-linux-gnu/baseline_symbols.txt diff --git a/libstdc++-v3/config/linker-map.gnu b/libstdc++-v3/config/abi/pre/gnu.ver similarity index 100% rename from libstdc++-v3/config/linker-map.gnu rename to libstdc++-v3/config/abi/pre/gnu.ver diff --git a/libstdc++-v3/config/linker-map.dummy b/libstdc++-v3/config/abi/pre/none.ver similarity index 100% rename from libstdc++-v3/config/linker-map.dummy rename to libstdc++-v3/config/abi/pre/none.ver diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index 7c2ed9875c5..246e520da1b 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -309,7 +309,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libtool_VERSION multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar glibcxx_builddir glibcxx_srcdir toplevel_srcdir CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LN_S AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOL CXXCPP CPPFLAGS enable_shared enable_static GLIBCXX_HOSTED_TRUE GLIBCXX_HOSTED_FALSE GLIBCXX_BUILD_PCH_TRUE GLIBCXX_BUILD_PCH_FALSE glibcxx_PCHFLAGS CSTDIO_H BASIC_FILE_H BASIC_FILE_CC CPP EGREP check_msgfmt glibcxx_MOFILES glibcxx_POFILES glibcxx_localedir USE_NLS CLOCALE_H CMESSAGES_H CCODECVT_CC CCOLLATE_CC CCTYPE_CC CMESSAGES_CC CMONEY_CC CNUMERIC_CC CTIME_H CTIME_CC CLOCALE_CC CLOCALE_INTERNAL_H ALLOCATOR_H ALLOCATOR_NAME C_INCLUDE_DIR GLIBCXX_C_HEADERS_C_TRUE GLIBCXX_C_HEADERS_C_FALSE GLIBCXX_C_HEADERS_C_STD_TRUE GLIBCXX_C_HEADERS_C_STD_FALSE GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE DEBUG_FLAGS GLIBCXX_BUILD_DEBUG_TRUE GLIBCXX_BUILD_DEBUG_FALSE EXTRA_CXX_FLAGS glibcxx_thread_h WERROR SECTION_FLAGS SECTION_LDFLAGS OPT_LDFLAGS LIBMATHOBJS LIBICONV SYMVER_MAP port_specific_symbol_files ENABLE_SYMVERS_GNU_TRUE ENABLE_SYMVERS_GNU_FALSE ENABLE_SYMVERS_DARWIN_EXPORT_TRUE ENABLE_SYMVERS_DARWIN_EXPORT_FALSE baseline_dir ATOMICITY_SRCDIR ATOMIC_WORD_SRCDIR CPU_DEFINES_SRCDIR ABI_TWEAKS_SRCDIR OS_INC_SRCDIR glibcxx_prefixdir gxx_include_dir glibcxx_toolexecdir glibcxx_toolexeclibdir GLIBCXX_INCLUDES TOPLEVEL_INCLUDES OPTIMIZE_CXXFLAGS WARN_FLAGS LIBSUPCXX_PICFLAGS LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS libtool_VERSION multi_basedir build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar glibcxx_builddir glibcxx_srcdir toplevel_srcdir CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LN_S AS ac_ct_AS AR ac_ct_AR RANLIB ac_ct_RANLIB MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBTOOL CXXCPP CPPFLAGS enable_shared enable_static GLIBCXX_HOSTED_TRUE GLIBCXX_HOSTED_FALSE GLIBCXX_BUILD_PCH_TRUE GLIBCXX_BUILD_PCH_FALSE glibcxx_PCHFLAGS CSTDIO_H BASIC_FILE_H BASIC_FILE_CC CPP EGREP check_msgfmt glibcxx_MOFILES glibcxx_POFILES glibcxx_localedir USE_NLS CLOCALE_H CMESSAGES_H CCODECVT_CC CCOLLATE_CC CCTYPE_CC CMESSAGES_CC CMONEY_CC CNUMERIC_CC CTIME_H CTIME_CC CLOCALE_CC CLOCALE_INTERNAL_H ALLOCATOR_H ALLOCATOR_NAME C_INCLUDE_DIR GLIBCXX_C_HEADERS_C_TRUE GLIBCXX_C_HEADERS_C_FALSE GLIBCXX_C_HEADERS_C_STD_TRUE GLIBCXX_C_HEADERS_C_STD_FALSE GLIBCXX_C_HEADERS_COMPATIBILITY_TRUE GLIBCXX_C_HEADERS_COMPATIBILITY_FALSE DEBUG_FLAGS GLIBCXX_BUILD_DEBUG_TRUE GLIBCXX_BUILD_DEBUG_FALSE EXTRA_CXX_FLAGS glibcxx_thread_h WERROR SECTION_FLAGS SECTION_LDFLAGS OPT_LDFLAGS LIBMATHOBJS LIBICONV SYMVER_FILE port_specific_symbol_files ENABLE_SYMVERS_TRUE ENABLE_SYMVERS_FALSE ENABLE_SYMVERS_GNU_TRUE ENABLE_SYMVERS_GNU_FALSE ENABLE_SYMVERS_DARWIN_TRUE ENABLE_SYMVERS_DARWIN_FALSE baseline_dir ATOMICITY_SRCDIR ATOMIC_WORD_SRCDIR CPU_DEFINES_SRCDIR ABI_TWEAKS_SRCDIR OS_INC_SRCDIR glibcxx_prefixdir gxx_include_dir glibcxx_toolexecdir glibcxx_toolexeclibdir GLIBCXX_INCLUDES TOPLEVEL_INCLUDES OPTIMIZE_CXXFLAGS WARN_FLAGS LIBSUPCXX_PICFLAGS LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -87368,7 +87368,7 @@ if test "${enable_symvers+set}" = set; then enableval="$enable_symvers" case "$enableval" in - yes|no|gnu|darwin-export) ;; + yes|no|gnu|darwin|darwin-export) ;; *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable symvers" >&5 echo "$as_me: error: Unknown argument to enable/disable symvers" >&2;} { (exit 1); exit 1; }; } ;; @@ -87385,27 +87385,27 @@ fi; # Turn a 'yes' into a suitable default. if test x$enable_symvers = xyes ; then - if test $enable_shared = no || - test "x$LD" = x ; then + if test $enable_shared = no || test "x$LD" = x ; then enable_symvers=no - elif test $with_gnu_ld = yes ; then - enable_symvers=gnu else - case ${target_os} in - darwin*) - enable_symvers=darwin-export ;; - *) - { echo "$as_me:$LINENO: WARNING: === You have requested some kind of symbol versioning, but" >&5 -echo "$as_me: WARNING: === You have requested some kind of symbol versioning, but" >&2;} - { echo "$as_me:$LINENO: WARNING: === you are not using a supported linker." >&5 -echo "$as_me: WARNING: === you are not using a supported linker." >&2;} - { echo "$as_me:$LINENO: WARNING: === Symbol versioning will be disabled." >&5 -echo "$as_me: WARNING: === Symbol versioning will be disabled." >&2;} - enable_symvers=no ;; - esac + if test $with_gnu_ld = yes ; then + enable_symvers=gnu + else + case ${target_os} in + darwin*) + enable_symvers=darwin ;; + *) + enable_symvers=no ;; + esac + fi fi fi +# Check to see if 'darwin' or 'darwin-export' can win. +if test x$enable_symvers = xdarwin-export ; then + enable_symvers=darwin +fi + # Check to see if 'gnu' can win. if test $enable_symvers = gnu; then # Check to see if libgcc_s exists, indicating that shared libgcc is possible. @@ -87573,21 +87573,43 @@ fi # Everything parsed; figure out what file to use. case $enable_symvers in no) - SYMVER_MAP=config/linker-map.dummy + SYMVER_FILE=config/abi/pre/none.ver ;; gnu) - SYMVER_MAP=config/linker-map.gnu + SYMVER_FILE=config/abi/pre/gnu.ver cat >>confdefs.h <<\_ACEOF -#define _GLIBCXX_SYMVER 1 +#define _GLIBCXX_SYMVER_GNU 1 _ACEOF ;; - darwin-export) - SYMVER_MAP=config/linker-map.gnu + darwin) + SYMVER_FILE=config/abi/pre/gnu.ver + +cat >>confdefs.h <<\_ACEOF +#define _GLIBCXX_SYMVER_DARWIN 1 +_ACEOF + ;; esac +if test x$enable_symvers != xno ; then + +cat >>confdefs.h <<\_ACEOF +#define _GLIBCXX_SYMVER 1 +_ACEOF + +fi + + + + + + +{ echo "$as_me:$LINENO: versioning on shared library symbols is $enable_symvers" >&5 +echo "$as_me: versioning on shared library symbols is $enable_symvers" >&6;} + +# Now, set up compatibility support, if any. # In addition, need this to deal with std::size_t mangling in # src/compatibility.cc. In a perfect world, could use # typeid(std::size_t).name()[0] to do direct substitution. @@ -87712,13 +87734,6 @@ echo "$as_me:$LINENO: result: $glibcxx_ptrdiff_t_is_i" >&5 echo "${ECHO_T}$glibcxx_ptrdiff_t_is_i" >&6 - - - -{ echo "$as_me:$LINENO: versioning on shared library symbols is $enable_symvers" >&5 -echo "$as_me: versioning on shared library symbols is $enable_symvers" >&6;} - - # This depends on GLIBCXX_ENABLE_SYMVERS and GLIBCXX_IS_NATIVE. if $GLIBCXX_IS_NATIVE ; then @@ -88460,7 +88475,7 @@ done fi # Export file names for ABI checking. - baseline_dir="$glibcxx_srcdir/config/abi/${abi_baseline_pair}\$(MULTISUBDIR)" + baseline_dir="$glibcxx_srcdir/config/abi/post/${abi_baseline_pair}\$(MULTISUBDIR)" @@ -88549,6 +88564,17 @@ fi +if test $enable_symvers != no; then + ENABLE_SYMVERS_TRUE= + ENABLE_SYMVERS_FALSE='#' +else + ENABLE_SYMVERS_TRUE='#' + ENABLE_SYMVERS_FALSE= +fi + + + + if test $enable_symvers = gnu; then ENABLE_SYMVERS_GNU_TRUE= ENABLE_SYMVERS_GNU_FALSE='#' @@ -88560,12 +88586,12 @@ fi -if test $enable_symvers = darwin-export; then - ENABLE_SYMVERS_DARWIN_EXPORT_TRUE= - ENABLE_SYMVERS_DARWIN_EXPORT_FALSE='#' +if test $enable_symvers = darwin; then + ENABLE_SYMVERS_DARWIN_TRUE= + ENABLE_SYMVERS_DARWIN_FALSE='#' else - ENABLE_SYMVERS_DARWIN_EXPORT_TRUE='#' - ENABLE_SYMVERS_DARWIN_EXPORT_FALSE= + ENABLE_SYMVERS_DARWIN_TRUE='#' + ENABLE_SYMVERS_DARWIN_FALSE= fi @@ -88912,6 +88938,13 @@ echo "$as_me: error: conditional \"GLIBCXX_BUILD_DEBUG\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi +if test -z "${ENABLE_SYMVERS_TRUE}" && test -z "${ENABLE_SYMVERS_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"ENABLE_SYMVERS\" was never defined. +Usually this means the macro was only invoked conditionally." >&5 +echo "$as_me: error: conditional \"ENABLE_SYMVERS\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi if test -z "${ENABLE_SYMVERS_GNU_TRUE}" && test -z "${ENABLE_SYMVERS_GNU_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"ENABLE_SYMVERS_GNU\" was never defined. Usually this means the macro was only invoked conditionally." >&5 @@ -88919,10 +88952,10 @@ echo "$as_me: error: conditional \"ENABLE_SYMVERS_GNU\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi -if test -z "${ENABLE_SYMVERS_DARWIN_EXPORT_TRUE}" && test -z "${ENABLE_SYMVERS_DARWIN_EXPORT_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"ENABLE_SYMVERS_DARWIN_EXPORT\" was never defined. +if test -z "${ENABLE_SYMVERS_DARWIN_TRUE}" && test -z "${ENABLE_SYMVERS_DARWIN_FALSE}"; then + { { echo "$as_me:$LINENO: error: conditional \"ENABLE_SYMVERS_DARWIN\" was never defined. Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"ENABLE_SYMVERS_DARWIN_EXPORT\" was never defined. +echo "$as_me: error: conditional \"ENABLE_SYMVERS_DARWIN\" was never defined. Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi @@ -89590,12 +89623,14 @@ s,@SECTION_LDFLAGS@,$SECTION_LDFLAGS,;t t s,@OPT_LDFLAGS@,$OPT_LDFLAGS,;t t s,@LIBMATHOBJS@,$LIBMATHOBJS,;t t s,@LIBICONV@,$LIBICONV,;t t -s,@SYMVER_MAP@,$SYMVER_MAP,;t t +s,@SYMVER_FILE@,$SYMVER_FILE,;t t s,@port_specific_symbol_files@,$port_specific_symbol_files,;t t +s,@ENABLE_SYMVERS_TRUE@,$ENABLE_SYMVERS_TRUE,;t t +s,@ENABLE_SYMVERS_FALSE@,$ENABLE_SYMVERS_FALSE,;t t s,@ENABLE_SYMVERS_GNU_TRUE@,$ENABLE_SYMVERS_GNU_TRUE,;t t s,@ENABLE_SYMVERS_GNU_FALSE@,$ENABLE_SYMVERS_GNU_FALSE,;t t -s,@ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@,$ENABLE_SYMVERS_DARWIN_EXPORT_TRUE,;t t -s,@ENABLE_SYMVERS_DARWIN_EXPORT_FALSE@,$ENABLE_SYMVERS_DARWIN_EXPORT_FALSE,;t t +s,@ENABLE_SYMVERS_DARWIN_TRUE@,$ENABLE_SYMVERS_DARWIN_TRUE,;t t +s,@ENABLE_SYMVERS_DARWIN_FALSE@,$ENABLE_SYMVERS_DARWIN_FALSE,;t t s,@baseline_dir@,$baseline_dir,;t t s,@ATOMICITY_SRCDIR@,$ATOMICITY_SRCDIR,;t t s,@ATOMIC_WORD_SRCDIR@,$ATOMIC_WORD_SRCDIR,;t t diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in index a0c358c6cad..590a1076934 100644 --- a/libstdc++-v3/include/Makefile.in +++ b/libstdc++-v3/include/Makefile.in @@ -99,10 +99,12 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ -ENABLE_SYMVERS_DARWIN_EXPORT_FALSE = @ENABLE_SYMVERS_DARWIN_EXPORT_FALSE@ -ENABLE_SYMVERS_DARWIN_EXPORT_TRUE = @ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@ +ENABLE_SYMVERS_DARWIN_FALSE = @ENABLE_SYMVERS_DARWIN_FALSE@ +ENABLE_SYMVERS_DARWIN_TRUE = @ENABLE_SYMVERS_DARWIN_TRUE@ +ENABLE_SYMVERS_FALSE = @ENABLE_SYMVERS_FALSE@ ENABLE_SYMVERS_GNU_FALSE = @ENABLE_SYMVERS_GNU_FALSE@ ENABLE_SYMVERS_GNU_TRUE = @ENABLE_SYMVERS_GNU_TRUE@ +ENABLE_SYMVERS_TRUE = @ENABLE_SYMVERS_TRUE@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GLIBCXX_BUILD_DEBUG_FALSE = @GLIBCXX_BUILD_DEBUG_FALSE@ @@ -151,7 +153,7 @@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -SYMVER_MAP = @SYMVER_MAP@ +SYMVER_FILE = @SYMVER_FILE@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ diff --git a/libstdc++-v3/libmath/Makefile.in b/libstdc++-v3/libmath/Makefile.in index 73cd3ca127e..84469b00365 100644 --- a/libstdc++-v3/libmath/Makefile.in +++ b/libstdc++-v3/libmath/Makefile.in @@ -114,10 +114,12 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ -ENABLE_SYMVERS_DARWIN_EXPORT_FALSE = @ENABLE_SYMVERS_DARWIN_EXPORT_FALSE@ -ENABLE_SYMVERS_DARWIN_EXPORT_TRUE = @ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@ +ENABLE_SYMVERS_DARWIN_FALSE = @ENABLE_SYMVERS_DARWIN_FALSE@ +ENABLE_SYMVERS_DARWIN_TRUE = @ENABLE_SYMVERS_DARWIN_TRUE@ +ENABLE_SYMVERS_FALSE = @ENABLE_SYMVERS_FALSE@ ENABLE_SYMVERS_GNU_FALSE = @ENABLE_SYMVERS_GNU_FALSE@ ENABLE_SYMVERS_GNU_TRUE = @ENABLE_SYMVERS_GNU_TRUE@ +ENABLE_SYMVERS_TRUE = @ENABLE_SYMVERS_TRUE@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GLIBCXX_BUILD_DEBUG_FALSE = @GLIBCXX_BUILD_DEBUG_FALSE@ @@ -168,7 +170,7 @@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -SYMVER_MAP = @SYMVER_MAP@ +SYMVER_FILE = @SYMVER_FILE@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ diff --git a/libstdc++-v3/libsupc++/Makefile.in b/libstdc++-v3/libsupc++/Makefile.in index 1d5ee5695b4..2a1d52f0954 100644 --- a/libstdc++-v3/libsupc++/Makefile.in +++ b/libstdc++-v3/libsupc++/Makefile.in @@ -155,10 +155,12 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ -ENABLE_SYMVERS_DARWIN_EXPORT_FALSE = @ENABLE_SYMVERS_DARWIN_EXPORT_FALSE@ -ENABLE_SYMVERS_DARWIN_EXPORT_TRUE = @ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@ +ENABLE_SYMVERS_DARWIN_FALSE = @ENABLE_SYMVERS_DARWIN_FALSE@ +ENABLE_SYMVERS_DARWIN_TRUE = @ENABLE_SYMVERS_DARWIN_TRUE@ +ENABLE_SYMVERS_FALSE = @ENABLE_SYMVERS_FALSE@ ENABLE_SYMVERS_GNU_FALSE = @ENABLE_SYMVERS_GNU_FALSE@ ENABLE_SYMVERS_GNU_TRUE = @ENABLE_SYMVERS_GNU_TRUE@ +ENABLE_SYMVERS_TRUE = @ENABLE_SYMVERS_TRUE@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GLIBCXX_BUILD_DEBUG_FALSE = @GLIBCXX_BUILD_DEBUG_FALSE@ @@ -207,7 +209,7 @@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -SYMVER_MAP = @SYMVER_MAP@ +SYMVER_FILE = @SYMVER_FILE@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ diff --git a/libstdc++-v3/po/Makefile.in b/libstdc++-v3/po/Makefile.in index e814e23eb5c..b953b568bc6 100644 --- a/libstdc++-v3/po/Makefile.in +++ b/libstdc++-v3/po/Makefile.in @@ -99,10 +99,12 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ -ENABLE_SYMVERS_DARWIN_EXPORT_FALSE = @ENABLE_SYMVERS_DARWIN_EXPORT_FALSE@ -ENABLE_SYMVERS_DARWIN_EXPORT_TRUE = @ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@ +ENABLE_SYMVERS_DARWIN_FALSE = @ENABLE_SYMVERS_DARWIN_FALSE@ +ENABLE_SYMVERS_DARWIN_TRUE = @ENABLE_SYMVERS_DARWIN_TRUE@ +ENABLE_SYMVERS_FALSE = @ENABLE_SYMVERS_FALSE@ ENABLE_SYMVERS_GNU_FALSE = @ENABLE_SYMVERS_GNU_FALSE@ ENABLE_SYMVERS_GNU_TRUE = @ENABLE_SYMVERS_GNU_TRUE@ +ENABLE_SYMVERS_TRUE = @ENABLE_SYMVERS_TRUE@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GLIBCXX_BUILD_DEBUG_FALSE = @GLIBCXX_BUILD_DEBUG_FALSE@ @@ -151,7 +153,7 @@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -SYMVER_MAP = @SYMVER_MAP@ +SYMVER_FILE = @SYMVER_FILE@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ diff --git a/libstdc++-v3/src/Makefile.am b/libstdc++-v3/src/Makefile.am index b7cc1dd89ec..4d51036fe6b 100644 --- a/libstdc++-v3/src/Makefile.am +++ b/libstdc++-v3/src/Makefile.am @@ -28,12 +28,10 @@ include $(top_srcdir)/fragment.am toolexeclib_LTLIBRARIES = libstdc++.la # Symbol versioning for shared libraries. -# This could be conditional on -# ENABLE_SYMVERS_GNU || ENABLE_SYMVERS_DARWIN_EXPORT -# but automake doesn't support OR operations in conditionals. -libstdc++-symbol.ver: ${glibcxx_srcdir}/$(SYMVER_MAP) \ +if ENABLE_SYMVERS +libstdc++-symbols.ver: ${glibcxx_srcdir}/$(SYMVER_FILE) \ $(port_specific_symbol_files) - cp ${glibcxx_srcdir}/$(SYMVER_MAP) ./libstdc++-symbol.ver + cp ${glibcxx_srcdir}/$(SYMVER_FILE) ./libstdc++-symbols.ver if test "x$(port_specific_symbol_files)" != x; then \ sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \ sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \ @@ -42,26 +40,26 @@ libstdc++-symbol.ver: ${glibcxx_srcdir}/$(SYMVER_MAP) \ fi if ENABLE_SYMVERS_GNU -version_arg = -Wl,--version-script=libstdc++-symbol.ver -version_dep = libstdc++-symbol.ver -else -if ENABLE_SYMVERS_DARWIN_EXPORT -version_arg = -Wl,-exported_symbols_list,libstdc++-symbol.explist -version_dep = libstdc++-symbol.explist -libstdc++-symbol.explist : libstdc++-symbol.ver \ +version_arg = -Wl,--version-script=libstdc++-symbols.ver +version_dep = libstdc++-symbols.ver +endif +if ENABLE_SYMVERS_DARWIN +version_arg = -Wl,-exported_symbols_list,libstdc++-symbols.explist +version_dep = libstdc++-symbols.explist +libstdc++-symbols.explist : libstdc++-symbols.ver \ ${glibcxx_srcdir}/scripts/make_exports.pl \ $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) perl ${glibcxx_srcdir}/scripts/make_exports.pl \ - libstdc++-symbol.ver \ + libstdc++-symbols.ver \ $(libstdc___la_OBJECTS:%.lo=.libs/%.o) \ `echo $(libstdc___la_LIBADD) | \ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ > $@ || (rm -f $@ ; exit 1) +endif else version_arg = version_dep = endif -endif # Source files linked in via configuration/make substitution for a diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in index c3a9d6efdf7..f751600fcc3 100644 --- a/libstdc++-v3/src/Makefile.in +++ b/libstdc++-v3/src/Makefile.in @@ -133,10 +133,12 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ -ENABLE_SYMVERS_DARWIN_EXPORT_FALSE = @ENABLE_SYMVERS_DARWIN_EXPORT_FALSE@ -ENABLE_SYMVERS_DARWIN_EXPORT_TRUE = @ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@ +ENABLE_SYMVERS_DARWIN_FALSE = @ENABLE_SYMVERS_DARWIN_FALSE@ +ENABLE_SYMVERS_DARWIN_TRUE = @ENABLE_SYMVERS_DARWIN_TRUE@ +ENABLE_SYMVERS_FALSE = @ENABLE_SYMVERS_FALSE@ ENABLE_SYMVERS_GNU_FALSE = @ENABLE_SYMVERS_GNU_FALSE@ ENABLE_SYMVERS_GNU_TRUE = @ENABLE_SYMVERS_GNU_TRUE@ +ENABLE_SYMVERS_TRUE = @ENABLE_SYMVERS_TRUE@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GLIBCXX_BUILD_DEBUG_FALSE = @GLIBCXX_BUILD_DEBUG_FALSE@ @@ -185,7 +187,7 @@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -SYMVER_MAP = @SYMVER_MAP@ +SYMVER_FILE = @SYMVER_FILE@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ @@ -275,12 +277,12 @@ AM_CPPFLAGS = $(GLIBCXX_INCLUDES) # Cross compiler support. toolexeclib_LTLIBRARIES = libstdc++.la -@ENABLE_SYMVERS_DARWIN_EXPORT_FALSE@@ENABLE_SYMVERS_GNU_FALSE@version_arg = -@ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@@ENABLE_SYMVERS_GNU_FALSE@version_arg = -Wl,-exported_symbols_list,libstdc++-symbol.explist -@ENABLE_SYMVERS_GNU_TRUE@version_arg = -Wl,--version-script=libstdc++-symbol.ver -@ENABLE_SYMVERS_DARWIN_EXPORT_FALSE@@ENABLE_SYMVERS_GNU_FALSE@version_dep = -@ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@@ENABLE_SYMVERS_GNU_FALSE@version_dep = libstdc++-symbol.explist -@ENABLE_SYMVERS_GNU_TRUE@version_dep = libstdc++-symbol.ver +@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@version_arg = -Wl,-exported_symbols_list,libstdc++-symbols.explist +@ENABLE_SYMVERS_FALSE@version_arg = +@ENABLE_SYMVERS_GNU_TRUE@@ENABLE_SYMVERS_TRUE@version_arg = -Wl,--version-script=libstdc++-symbols.ver +@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@version_dep = libstdc++-symbols.explist +@ENABLE_SYMVERS_FALSE@version_dep = +@ENABLE_SYMVERS_GNU_TRUE@@ENABLE_SYMVERS_TRUE@version_dep = libstdc++-symbols.ver # Source files linked in via configuration/make substitution for a # particular host. @@ -670,27 +672,24 @@ uninstall-am: uninstall-info-am uninstall-toolexeclibLTLIBRARIES # Symbol versioning for shared libraries. -# This could be conditional on -# ENABLE_SYMVERS_GNU || ENABLE_SYMVERS_DARWIN_EXPORT -# but automake doesn't support OR operations in conditionals. -libstdc++-symbol.ver: ${glibcxx_srcdir}/$(SYMVER_MAP) \ - $(port_specific_symbol_files) - cp ${glibcxx_srcdir}/$(SYMVER_MAP) ./libstdc++-symbol.ver - if test "x$(port_specific_symbol_files)" != 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_files) tmp.bottom > $@; \ - rm tmp.top tmp.bottom; \ - fi -@ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@@ENABLE_SYMVERS_GNU_FALSE@libstdc++-symbol.explist : libstdc++-symbol.ver \ -@ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@@ENABLE_SYMVERS_GNU_FALSE@ ${glibcxx_srcdir}/scripts/make_exports.pl \ -@ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@@ENABLE_SYMVERS_GNU_FALSE@ $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) -@ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@@ENABLE_SYMVERS_GNU_FALSE@ perl ${glibcxx_srcdir}/scripts/make_exports.pl \ -@ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@@ENABLE_SYMVERS_GNU_FALSE@ libstdc++-symbol.ver \ -@ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@@ENABLE_SYMVERS_GNU_FALSE@ $(libstdc___la_OBJECTS:%.lo=.libs/%.o) \ -@ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@@ENABLE_SYMVERS_GNU_FALSE@ `echo $(libstdc___la_LIBADD) | \ -@ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@@ENABLE_SYMVERS_GNU_FALSE@ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ -@ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@@ENABLE_SYMVERS_GNU_FALSE@ > $@ || (rm -f $@ ; exit 1) +@ENABLE_SYMVERS_TRUE@libstdc++-symbols.ver: ${glibcxx_srcdir}/$(SYMVER_FILE) \ +@ENABLE_SYMVERS_TRUE@ $(port_specific_symbol_files) +@ENABLE_SYMVERS_TRUE@ cp ${glibcxx_srcdir}/$(SYMVER_FILE) ./libstdc++-symbols.ver +@ENABLE_SYMVERS_TRUE@ if test "x$(port_specific_symbol_files)" != x; then \ +@ENABLE_SYMVERS_TRUE@ sed -n '1,/DO NOT DELETE/p' $@ > tmp.top; \ +@ENABLE_SYMVERS_TRUE@ sed -n '/DO NOT DELETE/,$$p' $@ > tmp.bottom; \ +@ENABLE_SYMVERS_TRUE@ cat tmp.top $(port_specific_symbol_files) tmp.bottom > $@; \ +@ENABLE_SYMVERS_TRUE@ rm tmp.top tmp.bottom; \ +@ENABLE_SYMVERS_TRUE@ fi +@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@libstdc++-symbols.explist : libstdc++-symbols.ver \ +@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ ${glibcxx_srcdir}/scripts/make_exports.pl \ +@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ $(libstdc___la_OBJECTS) $(libstdc___la_LIBADD) +@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ perl ${glibcxx_srcdir}/scripts/make_exports.pl \ +@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ libstdc++-symbols.ver \ +@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ $(libstdc___la_OBJECTS:%.lo=.libs/%.o) \ +@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ `echo $(libstdc___la_LIBADD) | \ +@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ sed 's,/\([^/.]*\)\.la,/.libs/\1.a,g'` \ +@ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ > $@ || (rm -f $@ ; exit 1) codecvt_members.cc: ${glibcxx_srcdir}/$(CCODECVT_CC) $(LN_S) ${glibcxx_srcdir}/$(CCODECVT_CC) . || true diff --git a/libstdc++-v3/src/compatibility.cc b/libstdc++-v3/src/compatibility.cc index 613e8fbb8c6..2261ad57b24 100644 --- a/libstdc++-v3/src/compatibility.cc +++ b/libstdc++-v3/src/compatibility.cc @@ -30,7 +30,7 @@ #include -#if defined(_GLIBCXX_SYMVER) && defined(PIC) +#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) #define istreambuf_iterator istreambuf_iteratorXX #define basic_fstream basic_fstreamXX #define basic_ifstream basic_ifstreamXX @@ -188,7 +188,7 @@ namespace std // NB: These symbols renames should go into the shared library only, // and only those shared libraries that support versioning. -#if defined(_GLIBCXX_SYMVER) && defined(PIC) +#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) /* gcc-3.4.4 _ZNSt19istreambuf_iteratorIcSt11char_traitsIcEEppEv @@ -362,7 +362,7 @@ namespace std #endif -#ifdef __APPLE__ +#ifdef _GLIBCXX_SYMVER_DARWIN #if (defined(__ppc__) || defined (__ppc64__)) && defined (PIC) /* __eprintf shouldn't have been made visible from libstdc++, or anywhere, but on Mac OS X 10.4 it was defined in @@ -385,4 +385,4 @@ __eprintf (const char *string, const char *expression, abort (); } #endif -#endif /* __APPLE__ */ +#endif diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in index 0b25a5a8686..0d9ba5ab4cb 100644 --- a/libstdc++-v3/testsuite/Makefile.in +++ b/libstdc++-v3/testsuite/Makefile.in @@ -103,10 +103,12 @@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ -ENABLE_SYMVERS_DARWIN_EXPORT_FALSE = @ENABLE_SYMVERS_DARWIN_EXPORT_FALSE@ -ENABLE_SYMVERS_DARWIN_EXPORT_TRUE = @ENABLE_SYMVERS_DARWIN_EXPORT_TRUE@ +ENABLE_SYMVERS_DARWIN_FALSE = @ENABLE_SYMVERS_DARWIN_FALSE@ +ENABLE_SYMVERS_DARWIN_TRUE = @ENABLE_SYMVERS_DARWIN_TRUE@ +ENABLE_SYMVERS_FALSE = @ENABLE_SYMVERS_FALSE@ ENABLE_SYMVERS_GNU_FALSE = @ENABLE_SYMVERS_GNU_FALSE@ ENABLE_SYMVERS_GNU_TRUE = @ENABLE_SYMVERS_GNU_TRUE@ +ENABLE_SYMVERS_TRUE = @ENABLE_SYMVERS_TRUE@ EXEEXT = @EXEEXT@ EXTRA_CXX_FLAGS = @EXTRA_CXX_FLAGS@ GLIBCXX_BUILD_DEBUG_FALSE = @GLIBCXX_BUILD_DEBUG_FALSE@ @@ -155,7 +157,7 @@ SECTION_LDFLAGS = @SECTION_LDFLAGS@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ -SYMVER_MAP = @SYMVER_MAP@ +SYMVER_FILE = @SYMVER_FILE@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@ USE_NLS = @USE_NLS@ VERSION = @VERSION@ -- 2.11.4.GIT