h8300-elf build broken
DJ Delorie
dj@redhat.com
Tue May 8 22:14:00 GMT 2012
I assume this is a size_t vs int type problem, but the diagnostic
points to the function declaration, not to an actual binary
expression, and I can't figure out what it's complaining about:
/greed/dj/m32c/gcc/h8300-elf/./gcc/xgcc -shared-libgcc -B/greed/dj/m32c/gcc/h8300-elf/./gcc -nostdinc++ -L/greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/src -L/greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/src/.libs -B/greed/dj/m32c/install/h8300-elf/bin/ -B/greed/dj/m32c/install/h8300-elf/lib/ -isystem /greed/dj/m32c/install/h8300-elf/include -isystem /greed/dj/m32c/install/h8300-elf/sys-include -mh -mn -mint32 -x c++-header -nostdinc++ -g -O2 -I/greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include/h8300-elf -I/greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include -I/greed/dj/m32c/gcc/gcc/libstdc++-v3/libsupc++ -O2 -g -std=gnu++0x /greed/dj/m32c/gcc/gcc/libstdc++-v3/include/precompiled/stdc++.h \
-o h8300-elf/bits/stdc++.h.gch/O2ggnu++0x.gch
In file included from /greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include/vector:70:0,
from /greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include/bits/random.h:34,
from /greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include/random:50,
from /greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include/bits/stl_algo.h:67,
from /greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include/algorithm:63,
from /greed/dj/m32c/gcc/gcc/libstdc++-v3/include/precompiled/stdc++.h:65:
/greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include/bits/vector.tcc: In member function 'void std::vector<_Tp, _Alloc>::_M_emplace_back_aux(_Args&& ...) [with _Args = {const int&}; _Tp = int; _Alloc = std::allocator<int>]':
/greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include/bits/vector.tcc:397:7: error: type mismatch in binary expression
vector<_Tp, _Alloc>::
^
/greed/dj/m32c/gcc/h8300-elf/h8300-elf/h8300h/normal/int32/libstdc++-v3/include/bits/vector.tcc:397:7: internal compiler error: verify_gimple failed
vector<_Tp, _Alloc>::
^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make: *** [h8300-elf/bits/stdc++.h.gch/O2ggnu++0x.gch] Error 1
Note: my current patchset is:
Index: libstdc++-v3/include/std/bitset
===================================================================
--- libstdc++-v3/include/std/bitset (revision 186562)
+++ libstdc++-v3/include/std/bitset (working copy)
@@ -1374,13 +1374,13 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
void
bitset<_Nb>::
_M_copy_from_ptr(const _CharT* __s, size_t __len,
size_t __pos, size_t __n, _CharT __zero, _CharT __one)
{
reset();
- const size_t __nbits = std::min(_Nb, std::min(__n, __len - __pos));
+ const size_t __nbits = std::min(_Nb, std::min(__n, (size_t)(__len - __pos)));
for (size_t __i = __nbits; __i > 0; --__i)
{
const _CharT __c = __s[__pos + __nbits - __i];
if (_Traits::eq(__c, __zero))
;
else if (_Traits::eq(__c, __one))
Index: libstdc++-v3/include/bits/random.tcc
===================================================================
--- libstdc++-v3/include/bits/random.tcc (revision 186562)
+++ libstdc++-v3/include/bits/random.tcc (working copy)
@@ -2786,13 +2786,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
: (__n >= 68) ? 7
: (__n >= 39) ? 5
: (__n >= 7) ? 3
: (__n - 1) / 2;
const size_t __p = (__n - __t) / 2;
const size_t __q = __p + __t;
- const size_t __m = std::max(__s + 1, __n);
+ const size_t __m = std::max((size_t)(__s + 1), __n);
for (size_t __k = 0; __k < __m; ++__k)
{
_Type __arg = (__begin[__k % __n]
^ __begin[(__k + __p) % __n]
^ __begin[(__k - 1) % __n]);
Index: gcc/config/h8300/h8300.h
===================================================================
--- gcc/config/h8300/h8300.h (revision 186534)
+++ gcc/config/h8300/h8300.h (working copy)
@@ -126,12 +126,13 @@ extern const char * const *h8_reg_names;
/* The return address is pushed on the stack. */
#define INCOMING_RETURN_ADDR_RTX gen_rtx_MEM (Pmode, gen_rtx_REG (Pmode, STACK_POINTER_REGNUM))
#define INCOMING_FRAME_SP_OFFSET (POINTER_SIZE / 8)
#define DWARF_CIE_DATA_ALIGNMENT 2
+#define DWARF2_ADDR_SIZE 4
/* Define this if addresses of constant functions
shouldn't be put through pseudo regs where they can be cse'd.
Desirable on machines where ordinary constants are expensive
but a CALL with constant address is cheap.
More information about the Gcc
mailing list