> From: Andrew MacLeod <amacl...@redhat.com>
> Date: Fri, 4 Nov 2011 00:50:47 +0100

> These are the changes to libstdc++ to make use of the new atomics.  I
> changed the files to use the new atomics, and bkoz did a shuffling of
> the include file layout to better suit the new c++ approach.
> 
> previously, libstdc++ provided a locked implementation in atomic_0.h
> with the theory that eventually it would be used.  The new scheme
> involves leaving non-lock-free implementations to an external library.
> This involved removing the old lock implementation and restructuring
> things now that multiple implementation dont have to be supported.   SO
> a lot fo this is churn... 2 include files deleted and one merged into
> another one..

This (formally a change in the range 181027:181034) got me three
libstdc++ regressions for cris-elf, which has no "atomic"
support whatsoever (well, not the version represented in
"cris-elf"), so something is amiss at the bottom of the default
path:

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)

And the linker message is:
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/test_and_set/explicit.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/hpaut
 otest-gcc1/cris-elf/gccobj/cris-elf/./newlib/ -L/tmp/hpautot!
 est-gcc1
/cris-elf/gccobj/cris-elf/./newlib -sim3  -lm   -o ./explicit.exe    (timeout = 
600)
/tmp/cc21Ui3S.o: In function `ZNSt11atomic_flag12test_and_setESt12memory_order':
/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/bits/atomic_base.h:264:
 undefined reference to `__atomic_exchange_1'
collect2: error: ld returned 1 exit status
compiler exited with status 1
output is:
/tmp/cc21Ui3S.o: In function `ZNSt11atomic_flag12test_and_setESt12memory_order':
/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/bits/atomic_base.h:264:
 undefined reference to `__atomic_exchange_1'
collect2: error: ld returned 1 exit status

brgds, H-P

Reply via email to