a0cc84cd15
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. |
||
---|---|---|
.. | ||
aarch64-linux-hw-point.c | ||
aarch64-linux-hw-point.h | ||
aarch64-linux.c | ||
aarch64-linux.h | ||
gdb_ptrace.h | ||
gdb_thread_db.h | ||
glibc_thread_db.h | ||
linux-btrace.c | ||
linux-btrace.h | ||
linux-namespaces.c | ||
linux-namespaces.h | ||
linux-nat.h | ||
linux-osdata.c | ||
linux-osdata.h | ||
linux-personality.c | ||
linux-personality.h | ||
linux-procfs.c | ||
linux-procfs.h | ||
linux-ptrace.c | ||
linux-ptrace.h | ||
linux-waitpid.c | ||
linux-waitpid.h | ||
mips-linux-watch.c | ||
mips-linux-watch.h | ||
ppc-linux.c | ||
ppc-linux.h | ||
x86-cpuid.h | ||
x86-dregs.c | ||
x86-dregs.h | ||
x86-gcc-cpuid.h | ||
x86-linux-dregs.c | ||
x86-linux-dregs.h | ||
x86-linux.c | ||
x86-linux.h |