This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
32-bit buildbot builders broken [Re: Your commit 'Build GDB as a C++ program by default' broke GDB]
- From: Pedro Alves <palves at redhat dot com>
- To: sergiodj+buildbot at sergiodj dot net, "gdb at sourceware dot org" <gdb at sourceware dot org>, Sergio Durigan Junior <sergiodj at redhat dot com>
- Date: Thu, 21 Apr 2016 10:09:35 +0100
- Subject: 32-bit buildbot builders broken [Re: Your commit 'Build GDB as a C++ program by default' broke GDB]
- Authentication-results: sourceware.org; auth=none
- References: <E1at1Am-0004GM-6R at kwanyin dot sergiodj dot net>
On 04/21/2016 12:04 AM, sergiodj+buildbot@sergiodj.net 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