This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH v2 00/11] Support for thread-local variables on FreeBSD
- From: John Baldwin <jhb at FreeBSD dot org>
- To: gdb-patches at sourceware dot org
- Date: Fri, 8 Feb 2019 16:40:03 -0800
- Subject: [PATCH v2 00/11] Support for thread-local variables on FreeBSD
Relative to the first version the changes are:
- Patch 2 fixes some #ifdef's pointed by Simon in amd64-bsd-nat.c.
- Patch 3's description has been reworked to narrow down the cases in
which it applies.
- Patch 5 is a new cleanup patch
- Patch 6 is a new patch that introduces a new method to lookup the
offset of a field in a structure. It is slightly more general than
just returning offsets so that it can hopefully be used to replace
the lk_find_field function in the Linux kernel patchset.
- Patch 7 (formerly 5) now uses the new method from Patch 6 to lookup
the offsets of two fields in a runtime linker structure instead of
parse_and_eval_long with manual offsetof.
John Baldwin (11):
Support the fs_base and gs_base registers on i386.
Support fs_base and gs_base on FreeBSD/i386.
Handle an edge case for minisym TLS variable lookups.
Add a new gdbarch method to resolve the address of TLS variables.
Remove code disabled since at least 1999 from lookup_struct_elt_type.
Add a more general version of lookup_struct_elt_type.
Add a helper function to resolve TLS variable addresses for FreeBSD.
Support TLS variables on FreeBSD/amd64.
Support TLS variables on FreeBSD/i386.
Support TLS variables on FreeBSD/riscv.
Support TLS variables on FreeBSD/powerpc.
gdb/ChangeLog | 108 +++++++++++++++++++
gdb/amd64-bsd-nat.c | 26 +++--
gdb/amd64-fbsd-nat.c | 4 +-
gdb/amd64-fbsd-tdep.c | 25 +++++
gdb/amd64-tdep.c | 10 +-
gdb/arch/i386.c | 6 +-
gdb/arch/i386.h | 3 +-
gdb/fbsd-tdep.c | 153 +++++++++++++++++++++++++++
gdb/fbsd-tdep.h | 10 ++
gdb/features/i386/32bit-segments.c | 15 +++
gdb/features/i386/32bit-segments.xml | 12 +++
gdb/gdbarch.c | 32 ++++++
gdb/gdbarch.h | 6 ++
gdb/gdbarch.sh | 1 +
gdb/gdbserver/ChangeLog | 8 ++
gdb/gdbserver/linux-x86-tdesc.c | 2 +-
gdb/gdbserver/lynx-i386-low.c | 2 +-
gdb/gdbserver/nto-x86-low.c | 2 +-
gdb/gdbserver/win32-i386-low.c | 2 +-
gdb/gdbtypes.c | 73 +++++++------
gdb/gdbtypes.h | 19 ++++
gdb/i386-bsd-nat.c | 54 ++++++++++
gdb/i386-fbsd-nat.c | 2 +-
gdb/i386-fbsd-tdep.c | 31 +++++-
gdb/i386-go32-tdep.c | 2 +-
gdb/i386-linux-tdep.c | 2 +-
gdb/i386-tdep.c | 33 ++++--
gdb/i386-tdep.h | 12 ++-
gdb/ppc-fbsd-tdep.c | 35 ++++++
gdb/riscv-fbsd-tdep.c | 27 +++++
gdb/solib-svr4.c | 5 +
gdb/target.c | 13 ++-
32 files changed, 656 insertions(+), 79 deletions(-)
create mode 100644 gdb/features/i386/32bit-segments.c
create mode 100644 gdb/features/i386/32bit-segments.xml
--
2.19.2