32-bit buildbot builders broken [Re: Your commit 'Build GDB as a C++ program by default' broke GDB]
Pedro Alves <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
On 04/21/2016 12:04 AM, [email protected] wrote: > Hello there, > > Your commit: > > Build GDB as a C++ program by default > a23585089d7ba710b238d3d1ab3d34320afa48d0 > > broke GDB. Please fix it, or the GDB gods will get you. > > Full Build URL: > <http://gdb-build.sergiodj.net/builders/Fedora-i686/builds/3465> > This is "Fedora-i686", a 32-bit builder. > > g++ -g -O2 -I. -I../../binutils-gdb/gdb -I../../binutils-gdb/gdb/common > -I../../binutils-gdb/gdb/config ... > -I../../binutils-gdb/gdb/../libdecnumber -I../../binutils-gdb/gdb/gnulib/import -Ibuild-gnulib/import -DTUI=1 -I/usr/include/python2.7 -I/usr/include/python2.7 -Wall -Wpointer-arith -Wno-unused -Wunused-value -Wunused-function -Wno-switch -Wno-char-subscripts -Wempty-body -Wno-sign-compare -Wno-write-strings -Wno-narrowing -Wformat-nonliteral -Werror -c -o linux-thread-db.o -MT linux-thread-db.o -MMD -MP -MF .deps/linux-thread-db.Tpo ../../binutils-gdb/gdb/linux-thread-db.c > In file included from ../../binutils-gdb/gdb/i386-linux-nat.c:25:0: > ../../binutils-gdb/gdb/i386-linux-nat.c: In function void fetch_regs(regcache*, int): > ../../binutils-gdb/gdb/i386-linux-nat.c:207:46: error: cast from elf_greg_t (*)[27] {aka long long unsigned int (*)[27]} to int loses precision [-fpermissive] > if (ptrace (PTRACE_GETREGS, tid, 0, (int) ®s) < 0) ... however this error is exactly what you get if you compile with a 64-bit compiler, and forget to pass -m32 to gcc/g++. IOW, it compiles i386-linux-nat.c as if for a 64-bit host, which fails. So I suspect the builder is using CC="gcc -m32", and now that a C++ compiler is involved, it needs to be updated to pass CXX="g++ -m32" as well. Thanks, Pedro Alves