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.

Reply via email to