Attempting to build gdbserver with our copy of thread_db.h yields:
In file included from ../../../src/gdb/gdbserver/../common/gdb_thread_db.h:4:0,
from ../../../src/gdb/gdbserver/thread-db.c:30:
../../../src/gdb/gdbserver/../common/glibc_thread_db.h:108:3: error: unknown type name ‘uint32_t’
In file included from ../../../src/gdb/gdbserver/../common/gdb_thread_db.h:4:0,
from ../../../src/gdb/gdbserver/thread-db.c:30:
../../../src/gdb/gdbserver/../common/glibc_thread_db.h:199:5: error: unknown type name ‘uintptr_t’
../../../src/gdb/gdbserver/../common/glibc_thread_db.h:269:3: error: unknown type name ‘intptr_t’
../../../src/gdb/gdbserver/../common/glibc_thread_db.h:270:3: error: unknown type name ‘intptr_t’
We used to have a workaround for this, but the patch to import
gnulib's stdint.h removed it:
http://www.sourceware.org/ml/gdb-patches/2008-06/msg00050.html
and defs.h made to always include stdint.h. However, gdbserver
doesn't include stdint.h in its equivalent server.h.
Rather than working around the issue, I've imported a more recent
version from glibc, which itself includes <stdint.h>. Other than
copyright years and FSF snail mail address, the file hasn't been
touched since 2003 in glibc. AFAICS, our version was updated last in
2000-09-03.
A note on the apparent license change: before the previous patch, this
file's contents were part of gdb_thread_db.h, and we can see that its
license's text was changed in this patch
<http://sourceware.org/ml/gdb-patches/2009-03/msg00251.html>. That
was certainly just an easy to overlook grep/sed mistake that fell
through the cracks.
gdb/common/
2013-04-16 Pedro Alves <palves@redhat.com>
* glibc_thread_db.h: Update from upstream glibc
(git 568035b7874a099087b77f7bba3e36a1173787b0).
Having this on a separate file makes it easier to import a new version
-- one can just copy over instead of having to care about preserving
the GDB-specific bits.
2013-04-16 Pedro Alves <palves@redhat.com>
* common/gdb_thread_db.h [!HAVE_THREAD_DB_H]: Factor out to ...
* common/glibc_thread_db.h: ... this new file ...
* common/gdb_thread_db.h [!HAVE_THREAD_DB_H]: ... and include it.