diff options
author | Yao Qi <yao@codesourcery.com> | 2014-11-28 09:18:26 +0800 |
---|---|---|
committer | Yao Qi <yao@codesourcery.com> | 2015-01-14 22:28:27 +0800 |
commit | cdf436294f7e0e3bd7668a81dfd5922fdd1aec14 (patch) | |
tree | 2a803f3df75a4a250135628b55022d2ff0d542be /gdb/configure | |
parent | Move some ppc macros to nat/ppc-linux.h (diff) | |
download | binutils-gdb-cdf436294f7e0e3bd7668a81dfd5922fdd1aec14.tar.gz binutils-gdb-cdf436294f7e0e3bd7668a81dfd5922fdd1aec14.tar.bz2 binutils-gdb-cdf436294f7e0e3bd7668a81dfd5922fdd1aec14.zip |
Detect 64-bit-ness in PowerPC Book III-E
This patch is to teach both GDB and GDBServer to detect 64-bit inferior
correctly. We find a problem that GDBServer is unable to detect on a
e5500 core processor. Current GDBServer assumes that MSR is a 64-bit
register, but MSR is a 32-bit register in Book III-E. This patch is
to fix this problem by checking the right bit in MSR, in order to handle
both Book III-S and Book III-E. In order to detect Book III-S and
Book III-E, we check the PPC_FEATURE_BOOKE from the host's HWCAP (by
getauxval on glibc >= 2.16. If getauxval doesn't exist, we implement
the fallback by parsing /proc/self/auxv), because it should an invariant
on the same machine cross different processes.
In order to share code, I add nat/ppc-linux.c for both GDB and
GDBserver side.
gdb:
2015-01-14 Yao Qi <yao@codesourcery.com>
* Makefile.in (ppc-linux.o): New rule.
* config/powerpc/ppc64-linux.mh (NATDEPFILES): Add ppc-linux.o.
* configure.ac: AC_CHECK_FUNCS(getauxval).
* config.in: Re-generated.
* configure: Re-generated.
* nat/ppc-linux.h [__powerpc64__] (ppc64_64bit_inferior_p):
Declare.
* nat/ppc-linux.c: New file.
* ppc-linux-nat.c (ppc_linux_target_wordsize) [__powerpc64__]:
Call ppc64_64bit_inferior_p.
gdb/gdbserver:
2015-01-14 Yao Qi <yao@codesourcery.com>
* Makefile.in (SFILES): Add nat/ppc-linux.c.
(ppc-linux.o): New rule.
* configure.srv (powerpc*-*-linux*): Add ppc-linux.o.
* configure.ac: AC_CHECK_FUNCS(getauxval).
* config.in: Re-generated.
* configure: Re-generated.
* linux-ppc-low.c (ppc_arch_setup) [__powerpc64__]: Call
ppc64_64bit_inferior_p
Diffstat (limited to 'gdb/configure')
-rwxr-xr-x | gdb/configure | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gdb/configure b/gdb/configure index 7ff74badbf7..fdcf215253c 100755 --- a/gdb/configure +++ b/gdb/configure @@ -10490,7 +10490,7 @@ $as_echo "#define HAVE_WORKING_FORK 1" >>confdefs.h fi -for ac_func in getrusage getuid getgid \ +for ac_func in getauxval getrusage getuid getgid \ pipe poll pread pread64 pwrite resize_term \ sbrk setpgid setpgrp setsid \ sigaction sigprocmask sigsetmask socketpair \ |