http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46272
Summary: [4.6 Regression]: libstdc++ fails to build due to atomic-constexpr-changes Product: gcc Version: 4.6.0 Status: UNCONFIRMED Keywords: build Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: h...@gcc.gnu.org CC: ja...@gcc.gnu.org, b...@gcc.gnu.org Host: x86_64-unknown-linux-gnu Target: cris-axis-elf With revision r166170 build worked. >From revision r166171 and on, build has failed as follows: make[4]: Entering directory `/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include' mkdir -p ./cris-elf/bits/stdc++.h.gch /tmp/hpautotest-gcc1/cris-elf/gccobj/./gcc/xgcc -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 -x c++-header -nostdinc++ -g -O2 -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++ -O2 -g -std=gnu++0x /tmp/hpautotest-gcc1/gcc/libstdc++-v3/include/precompiled/stdc++.h \ -o cris-elf/bits/stdc++.h.gch/O2ggnu++0x.gch In file included from /tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/atomic:42:0, from /tmp/hpautotest-gcc1/gcc/libstdc++-v3/include/precompiled/stdc++.h:99: /tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/bits/atomic_0.h: In member function 'bool std::__atomic0::__atomic_base<_IntTp>::compare_exchange_weak(std::__atomic0::__atomic_base<_IntTp>::__int_type&, std::__atomic0::__atomic_base<_IntTp>::__int_type, std::memory_order, std::memory_order) [with _ITp = bool, std::__atomic0::__atomic_base<_IntTp>::__int_type = bool, std::memory_order = std::memory_order]': /tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/atomic:111:66: instantiated from here /tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/bits/atomic_0.h:619:9: error: invalid use of const_cast with type '__i_type', which is not a pointer, reference, nor a pointer-to-data-member type /tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/bits/atomic_0.h: In member function 'bool std::__atomic0::__atomic_base<_IntTp>::compare_exchange_weak(std::__atomic0::__atomic_base<_IntTp>::__int_type&, std::__atomic0::__atomic_base<_IntTp>::__int_type, std::memory_order, std::memory_order) volatile [with _ITp = bool, std::__atomic0::__atomic_base<_IntTp>::__int_type = bool, std::memory_order = std::memory_order]': /tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/atomic:116:66: instantiated from here /tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/bits/atomic_0.h:629:9: error: invalid use of const_cast with type '__i_type', which is not a pointer, reference, nor a pointer-to-data-member type /tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/bits/atomic_0.h: In member function 'bool std::__atomic0::__atomic_base<_IntTp>::compare_exchange_strong(std::__atomic0::__atomic_base<_IntTp>::__int_type&, std::__atomic0::__atomic_base<_IntTp>::__int_type, std::memory_order, std::memory_order) [with _ITp = bool, std::__atomic0::__atomic_base<_IntTp>::__int_type = bool, std::memory_order = std::memory_order]': /tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/atomic:131:68: instantiated from here /tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/bits/atomic_0.h:655:9: error: invalid use of const_cast with type '__i_type', which is not a pointer, reference, nor a pointer-to-data-member type /tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/bits/atomic_0.h: In member function 'bool std::__atomic0::__atomic_base<_IntTp>::compare_exchange_strong(std::__atomic0::__atomic_base<_IntTp>::__int_type&, std::__atomic0::__atomic_base<_IntTp>::__int_type, std::memory_order, std::memory_order) volatile [with _ITp = bool, std::__atomic0::__atomic_base<_IntTp>::__int_type = bool, std::memory_order = std::memory_order]': /tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/atomic:136:68: instantiated from here /tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include/bits/atomic_0.h:665:9: error: invalid use of const_cast with type '__i_type', which is not a pointer, reference, nor a pointer-to-data-member type make[4]: *** [cris-elf/bits/stdc++.h.gch/O2ggnu++0x.gch] Error 1 make[4]: Leaving directory `/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3/include' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3' make[2]: *** [all] Error 2 make[2]: Leaving directory `/tmp/hpautotest-gcc1/cris-elf/gccobj/cris-elf/libstdc++-v3' make[1]: *** [all-target-libstdc++-v3] Error 2 make[1]: Leaving directory `/tmp/hpautotest-gcc1/cris-elf/gccobj' make: *** [all] Error 2 Note, cris-elf does not have any atomic builtins, so it "just" seems the fallbacks are not properly working. Author and committer of revision CC:ed.