> 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