This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
V3 PATCH: Fix PPC64 installation
- From: Mark Mitchell <mark at codesourcery dot com>
- To: gcc-patches at gcc dot gnu dot org, libstdc++ at gcc dot gnu dot org
- Date: Sun, 15 May 2005 09:54:21 -0700
- Subject: V3 PATCH: Fix PPC64 installation
- Reply-to: mark at codesourcery dot com
I installed this direct backport from mainline to the 4.0 branch to
fix problems Janis saw in "make install" for PPC64. I will also have
to backport the patch that Andreas recently kindly identified for 3.4
as fixing the overwriting of "make check" results with "make
check-abi" results.
--
Mark Mitchell
CodeSourcery, LLC
mark@codesourcery.com
2005-05-15 Mark Mitchell <mark@codesourcery.com>
Backport:
2005-04-04 Mark Mitchell <mark@codesourcery.com>
* testsuite/Makefile.am (check-local): Remove.
(curent_symbols.txt): Likewise.
(check-abi): Do not depend on current_symbols.txt.
* testsuite/Makefile.in: Regenerated.
* testsuite/libstdc++-abi/abi.exp: Build current_symbols.txt.
2005-04-01 Mark Mitchell <mark@codesourcery.com>
* testsuite/Makefile.am (noinst_PROGRAMS): Remove.
(site.exp): Write out the path to the baseline file.
(check-abi): Use DejaGNU.
(check-abi-verbose): Remove.
* testsuite/Makefile.in: Regenerated.
* testsuite/testsuite_abi.cc (compare_symbols): Return a value.
* testsuite/testsuite_abi.h (compare_symbols): Adjust prototype.
* testsuite/libstdc++-abi/abi.exp: New file.
Index: testsuite/Makefile.am
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/testsuite/Makefile.am,v
retrieving revision 1.42.6.1
diff -c -5 -p -r1.42.6.1 Makefile.am
*** testsuite/Makefile.am 9 May 2005 18:16:56 -0000 1.42.6.1
--- testsuite/Makefile.am 13 May 2005 00:46:29 -0000
*************** libv3test_a_SOURCES = \
*** 48,66 ****
testsuite_abi.cc \
testsuite_allocator.cc \
testsuite_character.cc \
testsuite_hooks.cc
- ## Build support utilities.
- if GLIBCXX_TEST_ABI
- noinst_PROGRAMS = abi_check
- else
- noinst_PROGRAMS =
- endif
- abi_check_SOURCES = testsuite_abi_check.cc
- abi_check_DEPENDENCIES = libv3test.a
-
all-local: stamp_wchar stamp_thread testsuite_files
# Enable wchar_t tests if capable.
if GLIBCXX_TEST_WCHAR_T
stamp_wchar:
--- 48,57 ----
*************** site.exp: Makefile
*** 106,132 ****
@echo 'set host_triplet $(host_triplet)' >>site.tmp
@echo 'set target_alias "$(target_alias)"' >>site.tmp
@echo 'set target_triplet $(target_triplet)' >>site.tmp
@echo 'set target_triplet $(target_triplet)' >>site.tmp
@echo 'set libiconv "$(LIBICONV)"' >>site.tmp
@echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp
@test ! -f site.exp || \
sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
@-rm -f site.bak
@test ! -f site.exp || mv site.exp site.bak
@mv site.tmp site.exp
- # This is automatically run after the generated check-DEJAGNU rule.
- check-local: check-abi
-
-
baseline_file = ${baseline_dir}/baseline_symbols.txt
extract_symvers = $(glibcxx_srcdir)/scripts/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."; \
--- 97,117 ----
@echo 'set host_triplet $(host_triplet)' >>site.tmp
@echo 'set target_alias "$(target_alias)"' >>site.tmp
@echo 'set target_triplet $(target_triplet)' >>site.tmp
@echo 'set target_triplet $(target_triplet)' >>site.tmp
@echo 'set libiconv "$(LIBICONV)"' >>site.tmp
+ @echo 'set baseline_file "$(baseline_file)"' >> site.tmp
@echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp
@test ! -f site.exp || \
sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
@-rm -f site.bak
@test ! -f site.exp || mv site.exp site.bak
@mv site.tmp site.exp
baseline_file = ${baseline_dir}/baseline_symbols.txt
extract_symvers = $(glibcxx_srcdir)/scripts/extract_symvers
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."; \
*************** new-abi-baseline:
*** 144,166 ****
${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: abi_check baseline_symbols current_symbols.txt
! -@./abi_check --check ./current_symbols.txt ${baseline_file} \
! 2>&1 | tee libstdc++-abi.sum
! -@cp libstdc++-abi.sum libstdc++-abi.log
!
! check-abi-verbose: abi_check baseline_symbols current_symbols.txt
! -@./abi_check --check-verbose ./current_symbols.txt ${baseline_file} \
! 2>&1 | tee libstdc++-abi.sum
! -@cp libstdc++-abi.sum libstdc++-abi.log
!
else
check-abi:
- check-abi-verbose:
endif
# Runs the testsuite, but in compile only mode.
# Can be used to test sources with non-GNU FE's at various warning
# levels and for checking compile time across releases.
--- 129,142 ----
${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 current_symbols.txt 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
# levels and for checking compile time across releases.
Index: testsuite/Makefile.in
===================================================================
RCS file: /cvs/gcc/gcc/libstdc++-v3/testsuite/Makefile.in,v
retrieving revision 1.88.6.1
diff -c -5 -p -r1.88.6.1 Makefile.in
*** testsuite/Makefile.in 9 May 2005 18:16:58 -0000 1.88.6.1
--- testsuite/Makefile.in 13 May 2005 00:46:29 -0000
***************
*** 1,6 ****
! # Makefile.in generated by automake 1.9.3 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
--- 1,6 ----
! # Makefile.in generated by automake 1.9.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
***************
*** 12,23 ****
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
!
! SOURCES = $(libv3test_a_SOURCES) $(abi_check_SOURCES)
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
--- 12,22 ----
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
! SOURCES = $(libv3test_a_SOURCES)
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
*************** POST_UNINSTALL = :
*** 40,50 ****
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(top_srcdir)/fragment.am
- @GLIBCXX_TEST_ABI_TRUE@noinst_PROGRAMS = abi_check$(EXEEXT)
subdir = testsuite
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/linkage.m4 \
$(top_srcdir)/../config/no-executables.m4 \
--- 39,48 ----
*************** libv3test_a_AR = $(AR) $(ARFLAGS)
*** 60,84 ****
libv3test_a_LIBADD =
am_libv3test_a_OBJECTS = testsuite_abi.$(OBJEXT) \
testsuite_allocator.$(OBJEXT) testsuite_character.$(OBJEXT) \
testsuite_hooks.$(OBJEXT)
libv3test_a_OBJECTS = $(am_libv3test_a_OBJECTS)
- PROGRAMS = $(noinst_PROGRAMS)
- am_abi_check_OBJECTS = testsuite_abi_check.$(OBJEXT)
- abi_check_OBJECTS = $(am_abi_check_OBJECTS)
- abi_check_LDADD = $(LDADD)
DEFAULT_INCLUDES =
depcomp =
am__depfiles_maybe =
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CXXFLAGS) $(CXXFLAGS)
CXXLD = $(CXX)
! SOURCES = $(libv3test_a_SOURCES) $(abi_check_SOURCES)
! DIST_SOURCES = $(libv3test_a_SOURCES) $(abi_check_SOURCES)
ETAGS = etags
CTAGS = ctags
DEJATOOL = $(PACKAGE)
RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir
EXPECT = expect
--- 58,78 ----
libv3test_a_LIBADD =
am_libv3test_a_OBJECTS = testsuite_abi.$(OBJEXT) \
testsuite_allocator.$(OBJEXT) testsuite_character.$(OBJEXT) \
testsuite_hooks.$(OBJEXT)
libv3test_a_OBJECTS = $(am_libv3test_a_OBJECTS)
DEFAULT_INCLUDES =
depcomp =
am__depfiles_maybe =
CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CXXFLAGS) $(CXXFLAGS)
CXXLD = $(CXX)
! SOURCES = $(libv3test_a_SOURCES)
! DIST_SOURCES = $(libv3test_a_SOURCES)
ETAGS = etags
CTAGS = ctags
DEJATOOL = $(PACKAGE)
RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir
EXPECT = expect
*************** libv3test_a_SOURCES = \
*** 284,295 ****
testsuite_abi.cc \
testsuite_allocator.cc \
testsuite_character.cc \
testsuite_hooks.cc
- abi_check_SOURCES = testsuite_abi_check.cc
- abi_check_DEPENDENCIES = libv3test.a
# Generated lists of files to run. All of these names are valid make
# targets, if you wish to generate a list manually.
lists_of_files = \
testsuite_files \
--- 278,287 ----
*************** clean-noinstLIBRARIES:
*** 354,373 ****
libv3test.a: $(libv3test_a_OBJECTS) $(libv3test_a_DEPENDENCIES)
-rm -f libv3test.a
$(libv3test_a_AR) libv3test.a $(libv3test_a_OBJECTS) $(libv3test_a_LIBADD)
$(RANLIB) libv3test.a
- clean-noinstPROGRAMS:
- @list='$(noinst_PROGRAMS)'; for p in $$list; do \
- f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f $$p $$f"; \
- rm -f $$p $$f ; \
- done
- abi_check$(EXEEXT): $(abi_check_OBJECTS) $(abi_check_DEPENDENCIES)
- @rm -f abi_check$(EXEEXT)
- $(CXXLINK) $(abi_check_LDFLAGS) $(abi_check_OBJECTS) $(abi_check_LDADD) $(LIBS)
-
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
--- 346,355 ----
*************** distdir: $(DISTFILES)
*** 483,495 ****
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
check-am: all-am
! $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU check-local
check: check-am
! all-am: Makefile $(LIBRARIES) $(PROGRAMS) all-local
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
--- 465,477 ----
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
check-am: all-am
! $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
check: check-am
! all-am: Makefile $(LIBRARIES) all-local
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
*************** maintainer-clean-generic:
*** 515,525 ****
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
! clean-noinstPROGRAMS mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-DEJAGNU distclean-compile \
distclean-generic distclean-libtool distclean-tags
--- 497,507 ----
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
! mostlyclean-am
distclean: distclean-am
-rm -f Makefile
distclean-am: clean-am distclean-DEJAGNU distclean-compile \
distclean-generic distclean-libtool distclean-tags
*************** ps: ps-am
*** 562,579 ****
ps-am:
uninstall-am: uninstall-info-am
.PHONY: CTAGS GTAGS all all-am all-local check check-DEJAGNU check-am \
! check-local clean clean-generic clean-libtool \
! clean-noinstLIBRARIES clean-noinstPROGRAMS ctags distclean \
! distclean-DEJAGNU distclean-compile distclean-generic \
! distclean-libtool distclean-tags distdir dvi dvi-am html \
! html-am info info-am install install-am install-data \
! install-data-am install-exec install-exec-am install-info \
! install-info-am install-man install-strip installcheck \
! installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-info-am
--- 544,560 ----
ps-am:
uninstall-am: uninstall-info-am
.PHONY: CTAGS GTAGS all all-am all-local check check-DEJAGNU check-am \
! clean clean-generic clean-libtool clean-noinstLIBRARIES ctags \
! distclean distclean-DEJAGNU distclean-compile \
! distclean-generic distclean-libtool distclean-tags distdir dvi \
! dvi-am html html-am info info-am install install-am \
! install-data install-data-am install-exec install-exec-am \
! install-info install-info-am install-man install-strip \
! installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-info-am
*************** site.exp: Makefile
*** 611,633 ****
@echo 'set host_triplet $(host_triplet)' >>site.tmp
@echo 'set target_alias "$(target_alias)"' >>site.tmp
@echo 'set target_triplet $(target_triplet)' >>site.tmp
@echo 'set target_triplet $(target_triplet)' >>site.tmp
@echo 'set libiconv "$(LIBICONV)"' >>site.tmp
@echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp
@test ! -f site.exp || \
sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
@-rm -f site.bak
@test ! -f site.exp || mv site.exp site.bak
@mv site.tmp site.exp
- # This is automatically run after the generated check-DEJAGNU rule.
- 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."; \
--- 592,609 ----
@echo 'set host_triplet $(host_triplet)' >>site.tmp
@echo 'set target_alias "$(target_alias)"' >>site.tmp
@echo 'set target_triplet $(target_triplet)' >>site.tmp
@echo 'set target_triplet $(target_triplet)' >>site.tmp
@echo 'set libiconv "$(LIBICONV)"' >>site.tmp
+ @echo 'set baseline_file "$(baseline_file)"' >> site.tmp
@echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp
@test ! -f site.exp || \
sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
@-rm -f site.bak
@test ! -f site.exp || mv site.exp site.bak
@mv site.tmp site.exp
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."; \
*************** new-abi-baseline:
*** 644,665 ****
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.
! @GLIBCXX_TEST_ABI_TRUE@check-abi: abi_check baseline_symbols current_symbols.txt
! @GLIBCXX_TEST_ABI_TRUE@ -@./abi_check --check ./current_symbols.txt ${baseline_file} \
! @GLIBCXX_TEST_ABI_TRUE@ 2>&1 | tee libstdc++-abi.sum
! @GLIBCXX_TEST_ABI_TRUE@ -@cp libstdc++-abi.sum libstdc++-abi.log
!
! @GLIBCXX_TEST_ABI_TRUE@check-abi-verbose: abi_check baseline_symbols current_symbols.txt
! @GLIBCXX_TEST_ABI_TRUE@ -@./abi_check --check-verbose ./current_symbols.txt ${baseline_file} \
! @GLIBCXX_TEST_ABI_TRUE@ 2>&1 | tee libstdc++-abi.sum
! @GLIBCXX_TEST_ABI_TRUE@ -@cp libstdc++-abi.sum libstdc++-abi.log
!
@GLIBCXX_TEST_ABI_FALSE@check-abi:
- @GLIBCXX_TEST_ABI_FALSE@check-abi-verbose:
check-compile: testsuite_files ${compile_script}
-@(chmod + ${compile_script}; \
${compile_script} ${glibcxx_srcdir} ${glibcxx_builddir})
check-performance: testsuite_files_performance ${performance_script}
-@(chmod + ${performance_script}; \
--- 620,632 ----
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.
! @GLIBCXX_TEST_ABI_TRUE@check-abi: baseline_symbols current_symbols.txt site.exp
! @GLIBCXX_TEST_ABI_TRUE@ -@runtest --tool libstdc++ abi.exp
@GLIBCXX_TEST_ABI_FALSE@check-abi:
check-compile: testsuite_files ${compile_script}
-@(chmod + ${compile_script}; \
${compile_script} ${glibcxx_srcdir} ${glibcxx_builddir})
check-performance: testsuite_files_performance ${performance_script}
-@(chmod + ${performance_script}; \
Index: testsuite/libstdc++-abi/abi.exp
===================================================================
RCS file: testsuite/libstdc++-abi/abi.exp
diff -N testsuite/libstdc++-abi/abi.exp
*** /dev/null 1 Jan 1970 00:00:00 -0000
--- testsuite/libstdc++-abi/abi.exp 13 May 2005 00:46:30 -0000
***************
*** 0 ****
--- 1,43 ----
+ # Copyright (C) 2005 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 of the License, 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 02111-1307, USA.
+
+ # If there is no baseline file, or we can't find the library, skip
+ # this test.
+ if { ![info exists baseline_file] \
+ || ![file exists $baseline_file] \
+ || ![file exists "../src/.libs/libstdc++.so"] } {
+ return
+ }
+
+ # Figure out what symbols are defined by the active build of the library.
+ 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"]] != "" } {
+ error "could not compile testsuite_abi_check.cc"
+ }
+
+ remote_download "target" $baseline_file "baseline_symbols.txt"
+ remote_download "target" "current_symbols.txt" "current_symbols.txt"
+ set result [${tool}_load "./abi_check" \
+ [list "--check-verbose" "current_symbols.txt" \
+ "baseline_symbols.txt"]]
+ [lindex $result 0] "abi_check"