old-cross-binutils/gdb/nat
Yao Qi a0cc84cd15 aarch64 multi-arch (part 3): get thread area
With the kernle fix <http://lists.infradead.org/pipermail/linux-arm-kernel/2015-July/356511.html>,
aarch64 GDB is able to read the base of thread area of 32-bit arm
program through NT_ARM_TLS.

This patch is to teach both GDB and GDBserver to read the base of
thread area correctly in the multi-arch case.  A new function
aarch64_ps_get_thread_area is added, and is shared between GDB and
GDBserver.

With this patch applied, the following fails in multi-arch testing
(GDB is aarch64 but the test cases are arm) are fixed,

 -FAIL: gdb.threads/tls-nodebug.exp: thread local storage
 -FAIL: gdb.threads/tls-shared.exp: print thread local storage variable
 -FAIL: gdb.threads/tls-so_extern.exp: print thread local storage variable
 -FAIL: gdb.threads/tls-var.exp: print tls_var
 -FAIL: gdb.threads/tls.exp: first thread local storage
 -FAIL: gdb.threads/tls.exp: first another thread local storage
 -FAIL: gdb.threads/tls.exp: p a_thread_local
 -FAIL: gdb.threads/tls.exp: p file2_thread_local
 -FAIL: gdb.threads/tls.exp: p a_thread_local second time

gdb:

2015-09-18  Yao Qi  <yao.qi@linaro.org>

	* nat/aarch64-linux.c: Include elf/common.h,
	nat/gdb_ptrace.h, asm/ptrace.h and sys/uio.h.
	(aarch64_ps_get_thread_area): New function.
	* nat/aarch64-linux.h: Include gdb_proc_service.h.
	(aarch64_ps_get_thread_area): Declare.
	* aarch64-linux-nat.c (ps_get_thread_area): Call
	aarch64_ps_get_thread_area.

gdb/gdbserver:

2015-09-18  Yao Qi  <yao.qi@linaro.org>

	* linux-aarch64-low.c: Don't include sys/uio.h.
	(ps_get_thread_area): Call aarch64_ps_get_thread_area.
2015-09-18 13:59:42 +01:00
..
aarch64-linux-hw-point.c [aarch64] Check region OK for HW watchpoint in GDBserver 2015-09-03 14:01:49 +01:00
aarch64-linux-hw-point.h [aarch64] Check region OK for HW watchpoint in GDBserver 2015-09-03 14:01:49 +01:00
aarch64-linux.c aarch64 multi-arch (part 3): get thread area 2015-09-18 13:59:42 +01:00
aarch64-linux.h aarch64 multi-arch (part 3): get thread area 2015-09-18 13:59:42 +01:00
gdb_ptrace.h C++: handle glibc's ptrace(enum __ptrace_request, ...) 2015-07-24 15:12:15 +01:00
gdb_thread_db.h Protect nat/gdb_thread_db.h against multiple inclusion. 2015-08-05 16:30:57 +02:00
glibc_thread_db.h
linux-btrace.c btrace: kernel address filtering 2015-09-09 10:35:35 +02:00
linux-btrace.h btrace: kernel address filtering 2015-09-09 10:35:35 +02:00
linux-namespaces.c Fix stale cleanup left by linux_mntns_access_fs 2015-08-21 16:56:22 +01:00
linux-namespaces.h
linux-nat.h
linux-osdata.c Replace some xmalloc-family functions with XNEW-family ones 2015-08-26 17:18:12 -04:00
linux-osdata.h
linux-personality.c
linux-personality.h
linux-procfs.c
linux-procfs.h
linux-ptrace.c Extended-remote follow-exec 2015-09-11 11:12:46 -07:00
linux-ptrace.h Extended-remote follow-exec 2015-09-11 11:12:46 -07:00
linux-waitpid.c Fix gdbserver --debug issues caught by Valgrind 2015-08-06 13:32:27 +01:00
linux-waitpid.h
mips-linux-watch.c Mostly trivial enum fixes 2015-07-31 13:19:53 -04:00
mips-linux-watch.h Mostly trivial enum fixes 2015-07-31 13:19:53 -04:00
ppc-linux.c
ppc-linux.h
x86-cpuid.h
x86-dregs.c
x86-dregs.h
x86-gcc-cpuid.h
x86-linux-dregs.c Linux: sys/ptrace.h -> nat/gdb_ptrace.h everywhere 2015-07-24 15:14:47 +01:00
x86-linux-dregs.h
x86-linux.c
x86-linux.h