Makefile.am (check-abi): Specify current directory.

2002-08-23  Phil Edwards  <pme@gcc.gnu.org>

	* Makefile.am (check-abi):  Specify current directory.
	* acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE):  Fix shell syntax, use
	abi_baseline_triplet in baseline_file.
	* Makefile.in, aclocal.m4, configure:  Regenerate.
	* configure.target:  Add abi_baseline_triplet with default.
	* testsuite/abi_check.cc:  More error checking.

From-SVN: r56545
This commit is contained in:
Phil Edwards 2002-08-23 19:33:41 +00:00
parent c6664446f6
commit 314b5a68e3
8 changed files with 1249 additions and 1261 deletions

View File

@ -1,3 +1,12 @@
2002-08-23 Phil Edwards <pme@gcc.gnu.org>
* Makefile.am (check-abi): Specify current directory.
* acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Fix shell syntax, use
abi_baseline_triplet in baseline_file.
* Makefile.in, aclocal.m4, configure: Regenerate.
* configure.target: Add abi_baseline_triplet with default.
* testsuite/abi_check.cc: More error checking.
2002-08-23 Phil Edwards <pme@gcc.gnu.org> 2002-08-23 Phil Edwards <pme@gcc.gnu.org>
* config/linker-map.gnu: Verbose comments, clean up spacing. * config/linker-map.gnu: Verbose comments, clean up spacing.

View File

@ -49,7 +49,7 @@ check-script-install: $(top_builddir)/mkcheck
baseline_file = @baseline_file@ baseline_file = @baseline_file@
check-abi: $(top_builddir)/testsuite/abi_check check-abi: $(top_builddir)/testsuite/abi_check
-(cd testsuite; \ -(cd testsuite; \
abi_check @baseline_file@) ./abi_check ${baseline_file})
# These rules are messy, but are hella worth it. # These rules are messy, but are hella worth it.
doxygen: doxygen:

View File

@ -1,4 +1,4 @@
# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am # Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
@ -157,44 +157,7 @@ MULTICLEAN = true
# Work around what appears to be a GNU make bug handling MAKEFLAGS # Work around what appears to be a GNU make bug handling MAKEFLAGS
# values defined in terms of make variables, as is the case for CC and # values defined in terms of make variables, as is the case for CC and
# friends when we are called from the top level Makefile. # friends when we are called from the top level Makefile.
AM_MAKEFLAGS = \ AM_MAKEFLAGS = "AR_FLAGS=$(AR_FLAGS)" "CC_FOR_BUILD=$(CC_FOR_BUILD)" "CC_FOR_TARGET=$(CC_FOR_TARGET)" "CFLAGS=$(CFLAGS)" "CXXFLAGS=$(CXXFLAGS)" "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" "INSTALL=$(INSTALL)" "INSTALL_DATA=$(INSTALL_DATA)" "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" "LDFLAGS=$(LDFLAGS)" "LIBCFLAGS=$(LIBCFLAGS)" "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" "MAKE=$(MAKE)" "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" "PICFLAG=$(PICFLAG)" "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" "SHELL=$(SHELL)" "RUNTESTFLAGS=$(RUNTESTFLAGS)" "exec_prefix=$(exec_prefix)" "infodir=$(infodir)" "libdir=$(libdir)" "includedir=$(includedir)" "prefix=$(prefix)" "tooldir=$(tooldir)" "AR=$(AR)" "AS=$(AS)" "LD=$(LD)" "LIBCFLAGS=$(LIBCFLAGS)" "PICFLAG=$(PICFLAG)" "RANLIB=$(RANLIB)" "NM=$(NM)" "NM_FOR_BUILD=$(NM_FOR_BUILD)" "NM_FOR_TARGET=$(NM_FOR_TARGET)" "DESTDIR=$(DESTDIR)" "WERROR=$(WERROR)"
"AR_FLAGS=$(AR_FLAGS)" \
"CC_FOR_BUILD=$(CC_FOR_BUILD)" \
"CC_FOR_TARGET=$(CC_FOR_TARGET)" \
"CFLAGS=$(CFLAGS)" \
"CXXFLAGS=$(CXXFLAGS)" \
"CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
"CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
"INSTALL=$(INSTALL)" \
"INSTALL_DATA=$(INSTALL_DATA)" \
"INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
"INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
"LDFLAGS=$(LDFLAGS)" \
"LIBCFLAGS=$(LIBCFLAGS)" \
"LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
"MAKE=$(MAKE)" \
"MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
"PICFLAG=$(PICFLAG)" \
"PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
"SHELL=$(SHELL)" \
"RUNTESTFLAGS=$(RUNTESTFLAGS)" \
"exec_prefix=$(exec_prefix)" \
"infodir=$(infodir)" \
"libdir=$(libdir)" \
"includedir=$(includedir)" \
"prefix=$(prefix)" \
"tooldir=$(tooldir)" \
"AR=$(AR)" \
"AS=$(AS)" \
"LD=$(LD)" \
"LIBCFLAGS=$(LIBCFLAGS)" \
"PICFLAG=$(PICFLAG)" \
"RANLIB=$(RANLIB)" \
"NM=$(NM)" \
"NM_FOR_BUILD=$(NM_FOR_BUILD)" \
"NM_FOR_TARGET=$(NM_FOR_TARGET)" \
"DESTDIR=$(DESTDIR)" \
"WERROR=$(WERROR)"
# Subdir rules rely on $(FLAGS_TO_PASS) # Subdir rules rely on $(FLAGS_TO_PASS)
@ -209,7 +172,7 @@ mkcheck.in testsuite_flags.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = gtar TAR = tar
GZIP_ENV = --best GZIP_ENV = --best
all: all-redirect all: all-redirect
.SUFFIXES: .SUFFIXES:
@ -486,7 +449,7 @@ check-script-install: $(top_builddir)/mkcheck
@glibcpp_builddir@/mkcheck 1) @glibcpp_builddir@/mkcheck 1)
check-abi: $(top_builddir)/testsuite/abi_check check-abi: $(top_builddir)/testsuite/abi_check
-(cd testsuite; \ -(cd testsuite; \
abi_check @baseline_file@) ./abi_check ${baseline_file})
# These rules are messy, but are hella worth it. # These rules are messy, but are hella worth it.
doxygen: doxygen:

View File

@ -2028,12 +2028,12 @@ AC_DEFUN(GLIBCPP_CONFIGURE_TESTSUITE, [
GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv) GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
# Export file names for ABI checking. # Export file names for ABI checking.
baseline_file="${glibcpp_srcdir}/config/abi/${target_alias}/baseline_symbols.txt" baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_triplet}/baseline_symbols.txt"
AC_SUBST(baseline_file) AC_SUBST(baseline_file)
# Don't do ABI checking unless native. # Don't do ABI checking unless native.
AM_CONDITIONAL(GLIBCPP_BUILD_ABI_CHECK, AM_CONDITIONAL(GLIBCPP_BUILD_ABI_CHECK,
test x"$build" == x"$host" && test -z "$with_cross_host") test x"$build" = x"$host" && test -z "$with_cross_host")
]) ])

View File

@ -1,4 +1,4 @@
dnl aclocal.m4 generated automatically by aclocal 1.4-p5 dnl aclocal.m4 generated automatically by aclocal 1.4-p6
dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc. dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
@ -2040,12 +2040,12 @@ AC_DEFUN(GLIBCPP_CONFIGURE_TESTSUITE, [
GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv) GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
# Export file names for ABI checking. # Export file names for ABI checking.
baseline_file="${glibcpp_srcdir}/config/abi/${target_alias}/baseline_symbols.txt" baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_triplet}/baseline_symbols.txt"
AC_SUBST(baseline_file) AC_SUBST(baseline_file)
# Don't do ABI checking unless native. # Don't do ABI checking unless native.
AM_CONDITIONAL(GLIBCPP_BUILD_ABI_CHECK, AM_CONDITIONAL(GLIBCPP_BUILD_ABI_CHECK,
test x"$build" == x"$host" && test -z "$with_cross_host") test x"$build" = x"$host" && test -z "$with_cross_host")
]) ])
@ -2209,7 +2209,7 @@ AC_MSG_RESULT($enable_symvers)
]) ])
# isc-posix.m4 serial 1 (gettext-0.10.40) # isc-posix.m4 serial 2 (gettext-0.11.2)
dnl Copyright (C) 1995-2002 Free Software Foundation, Inc. dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
dnl This file is free software, distributed under the terms of the GNU dnl This file is free software, distributed under the terms of the GNU
dnl General Public License. As a special exception to the GNU General dnl General Public License. As a special exception to the GNU General
@ -2217,6 +2217,8 @@ dnl Public License, this file may be distributed as part of a program
dnl that contains a configuration script generated by Autoconf, under dnl that contains a configuration script generated by Autoconf, under
dnl the same distribution terms as the rest of that program. dnl the same distribution terms as the rest of that program.
# This file is not needed with autoconf-2.53 and newer. Remove it in 2005.
# This test replaces the one in autoconf. # This test replaces the one in autoconf.
# Currently this macro should have the same name as the autoconf macro # Currently this macro should have the same name as the autoconf macro
# because gettext's gettext.m4 (distributed in the automake package) # because gettext's gettext.m4 (distributed in the automake package)
@ -2277,7 +2279,8 @@ dnl Usage:
dnl AM_INIT_AUTOMAKE(package,version, [no-define]) dnl AM_INIT_AUTOMAKE(package,version, [no-define])
AC_DEFUN([AM_INIT_AUTOMAKE], AC_DEFUN([AM_INIT_AUTOMAKE],
[AC_REQUIRE([AC_PROG_INSTALL]) [AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
AC_REQUIRE([AC_PROG_INSTALL])
PACKAGE=[$1] PACKAGE=[$1]
AC_SUBST(PACKAGE) AC_SUBST(PACKAGE)
VERSION=[$2] VERSION=[$2]
@ -2293,13 +2296,42 @@ AC_REQUIRE([AM_SANITY_CHECK])
AC_REQUIRE([AC_ARG_PROGRAM]) AC_REQUIRE([AC_ARG_PROGRAM])
dnl FIXME This is truly gross. dnl FIXME This is truly gross.
missing_dir=`cd $ac_aux_dir && pwd` missing_dir=`cd $ac_aux_dir && pwd`
AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir)
AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir)
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
AC_REQUIRE([AC_PROG_MAKE_SET])]) AC_REQUIRE([AC_PROG_MAKE_SET])])
# Copyright 2002 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# AM_AUTOMAKE_VERSION(VERSION)
# ----------------------------
# Automake X.Y traces this macro to ensure aclocal.m4 has been
# generated from the m4 files accompanying Automake X.Y.
AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"])
# AM_SET_CURRENT_AUTOMAKE_VERSION
# -------------------------------
# Call AM_AUTOMAKE_VERSION so it can be traced.
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
[AM_AUTOMAKE_VERSION([1.4-p6])])
# #
# Check to make sure that the build environment is sane. # Check to make sure that the build environment is sane.
# #

2383
libstdc++-v3/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -31,6 +31,9 @@
# c_compatibility if "C" compatibility headers are necessary, # c_compatibility if "C" compatibility headers are necessary,
# defaults to no. # defaults to no.
# #
# abi_baseline_triplet directory name for ABI compat testing,
# defaults to target (as per config.guess)
#
# It possibly modifies the following variables: # It possibly modifies the following variables:
# #
# OPT_LDFLAGS extra flags to pass when linking the library, of # OPT_LDFLAGS extra flags to pass when linking the library, of
@ -54,6 +57,8 @@ else
cpu_include_dir="cpu/generic" cpu_include_dir="cpu/generic"
fi fi
abi_baseline_triplet=${target}
c_model=c_std c_model=c_std
c_compatibility=no c_compatibility=no
@ -71,6 +76,7 @@ case "${target_cpu}" in
cpu_include_dir="cpu/arm" cpu_include_dir="cpu/arm"
;; ;;
i486 | i586 | i686 | i786) i486 | i586 | i686 | i786)
# add athlons here maybe
cpu_include_dir="cpu/i486" cpu_include_dir="cpu/i486"
CPULIMITSH="cpu/i386" CPULIMITSH="cpu/i386"
;; ;;

View File

@ -36,6 +36,8 @@
#include <fstream> #include <fstream>
#include <iostream> #include <iostream>
#include <cxxabi.h> #include <cxxabi.h>
#include <stdlib.h> // for system(3)
#include <unistd.h> // for access(2)
struct symbol_info struct symbol_info
{ {
@ -226,6 +228,19 @@ int main(int argc, char** argv)
const char* test_file = "current_symbols.txt"; const char* test_file = "current_symbols.txt";
const char* test_lib = "../src/.libs/libstdc++.so"; const char* test_lib = "../src/.libs/libstdc++.so";
// Quick sanity/setup check
if (access(baseline_file, R_OK) != 0)
{
cerr << "Cannot read baseline file " << baseline_file << endl;
exit(1);
}
if (access(test_lib, R_OK) != 0)
{
cerr << "Cannot read library " << test_lib
<< ", did you forget to build first?" << endl;
exit(1);
}
// Get list of symbols. // Get list of symbols.
// Assume external symbol list computed "as if" by // Assume external symbol list computed "as if" by
/* /*