This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug regression/51038] New: [4.7 Regression]: 29_atomics/atomic_flag/clear/1.cc test_and_set/explicit.cc implicit.cc
- From: "hp at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 08 Nov 2011 19:48:04 +0000
- Subject: [Bug regression/51038] New: [4.7 Regression]: 29_atomics/atomic_flag/clear/1.cc test_and_set/explicit.cc implicit.cc
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51038
Bug #: 51038
Summary: [4.7 Regression]: 29_atomics/atomic_flag/clear/1.cc
test_and_set/explicit.cc implicit.cc
Classification: Unclassified
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Keywords: link-failure, wrong-code
Severity: normal
Priority: P3
Component: regression
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: hp@gcc.gnu.org
CC: amacleod@redhat.com
Host: x86_64-unknown-linux-gnu
Target: cris-axis-elf
These tests previously passed, now they fail.
Apparently the "cxx-mem-model merge [6 of 9]" (formally a change in the range
181027:181034) exposed or caused these regressions. Since then they fail as
follows:
Running
/tmp/hpautotest-gcc1/gcc/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp
...
...
FAIL: 29_atomics/atomic_flag/clear/1.cc (test for excess errors)
WARNING: 29_atomics/atomic_flag/clear/1.cc compilation failed to produce
executable
FAIL: 29_atomics/atomic_flag/test_and_set/explicit.cc (test for excess errors)
WARNING: 29_atomics/atomic_flag/test_and_set/explicit.cc compilation failed to
produce executable
FAIL: 29_atomics/atomic_flag/test_and_set/implicit.cc (test for excess errors)
The messages in libstdc++.log are similar, but have changed since the above. At
r181162 they are as follows:
Executing on host: /tmp/hpautotest-gcc1/cris-elf/gccobj/./gcc/g++
-shared-libgcc -B/tmp/hpautotest-gcc1/cris-elf/gccobj/./gcc -nostdinc++
-L/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/src
-L/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/src/.libs
-nostdinc -B/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/newlib/ -isystem
/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/newlib/targ-include -isystem
/tmp/hpautotest-gcc1/gcc/newlib/libc/include
-B/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libgloss/cris
-L/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libgloss/libnosys
-L/tmp/hpautotest-gcc1/gcc/libgloss/cris
-B/tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/bin/
-B/tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/lib/ -isystem
/tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/include -isystem
/tmp/hpautotest-gcc1/cris-elf/pre/cris-elf/sys-include
-B/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/./libgloss/cris/
-L/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/./libgloss/cris
-L/tmp/hpautotest-gcc1/gcc/libgloss/cris
-B/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/./libstdc++-v3/src/.libs -g -O2
-D_GLIBCXX_ASSERT -fmessage-length=0 -ffunction-sections -fdata-sections -g -O2
-g -O2 -DLOCALEDIR="." -nostdinc++
-I/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/cris-elf
-I/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include
-I/tmp/hpautotest-gcc1/gcc/libstdc++-v3/libsupc++
-I/tmp/hpautotest-gcc1/gcc/libstdc++-v3/include/backward
-I/tmp/hpautotest-gcc1/gcc/libstdc++-v3/testsuite/util
/tmp/hpautotest-gcc1/gcc/libstdc++-v3/testsuite/29_atomics/atomic_flag/clear/1.cc
-std=gnu++0x ./libtestc++.a -isystem
/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/./newlib/targ-include -isystem
/tmp/hpautotest-gcc1/gcc/newlib/libc/include
-B/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/./libgloss/cris/
-L/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/./libgloss/cris
-L/tmp/hpautotest-gcc1/gcc/libgloss/cris
-B/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/./newlib/
-L/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/./newlib -sim3 -lm -o
./1.exe (timeout = 600)
/tmp/ccX4JE6W.o: In function `ZNSt11atomic_flag5clearESt12memory_order':
/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/bits/atomic_base.h:311:
undefined reference to `std::atomic_thread_fence(std::memory_order)'
/tmp/ccX4JE6W.o: In function
`ZNSt11atomic_flag12test_and_setESt12memory_order':
/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/bits/atomic_base.h:274:
undefined reference to `__sync_lock_test_and_set_1'
collect2: error: ld returned 1 exit status
compiler exited with status 1
output is:
/tmp/ccX4JE6W.o: In function `ZNSt11atomic_flag5clearESt12memory_order':
/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/bits/atomic_base.h:311:
undefined reference to `std::atomic_thread_fence(std::memory_order)'
/tmp/ccX4JE6W.o: In function
`ZNSt11atomic_flag12test_and_setESt12memory_order':
/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/bits/atomic_base.h:274:
undefined reference to `__sync_lock_test_and_set_1'
collect2: error: ld returned 1 exit status
with the 29_atomics/atomic_flag/test_and_set/explicit.cc test only having the
last undefined reference.
Author of the suspect patches in the revision range CC:ed.
cris-elf does not have any back-end atomicity support patterns specified,
there's just the libstdc++-v3/config/cpu/cris atomicity header files,
apparently obsoleted by the cxx-mem-model merge.