Bug 66829 - [6 Regression] FAIL: 23_containers/multiset/modifiers/erase/dr130-linkage-check.cc
Summary: [6 Regression] FAIL: 23_containers/multiset/modifiers/erase/dr130-linkage-che...
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: libstdc++ (show other bugs)
Version: 6.0
: P3 normal
Target Milestone: 6.0
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-07-10 11:26 UTC by H.J. Lu
Modified: 2015-07-29 14:57 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2015-07-10 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description H.J. Lu 2015-07-10 11:26:40 UTC
r225272 caused:

spawn -ignore SIGHUP /export/build/gnu/gcc-32bit/build-i686-linux/./gcc/xg++ -shared-libgcc -B/export/build/gnu/gcc-32bit/build-i686-linux/./gcc -nostdinc++ -L/export/build/gnu/gcc-32bit/build-i686-linux/i686-linux/libstdc++-v3/src -L/export/build/gnu/gcc-32bit/build-i686-linux/i686-linux/libstdc++-v3/src/.libs -L/export/build/gnu/gcc-32bit/build-i686-linux/i686-linux/libstdc++-v3/libsupc++/.libs -B/usr/gcc-6.0.0/i686-linux/bin/ -B/usr/gcc-6.0.0/i686-linux/lib/ -isystem /usr/gcc-6.0.0/i686-linux/include -isystem /usr/gcc-6.0.0/i686-linux/sys-include -B/export/build/gnu/gcc-32bit/build-i686-linux/i686-linux/./libstdc++-v3/src/.libs -D_GLIBCXX_ASSERT -fmessage-length=0 -ffunction-sections -fdata-sections -g -O2 -D_GNU_SOURCE -DLOCALEDIR="." -nostdinc++ -I/export/build/gnu/gcc-32bit/build-i686-linux/i686-linux/libstdc++-v3/include/i686-linux -I/export/build/gnu/gcc-32bit/build-i686-linux/i686-linux/libstdc++-v3/include -I/export/gnu/import/git/sources/gcc/libstdc++-v3/libsupc++ -I/export/gnu/import/git/sources/gcc/libstdc++-v3/include/backward -I/export/gnu/import/git/sources/gcc/libstdc++-v3/testsuite/util /export/gnu/import/git/sources/gcc/libstdc++-v3/testsuite/23_containers/multiset/modifiers/erase/dr130-linkage-check.cc -fno-inline -std=gnu++11 ./testsuite_shared.so ./libtestc++.a -Wl,--gc-sections -L/export/build/gnu/gcc-32bit/build-i686-linux/i686-linux/libstdc++-v3/src/filesystem/.libs -lm -o ./dr130-linkage-check.exe
/tmp/ccJO7g8A.o: In function `void __gnu_test::linkage_check_cxx98_cxx11_erase<std::multiset<int, std::less<int>, std::allocator<int> > >(std::multiset<int, std::less<int>, std::allocator<int> >&)':
/export/gnu/import/git/sources/gcc/libstdc++-v3/testsuite/util/testsuite_containers.h:261: undefined reference to `__gnu_test::erase_external(std::multiset<int, std::less<int>, std::allocator<int> >&)'
/tmp/ccJO7g8A.o: In function `void __gnu_test::linkage_check_cxx98_cxx11_erase_iterators<std::multiset<int, std::less<int>, std::allocator<int> > >(std::multiset<int, std::less<int>, std::allocator<int> >&)':
/export/gnu/import/git/sources/gcc/libstdc++-v3/testsuite/util/testsuite_containers.h:272: undefined reference to `__gnu_test::erase_external_iterators(std::multiset<int, std::less<int>, std::allocator<int> >&)'
collect2: error: ld returned 1 exit status
compiler exited with status 1
output is:
/tmp/ccJO7g8A.o: In function `void __gnu_test::linkage_check_cxx98_cxx11_erase<std::multiset<int, std::less<int>, std::allocator<int> > >(std::multiset<int, std::less<int>, std::allocator<int> >&)':
/export/gnu/import/git/sources/gcc/libstdc++-v3/testsuite/util/testsuite_containers.h:261: undefined reference to `__gnu_test::erase_external(std::multiset<int, std::less<int>, std::allocator<int> >&)'
/tmp/ccJO7g8A.o: In function `void __gnu_test::linkage_check_cxx98_cxx11_erase_iterators<std::multiset<int, std::less<int>, std::allocator<int> > >(std::multiset<int, std::less<int>, std::allocator<int> >&)':
/export/gnu/import/git/sources/gcc/libstdc++-v3/testsuite/util/testsuite_containers.h:272: undefined reference to `__gnu_test::erase_external_iterators(std::multiset<int, std::less<int>, std::allocator<int> >&)'
collect2: error: ld returned 1 exit status

FAIL: 23_containers/multiset/modifiers/erase/dr130-linkage-check.cc (test for excess errors)

Should this test be updated since we default to C++14 now?
Comment 1 Richard Biener 2015-07-10 11:56:36 UTC
Confirmed.
Comment 2 Jonathan Wakely 2015-07-13 13:21:29 UTC
We either need to change how we build testsuite_shared.cc, or change what goes into it.

--- a/libstdc++-v3/testsuite/lib/libstdc++.exp
+++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
@@ -668,7 +668,7 @@ proc v3-build_support { } {
            # Compile with "-w" so that warnings issued by the compiler
            # do not prevent compilation.
            if { [v3_target_compile $srcdir/util/$f $object_file "sharedlib" \
-            [list "incdir=$srcdir" "additional_flags=-fno-inline -w -shared -fPIC -DPIC"]]
+            [list "incdir=$srcdir" "additional_flags=-fno-inline -w -shared -fPIC -DPIC -std=gnu++98"]]
                 != "" } {
                error "could not compile $f"
            }
Comment 3 Jonathan Wakely 2015-07-29 14:56:43 UTC
Author: redi
Date: Wed Jul 29 14:56:11 2015
New Revision: 226354

URL: https://gcc.gnu.org/viewcvs?rev=226354&root=gcc&view=rev
Log:
	PR libstdc++/66829
	* testsuite/lib/libstdc++.exp (v3-build_support): Compile
	testsuite_shared.cc with -std=gnu++98.

Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/testsuite/lib/libstdc++.exp
Comment 4 Jonathan Wakely 2015-07-29 14:57:24 UTC
fixed