03-06-16 Benjamin Kosnik <bkoz@redhat.com>

* Makefile.am (check-abi): Move...
	(new-abi-baseline): Move...
	* testsuite/Makefile.am: ...here.
	(new-abi-baseline): Conditionalize.
	(check-abi): Conditionalize.
	(check-abi-verbose): New.
	* Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.
	* configure.in: Consolidate testsuite configure bits.
	* acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Same.
	* configure: Regenerate.
	* aclocal.m4: Regenerate.
	* testsuite/abi_check.cc: Add --check-verbose.
	Only output detailed information if --check-verbose.

From-SVN: r68067
This commit is contained in:
Benjamin Kosnik 2003-06-17 05:46:01 +00:00 committed by Benjamin Kosnik
parent 5b0e2409f7
commit c4c064e771
10 changed files with 555 additions and 453 deletions

View File

@ -1,3 +1,20 @@
2003-06-16 Benjamin Kosnik <bkoz@redhat.com>
* Makefile.am (check-abi): Move...
(new-abi-baseline): Move...
* testsuite/Makefile.am: ...here.
(new-abi-baseline): Conditionalize.
(check-abi): Conditionalize.
(check-abi-verbose): New.
* Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.
* configure.in: Consolidate testsuite configure bits.
* acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): Same.
* configure: Regenerate.
* aclocal.m4: Regenerate.
* testsuite/abi_check.cc: Add --check-verbose.
Only output detailed information if --check-verbose.
2003-06-16 Andreas Jaeger <aj@suse.de>
* testsuite/abi_check.cc: Create summary report.

View File

@ -46,26 +46,6 @@ check-script-install: $(top_builddir)/mkcheck
cd testsuite; \
@glibcpp_builddir@/mkcheck 1)
# Use 'new-abi-baseline' to create an initial symbol file. Then run
# 'check-abi' to test for changes against that file.
baseline_file = @baseline_file@
check-abi: $(top_builddir)/testsuite/abi_check
-@(cd testsuite; \
@glibcpp_srcdir@/config/abi/extract_symvers \
../src/.libs/libstdc++.so \
./current_symbols.txt && \
./abi_check --check ./current_symbols.txt ${baseline_file})
new-abi-baseline:
-@(output=${baseline_file}; \
if test -f $${output}; then \
output=$${output}.new; \
t=`echo $${output} | sed 's=.*config/abi/=='`; \
echo "Baseline file already exists, writing to $${t} instead."; \
fi; \
@glibcpp_srcdir@/config/abi/extract_symvers \
src/.libs/libstdc++.so $${output})
# These rules are messy, but are hella worth it.
doxygen:
-(srcdir=`cd ${top_srcdir}; ${PWD}`; \

View File

@ -121,6 +121,7 @@ USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_FLAGS = @WARN_FLAGS@
WERROR = @WERROR@
baseline_file = @baseline_file@
check_msgfmt = @check_msgfmt@
enable_shared = @enable_shared@
enable_static = @enable_static@
@ -150,10 +151,6 @@ mkinstalldirs = $(SHELL) $(toplevel_srcdir)/mkinstalldirs
PWD = $${PWDCMD-pwd}
# Use 'new-abi-baseline' to create an initial symbol file. Then run
# 'check-abi' to test for changes against that file.
baseline_file = @baseline_file@
# Multilib support.
MAKEOVERRIDES =
@ -496,22 +493,6 @@ check-script-install: $(top_builddir)/mkcheck
-(chmod + $(top_builddir)/mkcheck; \
cd testsuite; \
@glibcpp_builddir@/mkcheck 1)
check-abi: $(top_builddir)/testsuite/abi_check
-@(cd testsuite; \
@glibcpp_srcdir@/config/abi/extract_symvers \
../src/.libs/libstdc++.so \
./current_symbols.txt && \
./abi_check --check ./current_symbols.txt ${baseline_file})
new-abi-baseline:
-@(output=${baseline_file}; \
if test -f $${output}; then \
output=$${output}.new; \
t=`echo $${output} | sed 's=.*config/abi/=='`; \
echo "Baseline file already exists, writing to $${t} instead."; \
fi; \
@glibcpp_srcdir@/config/abi/extract_symvers \
src/.libs/libstdc++.so $${output})
# These rules are messy, but are hella worth it.
doxygen:

View File

@ -209,7 +209,7 @@ AC_DEFUN(GLIBCPP_CONFIGURE, [
#glibcpp_pch_comp=no
#enable_cheaders=c
#c_compatibility=no
enable_abi_check=no
#enable_abi_check=no
#enable_symvers=no
# Find platform-specific directories containing configuration info. In
@ -2049,20 +2049,33 @@ dnl the testsuite_hooks.h header.
dnl
dnl GLIBCPP_CONFIGURE_TESTSUITE [no args]
AC_DEFUN(GLIBCPP_CONFIGURE_TESTSUITE, [
GLIBCPP_CHECK_SETRLIMIT
# Look for setenv, so that extended locale tests can be performed.
GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
if test x"$GLIBCPP_IS_CROSS_COMPILING" = xfalse; then
# Do checks for memory limit functions.
GLIBCPP_CHECK_SETRLIMIT
# Look for setenv, so that extended locale tests can be performed.
GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
fi
# Export file names for ABI checking.
baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_pair}\$(MULTISUBDIR)/baseline_symbols.txt"
AC_SUBST(baseline_file)
dnl XXX move to configure.host?
case "$target" in
*-*-cygwin* ) enable_abi_check=no ;;
* ) enable_abi_check=yes ;;
esac
# Determine if checking the ABI is desirable.
if test x$enable_symvers = xno; then
enable_abi_check=no
else
case "$host" in
*-*-cygwin*)
enable_abi_check=no ;;
*)
enable_abi_check=yes ;;
esac
fi
AM_CONDITIONAL(GLIBCPP_TEST_WCHAR_T, test "$enable_wchar_t" = yes)
AM_CONDITIONAL(GLIBCPP_TEST_ABI, test "$enable_abi_check" = yes)
])

View File

@ -221,7 +221,7 @@ AC_DEFUN(GLIBCPP_CONFIGURE, [
#glibcpp_pch_comp=no
#enable_cheaders=c
#c_compatibility=no
enable_abi_check=no
#enable_abi_check=no
#enable_symvers=no
# Find platform-specific directories containing configuration info. In
@ -2061,20 +2061,33 @@ dnl the testsuite_hooks.h header.
dnl
dnl GLIBCPP_CONFIGURE_TESTSUITE [no args]
AC_DEFUN(GLIBCPP_CONFIGURE_TESTSUITE, [
GLIBCPP_CHECK_SETRLIMIT
# Look for setenv, so that extended locale tests can be performed.
GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
if test x"$GLIBCPP_IS_CROSS_COMPILING" = xfalse; then
# Do checks for memory limit functions.
GLIBCPP_CHECK_SETRLIMIT
# Look for setenv, so that extended locale tests can be performed.
GLIBCPP_CHECK_STDLIB_DECL_AND_LINKAGE_3(setenv)
fi
# Export file names for ABI checking.
baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_pair}\$(MULTISUBDIR)/baseline_symbols.txt"
AC_SUBST(baseline_file)
dnl XXX move to configure.host?
case "$target" in
*-*-cygwin* ) enable_abi_check=no ;;
* ) enable_abi_check=yes ;;
esac
# Determine if checking the ABI is desirable.
if test x$enable_symvers = xno; then
enable_abi_check=no
else
case "$host" in
*-*-cygwin*)
enable_abi_check=no ;;
*)
enable_abi_check=yes ;;
esac
fi
AM_CONDITIONAL(GLIBCPP_TEST_WCHAR_T, test "$enable_wchar_t" = yes)
AM_CONDITIONAL(GLIBCPP_TEST_ABI, test "$enable_abi_check" = yes)
])

720
libstdc++-v3/configure vendored
View File

@ -1504,7 +1504,7 @@ ac_exeext=$EXEEXT
#glibcpp_pch_comp=no
#enable_cheaders=c
#c_compatibility=no
enable_abi_check=no
#enable_abi_check=no
#enable_symvers=no
# Find platform-specific directories containing configuration info. In
@ -23161,328 +23161,9 @@ EOF
fi
# Establish limits on memory usage during 'make check'
setrlimit_have_headers=yes
for ac_hdr in unistd.h sys/time.h sys/resource.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:23174: 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 23179 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:23184: \"$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*
eval "ac_cv_header_$ac_safe=yes"
else
echo "$ac_err" >&5
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
eval "ac_cv_header_$ac_safe=no"
fi
rm -f conftest*
fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
cat >> confdefs.h <<EOF
#define $ac_tr_hdr 1
EOF
else
echo "$ac_t""no" 1>&6
setrlimit_have_headers=no
fi
done
# If don't have the headers, then we can't run the tests now, and we
# won't be seeing any of these during testsuite compilation.
if test $setrlimit_have_headers = yes; then
# Can't do these in a loop, else the resulting syntax is wrong.
cat > conftest.$ac_ext <<EOF
#line 23217 "configure"
#include "confdefs.h"
#include <unistd.h>
#include <sys/time.h>
#include <sys/resource.h>
int main() {
int f = RLIMIT_DATA ;
; return 0; }
EOF
if { (eval echo configure:23227: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_mresult=1
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
glibcpp_mresult=0
fi
rm -f conftest*
cat >> confdefs.h <<EOF
#define HAVE_MEMLIMIT_DATA $glibcpp_mresult
EOF
cat > conftest.$ac_ext <<EOF
#line 23244 "configure"
#include "confdefs.h"
#include <unistd.h>
#include <sys/time.h>
#include <sys/resource.h>
int main() {
int f = RLIMIT_RSS ;
; return 0; }
EOF
if { (eval echo configure:23254: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_mresult=1
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
glibcpp_mresult=0
fi
rm -f conftest*
cat >> confdefs.h <<EOF
#define HAVE_MEMLIMIT_RSS $glibcpp_mresult
EOF
cat > conftest.$ac_ext <<EOF
#line 23271 "configure"
#include "confdefs.h"
#include <unistd.h>
#include <sys/time.h>
#include <sys/resource.h>
int main() {
int f = RLIMIT_VMEM ;
; return 0; }
EOF
if { (eval echo configure:23281: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_mresult=1
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
glibcpp_mresult=0
fi
rm -f conftest*
cat >> confdefs.h <<EOF
#define HAVE_MEMLIMIT_VMEM $glibcpp_mresult
EOF
cat > conftest.$ac_ext <<EOF
#line 23298 "configure"
#include "confdefs.h"
#include <unistd.h>
#include <sys/time.h>
#include <sys/resource.h>
int main() {
int f = RLIMIT_AS ;
; return 0; }
EOF
if { (eval echo configure:23308: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_mresult=1
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
glibcpp_mresult=0
fi
rm -f conftest*
cat >> confdefs.h <<EOF
#define HAVE_MEMLIMIT_AS $glibcpp_mresult
EOF
# Check for rlimit, setrlimit.
if eval "test \"`echo '$''{'ac_setrlimit'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 23330 "configure"
#include "confdefs.h"
#include <unistd.h>
#include <sys/time.h>
#include <sys/resource.h>
int main() {
struct rlimit r; setrlimit(0, &r);
; return 0; }
EOF
if { (eval echo configure:23340: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_setrlimit=yes
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
ac_setrlimit=no
fi
rm -f conftest*
fi
fi
echo $ac_n "checking for testsuite memory limit support""... $ac_c" 1>&6
echo "configure:23356: 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
#define _GLIBCPP_MEM_LIMITS 1
EOF
else
ac_mem_limits=no
fi
echo "$ac_t""$ac_mem_limits" 1>&6
# Look for setenv, so that extended locale tests can be performed.
echo $ac_n "checking for setenv declaration""... $ac_c" 1>&6
echo "configure:23372: checking for setenv declaration" >&5
if test x${glibcpp_cv_func_setenv_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_setenv_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_ext=C
# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
#line 23387 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
setenv(0, 0, 0);
; return 0; }
EOF
if { (eval echo configure:23394: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_setenv_use=yes
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
glibcpp_cv_func_setenv_use=no
fi
rm -f conftest*
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
cross_compiling=$ac_cv_prog_cc_cross
fi
fi
echo "$ac_t""$glibcpp_cv_func_setenv_use" 1>&6
if test x$glibcpp_cv_func_setenv_use = x"yes"; then
for ac_func in setenv
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:23420: 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 23425 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char $ac_func();
int main() {
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
choke me
#else
$ac_func();
#endif
; return 0; }
EOF
if { (eval echo configure:23448: \"$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
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
eval "ac_cv_func_$ac_func=no"
fi
rm -f conftest*
fi
if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
echo "$ac_t""yes" 1>&6
ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
cat >> confdefs.h <<EOF
#define $ac_tr_func 1
EOF
else
echo "$ac_t""no" 1>&6
fi
done
fi
# Export file names for ABI checking.
baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_pair}\$(MULTISUBDIR)/baseline_symbols.txt"
case "$target" in
*-*-cygwin* ) enable_abi_check=no ;;
* ) enable_abi_check=yes ;;
esac
fi
# This depends on the possibly-skipped linker test above.
# This depends on GLIBCPP_CHECK_LINKER_FEATURES, but without it assumes no.
# Check whether --enable-symvers or --disable-symvers was given.
if test "${enable_symvers+set}" = set; then
enableval="$enable_symvers"
@ -23509,18 +23190,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:23513: checking for shared libgcc" >&5
echo "configure:23194: checking for shared libgcc" >&5
ac_save_CFLAGS="$CFLAGS"
CFLAGS=' -lgcc_s'
cat > conftest.$ac_ext <<EOF
#line 23517 "configure"
#line 23198 "configure"
#include "confdefs.h"
int main() {
return 0
; return 0; }
EOF
if { (eval echo configure:23524: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:23205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
glibcpp_shared_libgcc=yes
else
@ -23555,14 +23236,14 @@ if test $enable_symvers = yes ; then
echo 'FOO { global: f[a-z]o; local: *; };' > conftest.map
cat > conftest.$ac_ext <<EOF
#line 23559 "configure"
#line 23240 "configure"
#include "confdefs.h"
int foo;
int main() {
; return 0; }
EOF
if { (eval echo configure:23566: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
if { (eval echo configure:23247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
enable_symvers=gnu
else
@ -23608,10 +23289,359 @@ else
GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE=
fi
echo $ac_n "checking versioning on shared library symbols""... $ac_c" 1>&6
echo "configure:23612: checking versioning on shared library symbols" >&5
echo "configure:23293: checking versioning on shared library symbols" >&5
echo "$ac_t""$enable_symvers" 1>&6
# This depends on GLIBCPP_ENABLE_SYMVERS and GLIBCPP_IS_CROSS_COMPILING.
if test x"$GLIBCPP_IS_CROSS_COMPILING" = xfalse; then
# Do checks for memory limit functions.
setrlimit_have_headers=yes
for ac_hdr in unistd.h sys/time.h sys/resource.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
echo "configure:23308: 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 23313 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
{ (eval echo configure:23318: \"$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*
eval "ac_cv_header_$ac_safe=yes"
else
echo "$ac_err" >&5
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
eval "ac_cv_header_$ac_safe=no"
fi
rm -f conftest*
fi
if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
echo "$ac_t""yes" 1>&6
ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
cat >> confdefs.h <<EOF
#define $ac_tr_hdr 1
EOF
else
echo "$ac_t""no" 1>&6
setrlimit_have_headers=no
fi
done
# If don't have the headers, then we can't run the tests now, and we
# won't be seeing any of these during testsuite compilation.
if test $setrlimit_have_headers = yes; then
# Can't do these in a loop, else the resulting syntax is wrong.
cat > conftest.$ac_ext <<EOF
#line 23351 "configure"
#include "confdefs.h"
#include <unistd.h>
#include <sys/time.h>
#include <sys/resource.h>
int main() {
int f = RLIMIT_DATA ;
; return 0; }
EOF
if { (eval echo configure:23361: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_mresult=1
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
glibcpp_mresult=0
fi
rm -f conftest*
cat >> confdefs.h <<EOF
#define HAVE_MEMLIMIT_DATA $glibcpp_mresult
EOF
cat > conftest.$ac_ext <<EOF
#line 23378 "configure"
#include "confdefs.h"
#include <unistd.h>
#include <sys/time.h>
#include <sys/resource.h>
int main() {
int f = RLIMIT_RSS ;
; return 0; }
EOF
if { (eval echo configure:23388: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_mresult=1
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
glibcpp_mresult=0
fi
rm -f conftest*
cat >> confdefs.h <<EOF
#define HAVE_MEMLIMIT_RSS $glibcpp_mresult
EOF
cat > conftest.$ac_ext <<EOF
#line 23405 "configure"
#include "confdefs.h"
#include <unistd.h>
#include <sys/time.h>
#include <sys/resource.h>
int main() {
int f = RLIMIT_VMEM ;
; return 0; }
EOF
if { (eval echo configure:23415: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_mresult=1
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
glibcpp_mresult=0
fi
rm -f conftest*
cat >> confdefs.h <<EOF
#define HAVE_MEMLIMIT_VMEM $glibcpp_mresult
EOF
cat > conftest.$ac_ext <<EOF
#line 23432 "configure"
#include "confdefs.h"
#include <unistd.h>
#include <sys/time.h>
#include <sys/resource.h>
int main() {
int f = RLIMIT_AS ;
; return 0; }
EOF
if { (eval echo configure:23442: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_mresult=1
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
glibcpp_mresult=0
fi
rm -f conftest*
cat >> confdefs.h <<EOF
#define HAVE_MEMLIMIT_AS $glibcpp_mresult
EOF
# Check for rlimit, setrlimit.
if eval "test \"`echo '$''{'ac_setrlimit'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 23464 "configure"
#include "confdefs.h"
#include <unistd.h>
#include <sys/time.h>
#include <sys/resource.h>
int main() {
struct rlimit r; setrlimit(0, &r);
; return 0; }
EOF
if { (eval echo configure:23474: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_setrlimit=yes
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
ac_setrlimit=no
fi
rm -f conftest*
fi
fi
echo $ac_n "checking for testsuite memory limit support""... $ac_c" 1>&6
echo "configure:23490: 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
#define _GLIBCPP_MEM_LIMITS 1
EOF
else
ac_mem_limits=no
fi
echo "$ac_t""$ac_mem_limits" 1>&6
# Look for setenv, so that extended locale tests can be performed.
echo $ac_n "checking for setenv declaration""... $ac_c" 1>&6
echo "configure:23506: checking for setenv declaration" >&5
if test x${glibcpp_cv_func_setenv_use+set} != xset; then
if eval "test \"`echo '$''{'glibcpp_cv_func_setenv_use'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_ext=C
# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext <<EOF
#line 23521 "configure"
#include "confdefs.h"
#include <stdlib.h>
int main() {
setenv(0, 0, 0);
; return 0; }
EOF
if { (eval echo configure:23528: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
glibcpp_cv_func_setenv_use=yes
else
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
glibcpp_cv_func_setenv_use=no
fi
rm -f conftest*
ac_ext=c
# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
ac_cpp='$CPP $CPPFLAGS'
ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
cross_compiling=$ac_cv_prog_cc_cross
fi
fi
echo "$ac_t""$glibcpp_cv_func_setenv_use" 1>&6
if test x$glibcpp_cv_func_setenv_use = x"yes"; then
for ac_func in setenv
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
echo "configure:23554: 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 23559 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
#include <assert.h>
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char $ac_func();
int main() {
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
choke me
#else
$ac_func();
#endif
; return 0; }
EOF
if { (eval echo configure:23582: \"$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
echo "configure: failed program was:" >&5
cat conftest.$ac_ext >&5
rm -rf conftest*
eval "ac_cv_func_$ac_func=no"
fi
rm -f conftest*
fi
if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
echo "$ac_t""yes" 1>&6
ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
cat >> confdefs.h <<EOF
#define $ac_tr_func 1
EOF
else
echo "$ac_t""no" 1>&6
fi
done
fi
fi
# Export file names for ABI checking.
baseline_file="${glibcpp_srcdir}/config/abi/${abi_baseline_pair}\$(MULTISUBDIR)/baseline_symbols.txt"
# Determine if checking the ABI is desirable.
if test x$enable_symvers = xno; then
enable_abi_check=no
else
case "$host" in
*-*-cygwin*)
enable_abi_check=no ;;
*)
enable_abi_check=yes ;;
esac
fi
if test "$enable_wchar_t" = yes; then
GLIBCPP_TEST_WCHAR_T_TRUE=
GLIBCPP_TEST_WCHAR_T_FALSE='#'
else
GLIBCPP_TEST_WCHAR_T_TRUE='#'
GLIBCPP_TEST_WCHAR_T_FALSE=
fi
if test "$enable_abi_check" = yes; then
GLIBCPP_TEST_ABI_TRUE=
GLIBCPP_TEST_ABI_FALSE='#'
else
GLIBCPP_TEST_ABI_TRUE='#'
GLIBCPP_TEST_ABI_FALSE=
fi
# Propagate the target-specific source directories through the build chain.
# (Nothing currently uses cpu_include_dir directly; only ATOMICITYH
# uses it, and it only gets used in this file.)
@ -23620,7 +23650,7 @@ ATOMICITY_INC_SRCDIR=config/${ATOMICITYH}
# Set up cross-compile flags and all AM_CONDITIONALs.
# Determine cross-compile flags and all AM_CONDITIONALs.
@ -23640,24 +23670,6 @@ else
GLIBCPP_BUILD_LIBMATH_TRUE='#'
GLIBCPP_BUILD_LIBMATH_FALSE=
fi
if test "$enable_wchar_t" = yes; then
GLIBCPP_TEST_WCHAR_T_TRUE=
GLIBCPP_TEST_WCHAR_T_FALSE='#'
else
GLIBCPP_TEST_WCHAR_T_TRUE='#'
GLIBCPP_TEST_WCHAR_T_FALSE=
fi
if test "$enable_abi_check" = yes; then
GLIBCPP_BUILD_ABI_CHECK_TRUE=
GLIBCPP_BUILD_ABI_CHECK_FALSE='#'
else
GLIBCPP_BUILD_ABI_CHECK_TRUE='#'
GLIBCPP_BUILD_ABI_CHECK_FALSE=
fi
cat > confcache <<\EOF
# This file is a shell script that caches the results of configure
@ -23723,7 +23735,7 @@ glibcpp_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:23727: checking for --with-gxx-include-dir" >&5
echo "configure:23739: 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"
@ -23747,7 +23759,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:23751: checking for --enable-version-specific-runtime-libs" >&5
echo "configure:23763: 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"
@ -23798,7 +23810,7 @@ if test x"$glibcpp_toolexecdir" = x"no"; then
fi
echo $ac_n "checking for install location""... $ac_c" 1>&6
echo "configure:23802: checking for install location" >&5
echo "configure:23814: checking for install location" >&5
echo "$ac_t""$gxx_include_dir" 1>&6
@ -24080,10 +24092,14 @@ s%@SECTION_LDFLAGS@%$SECTION_LDFLAGS%g
s%@OPT_LDFLAGS@%$OPT_LDFLAGS%g
s%@LIBMATHOBJS@%$LIBMATHOBJS%g
s%@WERROR@%$WERROR%g
s%@baseline_file@%$baseline_file%g
s%@SYMVER_MAP@%$SYMVER_MAP%g
s%@GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE@%$GLIBCPP_BUILD_VERSIONED_SHLIB_TRUE%g
s%@GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE@%$GLIBCPP_BUILD_VERSIONED_SHLIB_FALSE%g
s%@baseline_file@%$baseline_file%g
s%@GLIBCPP_TEST_WCHAR_T_TRUE@%$GLIBCPP_TEST_WCHAR_T_TRUE%g
s%@GLIBCPP_TEST_WCHAR_T_FALSE@%$GLIBCPP_TEST_WCHAR_T_FALSE%g
s%@GLIBCPP_TEST_ABI_TRUE@%$GLIBCPP_TEST_ABI_TRUE%g
s%@GLIBCPP_TEST_ABI_FALSE@%$GLIBCPP_TEST_ABI_FALSE%g
s%@OS_INC_SRCDIR@%$OS_INC_SRCDIR%g
s%@ATOMICITY_INC_SRCDIR@%$ATOMICITY_INC_SRCDIR%g
s%@GLIBCPP_IS_CROSS_COMPILING@%$GLIBCPP_IS_CROSS_COMPILING%g
@ -24091,10 +24107,6 @@ s%@CANADIAN_TRUE@%$CANADIAN_TRUE%g
s%@CANADIAN_FALSE@%$CANADIAN_FALSE%g
s%@GLIBCPP_BUILD_LIBMATH_TRUE@%$GLIBCPP_BUILD_LIBMATH_TRUE%g
s%@GLIBCPP_BUILD_LIBMATH_FALSE@%$GLIBCPP_BUILD_LIBMATH_FALSE%g
s%@GLIBCPP_TEST_WCHAR_T_TRUE@%$GLIBCPP_TEST_WCHAR_T_TRUE%g
s%@GLIBCPP_TEST_WCHAR_T_FALSE@%$GLIBCPP_TEST_WCHAR_T_FALSE%g
s%@GLIBCPP_BUILD_ABI_CHECK_TRUE@%$GLIBCPP_BUILD_ABI_CHECK_TRUE%g
s%@GLIBCPP_BUILD_ABI_CHECK_FALSE@%$GLIBCPP_BUILD_ABI_CHECK_FALSE%g
s%@glibcpp_prefixdir@%$glibcpp_prefixdir%g
s%@gxx_include_dir@%$gxx_include_dir%g
s%@glibcpp_toolexecdir@%$glibcpp_toolexecdir%g

View File

@ -431,14 +431,14 @@ else
])
AC_FUNC_MMAP
# Establish limits on memory usage during 'make check'
GLIBCPP_CONFIGURE_TESTSUITE
fi
# This depends on the possibly-skipped linker test above.
# This depends on GLIBCPP_CHECK_LINKER_FEATURES, but without it assumes no.
GLIBCPP_ENABLE_SYMVERS([yes])
# This depends on GLIBCPP_ENABLE_SYMVERS and GLIBCPP_IS_CROSS_COMPILING.
GLIBCPP_CONFIGURE_TESTSUITE
# Propagate the target-specific source directories through the build chain.
# (Nothing currently uses cpu_include_dir directly; only ATOMICITYH
# uses it, and it only gets used in this file.)
@ -447,15 +447,11 @@ ATOMICITY_INC_SRCDIR=config/${ATOMICITYH}
AC_SUBST(OS_INC_SRCDIR)
AC_SUBST(ATOMICITY_INC_SRCDIR)
# Set up cross-compile flags and all AM_CONDITIONALs.
# Determine cross-compile flags and all AM_CONDITIONALs.
AC_SUBST(GLIBCPP_IS_CROSS_COMPILING)
AM_CONDITIONAL(CANADIAN, test "$CANADIAN" = yes)
dnl from GLIBCPP_CHECK_COMPLEX_MATH_SUPPORT:
AM_CONDITIONAL(GLIBCPP_BUILD_LIBMATH, test "$need_libmath" = yes)
dnl from GLIBCPP_CHECK_WCHAR_T_SUPPORT:
AM_CONDITIONAL(GLIBCPP_TEST_WCHAR_T, test "$enable_wchar_t" = yes)
dnl from GLIBCPP_CONFIGURE_TESTSUITE:
AM_CONDITIONAL(GLIBCPP_BUILD_ABI_CHECK, test "$enable_abi_check" = yes)
AC_CACHE_SAVE

View File

@ -54,23 +54,67 @@ noinst_LIBRARIES = libv3test.a
libv3test_a_SOURCES = testsuite_hooks.cc testsuite_allocator.cc
## Build support utilities.
## Only build this as native, as need to find startup files and libc to link.
if GLIBCPP_BUILD_ABI_CHECK
if GLIBCPP_TEST_ABI
noinst_PROGRAMS = abi_check
else
noinst_PROGRAMS =
endif
abi_check_SOURCES = abi_check.cc
all-local: stamp_wchar
# Enable wchar_t tests if capable.
if GLIBCPP_TEST_WCHAR_T
all-local: stamp_wchar
else
all-local:
endif
stamp_wchar:
touch testsuite_wchar_t
else
stamp_wchar:
endif
# Override this so local rules are possible.
check-am:
$(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU; \
$(MAKE) $(AM_MAKEFLAGS) check-local
check-local: check-abi
baseline_file = @baseline_file@
extract_symvers = @glibcpp_srcdir@/config/abi/extract_symvers
current_symbols.txt: ${extract_symvers} ../src/.libs/libstdc++.so
-@(${extract_symvers} ../src/.libs/libstdc++.so current_symbols.txt)
baseline_symbols:
-@(output=${baseline_file}; \
if test ! -f $${output}; then \
echo "Baseline file doesn't exist."; \
echo "Try 'make new-abi-baseline' to create it."; \
exit 1; \
fi; \
touch baseline_symbols)
new-abi-baseline:
-@(output=${baseline_file}; \
if test -f $${output}; then \
output=$${output}.new; \
t=`echo $${output} | sed 's=.*config/abi/=='`; \
echo "Baseline file already exists, writing to $${t} instead."; \
fi; \
${extract_symvers} ../src/.libs/libstdc++.so $${output})
if GLIBCPP_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: abi_check baseline_symbols current_symbols.txt
-@(./abi_check --check ./current_symbols.txt ${baseline_file})
check-abi-verbose: abi_check baseline_symbols current_symbols.txt
-@(./abi_check --check-verbose ./current_symbols.txt ${baseline_file})
else
check-abi:
check-abi-verbose:
endif
# By adding these files here, automake will remove them for 'make clean'
CLEANFILES = *.txt *.tst *.exe core* filebuf_* tmp* ostream_* *.log *.sum \

View File

@ -120,7 +120,6 @@ USE_NLS = @USE_NLS@
VERSION = @VERSION@
WARN_FLAGS = @WARN_FLAGS@
WERROR = @WERROR@
baseline_file = @baseline_file@
check_msgfmt = @check_msgfmt@
enable_shared = @enable_shared@
enable_static = @enable_static@
@ -173,10 +172,13 @@ INCLUDES = \
noinst_LIBRARIES = libv3test.a
libv3test_a_SOURCES = testsuite_hooks.cc testsuite_allocator.cc
@GLIBCPP_BUILD_ABI_CHECK_TRUE@noinst_PROGRAMS = @GLIBCPP_BUILD_ABI_CHECK_TRUE@abi_check
@GLIBCPP_BUILD_ABI_CHECK_FALSE@noinst_PROGRAMS =
@GLIBCPP_TEST_ABI_TRUE@noinst_PROGRAMS = @GLIBCPP_TEST_ABI_TRUE@abi_check
@GLIBCPP_TEST_ABI_FALSE@noinst_PROGRAMS =
abi_check_SOURCES = abi_check.cc
baseline_file = @baseline_file@
extract_symvers = @glibcpp_srcdir@/config/abi/extract_symvers
# By adding these files here, automake will remove them for 'make clean'
CLEANFILES = *.txt *.tst *.exe core* filebuf_* tmp* ostream_* *.log *.sum \
testsuite_* site.exp abi_check
@ -194,7 +196,7 @@ LIBS = @LIBS@
libv3test_a_LIBADD =
libv3test_a_OBJECTS = testsuite_hooks.$(OBJEXT) \
testsuite_allocator.$(OBJEXT)
@GLIBCPP_BUILD_ABI_CHECK_FALSE@noinst_PROGRAMS =
@GLIBCPP_TEST_ABI_FALSE@noinst_PROGRAMS =
PROGRAMS = $(noinst_PROGRAMS)
abi_check_OBJECTS = abi_check.$(OBJEXT)
@ -386,7 +388,7 @@ info: info-am
dvi-am:
dvi: dvi-am
check-am:
$(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
$(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU check-local
check: check-am
installcheck-am:
installcheck: installcheck-am
@ -456,19 +458,58 @@ clean-libtool maintainer-clean-libtool mostlyclean-noinstPROGRAMS \
distclean-noinstPROGRAMS clean-noinstPROGRAMS \
maintainer-clean-noinstPROGRAMS tags mostlyclean-tags distclean-tags \
clean-tags maintainer-clean-tags distdir check-DEJAGNU info-am info \
dvi-am dvi check check-am installcheck-am installcheck install-info-am \
install-info install-exec-am install-exec install-data-am install-data \
install-am install uninstall-am uninstall all-local all-redirect all-am \
all installdirs mostlyclean-generic distclean-generic clean-generic \
maintainer-clean-generic clean mostlyclean distclean maintainer-clean
dvi-am dvi check-local check check-am installcheck-am installcheck \
install-info-am install-info install-exec-am install-exec \
install-data-am install-data install-am install uninstall-am uninstall \
all-local all-redirect all-am all installdirs mostlyclean-generic \
distclean-generic clean-generic maintainer-clean-generic clean \
mostlyclean distclean maintainer-clean
all-local: stamp_wchar
# Enable wchar_t tests if capable.
@GLIBCPP_TEST_WCHAR_T_TRUE@all-local: stamp_wchar
@GLIBCPP_TEST_WCHAR_T_FALSE@all-local:
@GLIBCPP_TEST_WCHAR_T_TRUE@stamp_wchar:
@GLIBCPP_TEST_WCHAR_T_TRUE@ touch testsuite_wchar_t
@GLIBCPP_TEST_WCHAR_T_FALSE@stamp_wchar:
stamp_wchar:
touch testsuite_wchar_t
# Override this so local rules are possible.
check-am:
$(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU; \
$(MAKE) $(AM_MAKEFLAGS) check-local
check-local: check-abi
current_symbols.txt: ${extract_symvers} ../src/.libs/libstdc++.so
-@(${extract_symvers} ../src/.libs/libstdc++.so current_symbols.txt)
baseline_symbols:
-@(output=${baseline_file}; \
if test ! -f $${output}; then \
echo "Baseline file doesn't exist."; \
echo "Try 'make new-abi-baseline' to create it."; \
exit 1; \
fi; \
touch baseline_symbols)
new-abi-baseline:
-@(output=${baseline_file}; \
if test -f $${output}; then \
output=$${output}.new; \
t=`echo $${output} | sed 's=.*config/abi/=='`; \
echo "Baseline file already exists, writing to $${t} instead."; \
fi; \
${extract_symvers} ../src/.libs/libstdc++.so $${output})
# Use 'new-abi-baseline' to create an initial symbol file. Then run
# 'check-abi' to test for changes against that file.
@GLIBCPP_TEST_ABI_TRUE@check-abi: abi_check baseline_symbols current_symbols.txt
@GLIBCPP_TEST_ABI_TRUE@ -@(./abi_check --check ./current_symbols.txt ${baseline_file})
@GLIBCPP_TEST_ABI_TRUE@check-abi-verbose: abi_check baseline_symbols current_symbols.txt
@GLIBCPP_TEST_ABI_TRUE@ -@(./abi_check --check-verbose ./current_symbols.txt ${baseline_file})
@GLIBCPP_TEST_ABI_FALSE@check-abi:
@GLIBCPP_TEST_ABI_FALSE@check-abi-verbose:
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.

View File

@ -313,17 +313,20 @@ main(int argc, char** argv)
using namespace std;
// Get arguments. (Heading towards getopt_long, I can feel it.)
string argv1;
if (argc < 4 || (string("--help") == (argv1 = argv[1])))
bool verbose = false;
string argv1 = argc > 1 ? argv[1] : "";
if (argv1 == "--help" || argc < 4)
{
cerr << "Usage: abi_check --check cur baseline\n"
" --help\n\n"
"Where CUR is a file containing the current results from\n"
cerr << "usage: abi_check --check current baseline\n"
" --check-verbose current baseline\n"
" --help\n\n"
"Where CURRENT is a file containing the current results from\n"
"extract_symvers, and BASELINE is one from config/abi.\n"
<< endl;
exit(1);
}
else if (argv1 == "--check-verbose")
verbose = true;
// Quick sanity/setup check for arguments.
const char* test_file = argv[2];
@ -412,21 +415,21 @@ main(int argc, char** argv)
}
// Report results.
if (added_names.size())
if (verbose && added_names.size())
{
cout << added_names.size() << " added symbols " << endl;
for (size_t j = 0; j < added_names.size() ; ++j)
report_symbol_info(test_symbols[added_names[j]], j + 1);
}
if (missing_names.size())
if (verbose && missing_names.size())
{
cout << missing_names.size() << " missing symbols " << endl;
for (size_t j = 0; j < missing_names.size() ; ++j)
report_symbol_info(baseline_symbols[missing_names[j]], j + 1);
}
if (incompatible.size ())
if (verbose && incompatible.size())
{
cout << incompatible.size() << " incompatible symbols " << endl;
for (size_t j = 0; j < incompatible.size() ; ++j)
@ -441,11 +444,13 @@ main(int argc, char** argv)
}
}
cout << "\n\t\t=== libstdc++-v3 check-abi Summary for " << baseline_file
<< " ===" << endl << endl;
cout << "\n\t\t=== libstdc++-v3 check-abi Summary ===" << endl;
cout << endl;
cout << "# of added symbols:\t\t " << added_names.size() << endl;
cout << "# of missing symbols:\t\t " << missing_names.size() << endl;
cout << "# of incompatible symbols:\t " << incompatible.size() << endl;
cout << endl;
cout << "using: " << baseline_file << endl;
return 0;
}