From 84946e72dc8d43511142c4da32e846957d869391 Mon Sep 17 00:00:00 2001 From: Benjamin Kosnik Date: Mon, 20 Jun 2005 06:48:28 +0000 Subject: [PATCH] re PR libstdc++/22111 (libstdc++ abi_check) make 2005-06-19 Benjamin Kosnik PR libstdc++/22111 * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Remove GLIBCXX_TEST_ABI. Remove duplicate _GLIBCXX_ASM_SYMVER define. Don't enable abi testing unless versioned. * configure: Regenerate. * testsuite/Makefile.am (check-abi): Remove conditional. * testsuite/Makefile.in: Regenerate. * testsuite/libstdc++-abi/abi.exp: Call build_support, then check v3-symver before proceeding. * testsuite/lib/libstdc++.exp (libstdc++-dg-test): Set v3-symvers if _GLIBCXX_SYMVER. From-SVN: r101204 --- libstdc++-v3/ChangeLog | 14 +++++++++++++ libstdc++-v3/Makefile.in | 2 -- libstdc++-v3/acinclude.m4 | 23 ++++----------------- libstdc++-v3/config.h.in | 13 ------------ libstdc++-v3/configure | 30 +++------------------------- libstdc++-v3/include/Makefile.in | 2 -- libstdc++-v3/libmath/Makefile.in | 2 -- libstdc++-v3/libsupc++/Makefile.in | 2 -- libstdc++-v3/po/Makefile.in | 2 -- libstdc++-v3/src/Makefile.in | 2 -- libstdc++-v3/testsuite/Makefile.am | 4 ---- libstdc++-v3/testsuite/Makefile.in | 7 ++----- libstdc++-v3/testsuite/lib/libstdc++.exp | 11 +++++++++- libstdc++-v3/testsuite/libstdc++-abi/abi.exp | 12 ++++++----- 14 files changed, 40 insertions(+), 86 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 120ca4c..b72825e 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,17 @@ +2005-06-19 Benjamin Kosnik + + PR libstdc++/22111 + * acinclude.m4 (GLIBCXX_CONFIGURE_TESTSUITE): Remove + GLIBCXX_TEST_ABI. Remove duplicate _GLIBCXX_ASM_SYMVER define. + Don't enable abi testing unless versioned. + * configure: Regenerate. + * testsuite/Makefile.am (check-abi): Remove conditional. + * testsuite/Makefile.in: Regenerate. + * testsuite/libstdc++-abi/abi.exp: Call build_support, then check + v3-symver before proceeding. + * testsuite/lib/libstdc++.exp (libstdc++-dg-test): Set v3-symvers + if _GLIBCXX_SYMVER. + 2005-06-17 Paolo Carlini Port from libstdcxx_so_7-branch: diff --git a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in index 43d8023..5350407 100644 --- a/libstdc++-v3/Makefile.in +++ b/libstdc++-v3/Makefile.in @@ -146,8 +146,6 @@ GLIBCXX_C_HEADERS_C_TRUE = @GLIBCXX_C_HEADERS_C_TRUE@ GLIBCXX_HOSTED_FALSE = @GLIBCXX_HOSTED_FALSE@ GLIBCXX_HOSTED_TRUE = @GLIBCXX_HOSTED_TRUE@ GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ -GLIBCXX_TEST_ABI_FALSE = @GLIBCXX_TEST_ABI_FALSE@ -GLIBCXX_TEST_ABI_TRUE = @GLIBCXX_TEST_ABI_TRUE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index 8b69a30..7f6cad6 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -531,14 +531,15 @@ dnl dnl GLIBCXX_ENABLE_SYMVERS and GLIBCXX_IS_NATIVE must be done before this. dnl dnl Sets: -dnl enable_abi_check / GLIBCXX_TEST_ABI +dnl enable_abi_check dnl GLIBCXX_TEST_WCHAR_T dnl GLIBCXX_TEST_THREAD dnl Substs: dnl baseline_dir dnl AC_DEFUN([GLIBCXX_CONFIGURE_TESTSUITE], [ - if $GLIBCXX_IS_NATIVE && test $is_hosted = yes; then + if $GLIBCXX_IS_NATIVE && test $is_hosted = yes && + test $enable_symvers != no; then # Do checks for resource limit functions. GLIBCXX_CHECK_SETRLIMIT @@ -560,12 +561,10 @@ AC_DEFUN([GLIBCXX_CONFIGURE_TESTSUITE], [ # CXX_FOR_BUILD. enable_abi_check=no fi - + # Export file names for ABI checking. baseline_dir="$glibcxx_srcdir/config/abi/${abi_baseline_pair}\$(MULTISUBDIR)" AC_SUBST(baseline_dir) - - GLIBCXX_CONDITIONAL(GLIBCXX_TEST_ABI, test $enable_abi_check = yes) ]) @@ -1760,20 +1759,6 @@ case $enable_symvers in ;; esac -AH_VERBATIM([_GLIBCXX_SYMVERextra], -[/* Define symbol versioning in assember directives. If symbol - versioning is being used, and the assembler supports this kind of - thing, then use it. - - NB: _GLIBCXX_AT_AT is a hack to work around quoting issues in m4. */ - -#if _GLIBCXX_SYMVER - #define _GLIBCXX_ASM_SYMVER(cur, old, version) \ - asm (".symver " #cur "," #old _GLIBCXX_AT_AT #version); -#else - #define _GLIBCXX_ASM_SYMVER(cur, old, version) -#endif]) - # 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. diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in index 3f3dde5..4195910 100644 --- a/libstdc++-v3/config.h.in +++ b/libstdc++-v3/config.h.in @@ -670,19 +670,6 @@ /* Define to use symbol versioning in the shared library. */ #undef _GLIBCXX_SYMVER -/* Define symbol versioning in assember directives. If symbol - versioning is being used, and the assembler supports this kind of - thing, then use it. - - NB: _GLIBCXX_AT_AT is a hack to work around quoting issues in m4. */ - -#if _GLIBCXX_SYMVER - #define _GLIBCXX_ASM_SYMVER(cur, old, version) \ - asm (".symver " #cur "," #old _GLIBCXX_AT_AT #version); -#else - #define _GLIBCXX_ASM_SYMVER(cur, old, version) -#endif - /* Define if C99 functions or macros from , , , , and can be used or exposed. */ #undef _GLIBCXX_USE_C99 diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index 599a28a..ca2defe 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 GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE baseline_dir GLIBCXX_TEST_ABI_TRUE GLIBCXX_TEST_ABI_FALSE ATOMICITY_SRCDIR ATOMIC_WORD_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_MAP port_specific_symbol_files GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE baseline_dir ATOMICITY_SRCDIR ATOMIC_WORD_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. @@ -87354,9 +87354,6 @@ _ACEOF ;; esac - - - # 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. @@ -87489,7 +87486,8 @@ 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 && test $is_hosted = yes; then + if $GLIBCXX_IS_NATIVE && test $is_hosted = yes && + test $enable_symvers != no; then # Do checks for resource limit functions. setrlimit_have_headers=yes @@ -88208,8 +88206,6 @@ done - - # Propagate the target-specific source directories through the build chain. ATOMICITY_SRCDIR=config/${atomicity_dir} ATOMIC_WORD_SRCDIR=config/${atomic_word_dir} @@ -88304,17 +88300,6 @@ fi -if test $enable_abi_check = yes; then - GLIBCXX_TEST_ABI_TRUE= - GLIBCXX_TEST_ABI_FALSE='#' -else - GLIBCXX_TEST_ABI_TRUE='#' - GLIBCXX_TEST_ABI_FALSE= -fi - - - - cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure @@ -88663,13 +88648,6 @@ echo "$as_me: error: conditional \"GLIBCXX_BUILD_VERSIONED_SHLIB\" was never def Usually this means the macro was only invoked conditionally." >&2;} { (exit 1); exit 1; }; } fi -if test -z "${GLIBCXX_TEST_ABI_TRUE}" && test -z "${GLIBCXX_TEST_ABI_FALSE}"; then - { { echo "$as_me:$LINENO: error: conditional \"GLIBCXX_TEST_ABI\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -echo "$as_me: error: conditional \"GLIBCXX_TEST_ABI\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi : ${CONFIG_STATUS=./config.status} ac_clean_files_save=$ac_clean_files @@ -89339,8 +89317,6 @@ s,@port_specific_symbol_files@,$port_specific_symbol_files,;t t s,@GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@,$GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE,;t t s,@GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE@,$GLIBCXX_BUILD_VERSIONED_SHLIB_FALSE,;t t s,@baseline_dir@,$baseline_dir,;t t -s,@GLIBCXX_TEST_ABI_TRUE@,$GLIBCXX_TEST_ABI_TRUE,;t t -s,@GLIBCXX_TEST_ABI_FALSE@,$GLIBCXX_TEST_ABI_FALSE,;t t s,@ATOMICITY_SRCDIR@,$ATOMICITY_SRCDIR,;t t s,@ATOMIC_WORD_SRCDIR@,$ATOMIC_WORD_SRCDIR,;t t s,@ABI_TWEAKS_SRCDIR@,$ABI_TWEAKS_SRCDIR,;t t diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in index 233ef53..7f27b85 100644 --- a/libstdc++-v3/include/Makefile.in +++ b/libstdc++-v3/include/Makefile.in @@ -114,8 +114,6 @@ GLIBCXX_C_HEADERS_C_TRUE = @GLIBCXX_C_HEADERS_C_TRUE@ GLIBCXX_HOSTED_FALSE = @GLIBCXX_HOSTED_FALSE@ GLIBCXX_HOSTED_TRUE = @GLIBCXX_HOSTED_TRUE@ GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ -GLIBCXX_TEST_ABI_FALSE = @GLIBCXX_TEST_ABI_FALSE@ -GLIBCXX_TEST_ABI_TRUE = @GLIBCXX_TEST_ABI_TRUE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ diff --git a/libstdc++-v3/libmath/Makefile.in b/libstdc++-v3/libmath/Makefile.in index c47944f..f3aaf3e 100644 --- a/libstdc++-v3/libmath/Makefile.in +++ b/libstdc++-v3/libmath/Makefile.in @@ -131,8 +131,6 @@ GLIBCXX_C_HEADERS_C_TRUE = @GLIBCXX_C_HEADERS_C_TRUE@ GLIBCXX_HOSTED_FALSE = @GLIBCXX_HOSTED_FALSE@ GLIBCXX_HOSTED_TRUE = @GLIBCXX_HOSTED_TRUE@ GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ -GLIBCXX_TEST_ABI_FALSE = @GLIBCXX_TEST_ABI_FALSE@ -GLIBCXX_TEST_ABI_TRUE = @GLIBCXX_TEST_ABI_TRUE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ diff --git a/libstdc++-v3/libsupc++/Makefile.in b/libstdc++-v3/libsupc++/Makefile.in index 9dfedc3..9e11edd 100644 --- a/libstdc++-v3/libsupc++/Makefile.in +++ b/libstdc++-v3/libsupc++/Makefile.in @@ -170,8 +170,6 @@ GLIBCXX_C_HEADERS_C_TRUE = @GLIBCXX_C_HEADERS_C_TRUE@ GLIBCXX_HOSTED_FALSE = @GLIBCXX_HOSTED_FALSE@ GLIBCXX_HOSTED_TRUE = @GLIBCXX_HOSTED_TRUE@ GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ -GLIBCXX_TEST_ABI_FALSE = @GLIBCXX_TEST_ABI_FALSE@ -GLIBCXX_TEST_ABI_TRUE = @GLIBCXX_TEST_ABI_TRUE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ diff --git a/libstdc++-v3/po/Makefile.in b/libstdc++-v3/po/Makefile.in index 7ae0c36..9f4baca 100644 --- a/libstdc++-v3/po/Makefile.in +++ b/libstdc++-v3/po/Makefile.in @@ -114,8 +114,6 @@ GLIBCXX_C_HEADERS_C_TRUE = @GLIBCXX_C_HEADERS_C_TRUE@ GLIBCXX_HOSTED_FALSE = @GLIBCXX_HOSTED_FALSE@ GLIBCXX_HOSTED_TRUE = @GLIBCXX_HOSTED_TRUE@ GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ -GLIBCXX_TEST_ABI_FALSE = @GLIBCXX_TEST_ABI_FALSE@ -GLIBCXX_TEST_ABI_TRUE = @GLIBCXX_TEST_ABI_TRUE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in index fbe3805..076115b 100644 --- a/libstdc++-v3/src/Makefile.in +++ b/libstdc++-v3/src/Makefile.in @@ -150,8 +150,6 @@ GLIBCXX_C_HEADERS_C_TRUE = @GLIBCXX_C_HEADERS_C_TRUE@ GLIBCXX_HOSTED_FALSE = @GLIBCXX_HOSTED_FALSE@ GLIBCXX_HOSTED_TRUE = @GLIBCXX_HOSTED_TRUE@ GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ -GLIBCXX_TEST_ABI_FALSE = @GLIBCXX_TEST_ABI_FALSE@ -GLIBCXX_TEST_ABI_TRUE = @GLIBCXX_TEST_ABI_TRUE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ diff --git a/libstdc++-v3/testsuite/Makefile.am b/libstdc++-v3/testsuite/Makefile.am index 68e0e80..facf63a 100644 --- a/libstdc++-v3/testsuite/Makefile.am +++ b/libstdc++-v3/testsuite/Makefile.am @@ -89,14 +89,10 @@ new-abi-baseline: fi; \ ${extract_symvers} ../src/.libs/libstdc++.so $${output}) -if GLIBCXX_TEST_ABI # Use 'new-abi-baseline' to create an initial symbol file. Then run # 'check-abi' to test for changes against that file. check-abi: baseline_symbols site.exp -@runtest --tool libstdc++ abi.exp -else -check-abi: -endif # Runs the testsuite, but in compile only mode. # Can be used to test sources with non-GNU FE's at various warning diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in index df262fa..6edbf02 100644 --- a/libstdc++-v3/testsuite/Makefile.in +++ b/libstdc++-v3/testsuite/Makefile.in @@ -118,8 +118,6 @@ GLIBCXX_C_HEADERS_C_TRUE = @GLIBCXX_C_HEADERS_C_TRUE@ GLIBCXX_HOSTED_FALSE = @GLIBCXX_HOSTED_FALSE@ GLIBCXX_HOSTED_TRUE = @GLIBCXX_HOSTED_TRUE@ GLIBCXX_INCLUDES = @GLIBCXX_INCLUDES@ -GLIBCXX_TEST_ABI_FALSE = @GLIBCXX_TEST_ABI_FALSE@ -GLIBCXX_TEST_ABI_TRUE = @GLIBCXX_TEST_ABI_TRUE@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ @@ -504,9 +502,8 @@ new-abi-baseline: # Use 'new-abi-baseline' to create an initial symbol file. Then run # 'check-abi' to test for changes against that file. -@GLIBCXX_TEST_ABI_TRUE@check-abi: baseline_symbols site.exp -@GLIBCXX_TEST_ABI_TRUE@ -@runtest --tool libstdc++ abi.exp -@GLIBCXX_TEST_ABI_FALSE@check-abi: +check-abi: baseline_symbols site.exp + -@runtest --tool libstdc++ abi.exp check-compile: testsuite_files ${compile_script} -@(chmod + ${compile_script}; \ ${compile_script} ${glibcxx_srcdir} ${glibcxx_builddir}) diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp index bcae377..8471ed6 100644 --- a/libstdc++-v3/testsuite/lib/libstdc++.exp +++ b/libstdc++-v3/testsuite/lib/libstdc++.exp @@ -277,6 +277,9 @@ set v3-wchar_t 0 # True if the library supports threads. set v3-threads 0 +# True if the library supports symbol versioning. +set v3-symver 0 + # A string naming object files to be linked into all tests. set v3-test_objs "" @@ -313,17 +316,19 @@ proc v3_target_compile { source dest type options } { # Build the support objects linked in with the libstdc++ tests. In -# addition, set v3-wchar_t, v3-threads, and v3-test_objs +# addition, set v3-wchar_t, v3-threads, v3-test_objs, and v3-symver # appropriately. proc v3-build_support {} { global srcdir global v3-wchar_t global v3-threads global v3-test_objs + global v3-symver # Figure out whether or not the library supports certain features. set v3-wchar_t 0 set v3-threads 0 + set v3-symver 0 set v3-test_objs "" set config_src "config.cc" @@ -337,6 +342,10 @@ proc v3-build_support {} { verbose -log "wchar_t support detected" set v3-wchar_t 1 } + if { [string first "_GLIBCXX_SYMVER" $preprocessed] != -1 } { + verbose -log "symbol versioning support detected" + set v3-symver 1 + } if { [string first "__GTHREADS" $preprocessed] != -1 } { verbose -log "thread support detected" set v3-threads 1 diff --git a/libstdc++-v3/testsuite/libstdc++-abi/abi.exp b/libstdc++-v3/testsuite/libstdc++-abi/abi.exp index f226e0a..b5b469e 100644 --- a/libstdc++-v3/testsuite/libstdc++-abi/abi.exp +++ b/libstdc++-v3/testsuite/libstdc++-abi/abi.exp @@ -15,8 +15,13 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # If there is no baseline file, or we can't find the library, skip -# this test. -if { ![info exists baseline_file] \ +# this test. Or, hey, if we don't support this kind of symbol +# versioning test: don't run it. + +# Build the support objects. +v3-build_support + +if { (${v3-symver} == 0) || ![info exists baseline_file] \ || ![file exists $baseline_file] \ || ![file exists "../src/.libs/libstdc++.so"] } { return @@ -26,9 +31,6 @@ if { ![info exists baseline_file] \ remote_exec "build" "$srcdir/../scripts/extract_symvers" \ [list "../src/.libs/libstdc++.so" "current_symbols.txt"] -# Build the support objects. -v3-build_support - # Build the abi_check program. if { [v3_target_compile "$srcdir/testsuite_abi_check.cc" "abi_check" \ "executable" [list "additional_flags=-w"]] != "" } { -- 2.7.4