Building GDB 7.10 from sources reveals:
# export CFLAGS="-mx32"
# export CXXFLAGS="-mx32"
# ./configure --prefix=/usr/local
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
...
# make
gcc -c -DHAVE_CONFIG_H -mx32 -I. -I./../include -W -Wall
-Wwrite-strings -Wc++-compat -Wstrict-prototypes -pedantic
-D_GNU_SOURCE ./getruntime.c -o getruntime.o
./getruntime.c: In function ‘get_run_time’:
./getruntime.c:98:14: warning: enum conversion when passing argument 1
of ‘getrusage’ is invalid in C++ [-Wc++-compat]
getrusage (0, &rusage);
^
In file included from ./getruntime.c:47:0:
/usr/include/x86_64-linux-gnux32/sys/resource.h:87:12: note: expected
‘__rusage_who_t {aka enum __rusage_who}’ but argument is of type ‘int’
extern int getrusage (__rusage_who_t __who, struct rusage *__usage) __THROW;
^