------- Additional Comments From mark at codesourcery dot com 2005-05-13 01:01 ------- Subject: Re: [4.0 Regression] 3.4.4 RC1 fails libstdc++ install on powerpc64-linux
mmitchel at gcc dot gnu dot org wrote: > ------- Additional Comments From mmitchel at gcc dot gnu dot org 2005-05-13 > 00:57 ------- > Fixed in 3.4.4. Janis, if you would be so kind as to test again, here is a proposed patch for 4.0. Thanks, 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 ! [EMAIL PROTECTED]/abi_check --check ./current_symbols.txt ${baseline_file} \ ! 2>&1 | tee libstdc++-abi.sum ! [EMAIL PROTECTED] libstdc++-abi.sum libstdc++-abi.log ! ! check-abi-verbose: abi_check baseline_symbols current_symbols.txt ! [EMAIL PROTECTED]/abi_check --check-verbose ./current_symbols.txt ${baseline_file} \ ! 2>&1 | tee libstdc++-abi.sum ! [EMAIL PROTECTED] 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 ! [EMAIL PROTECTED] --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 - @[EMAIL PROTECTED] = 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. ! @[EMAIL PROTECTED]: abi_check baseline_symbols current_symbols.txt ! @GLIBCXX_TEST_ABI_TRUE@ [EMAIL PROTECTED]/abi_check --check ./current_symbols.txt ${baseline_file} \ ! @GLIBCXX_TEST_ABI_TRUE@ 2>&1 | tee libstdc++-abi.sum ! @GLIBCXX_TEST_ABI_TRUE@ [EMAIL PROTECTED] libstdc++-abi.sum libstdc++-abi.log ! ! @[EMAIL PROTECTED]: abi_check baseline_symbols current_symbols.txt ! @GLIBCXX_TEST_ABI_TRUE@ [EMAIL PROTECTED]/abi_check --check-verbose ./current_symbols.txt ${baseline_file} \ ! @GLIBCXX_TEST_ABI_TRUE@ 2>&1 | tee libstdc++-abi.sum ! @GLIBCXX_TEST_ABI_TRUE@ [EMAIL PROTECTED] libstdc++-abi.sum libstdc++-abi.log ! @[EMAIL PROTECTED]: - @[EMAIL PROTECTED]: 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. ! @[EMAIL PROTECTED]: baseline_symbols current_symbols.txt site.exp ! @GLIBCXX_TEST_ABI_TRUE@ [EMAIL PROTECTED] --tool libstdc++ abi.exp @[EMAIL PROTECTED]: 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" -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21523