diff options
author | Joel Brobecker <brobecker@adacore.com> | 2015-11-23 09:48:16 -0800 |
---|---|---|
committer | Joel Brobecker <brobecker@adacore.com> | 2015-11-23 09:48:16 -0800 |
commit | 64da5dd5eaa60269a8070e0bdb740b3b2c6e9740 (patch) | |
tree | fbdb5a55d5a05262302003f7ccb89972b77aa38d | |
parent | 206853a02ec27f603ecd584503bfb33cc0fdc03d (diff) | |
download | fsf-binutils-gdb-64da5dd5eaa60269a8070e0bdb740b3b2c6e9740.zip fsf-binutils-gdb-64da5dd5eaa60269a8070e0bdb740b3b2c6e9740.tar.gz fsf-binutils-gdb-64da5dd5eaa60269a8070e0bdb740b3b2c6e9740.tar.bz2 |
[gdbserver] disable Elf32_auxv_t/Elf64_auxv_t AC_CHECK_TYPES check on Android
See the comment added in configure.ac for more details behind
this change.
gdb/gdbserver/ChangeLog:
* configure.ac: Do not call AC_CHECK_TYPES for Elf32_auxv_t
and Elf64_auxv_t if the target is Android.
-rw-r--r-- | gdb/gdbserver/ChangeLog | 5 | ||||
-rwxr-xr-x | gdb/gdbserver/configure | 16 | ||||
-rw-r--r-- | gdb/gdbserver/configure.ac | 20 |
3 files changed, 37 insertions, 4 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index 4c06457..7e9d695 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,8 @@ +2015-11-23 Joel Brobecker <brobecker@adacore.com> + + * configure.ac: Do not call AC_CHECK_TYPES for Elf32_auxv_t + and Elf64_auxv_t if the target is Android. + 2015-11-22 Doug Evans <xdje42@gmail.com> * target.h: #include <sys/types.h>. diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure index 87dfda0..ccb9639 100755 --- a/gdb/gdbserver/configure +++ b/gdb/gdbserver/configure @@ -6442,7 +6442,20 @@ _ACEOF fi -ac_fn_c_check_type "$LINENO" "Elf32_auxv_t" "ac_cv_type_Elf32_auxv_t" "#include <elf.h> +case "${target}" in + *-android*) + # Starting with NDK version 9, <elf.h> actually includes definitions + # of Elf32_auxv_t and Elf64_auxv_t. But sadly, <elf.h> includes + # <sys/exec_elf.h> which defines some of the ELF types incorrectly, + # leading to conflicts with the defintions from <linux/elf.h>. + # This makes it impossible for us to include both <elf.h> and + # <linux/elf.h>, which means that, in practice, we do not have + # access to Elf32_auxv_t and Elf64_auxv_t on this platform. + # Therefore, do not try to auto-detect availability, as it would + # get it wrong on this platform. + ;; + *) + ac_fn_c_check_type "$LINENO" "Elf32_auxv_t" "ac_cv_type_Elf32_auxv_t" "#include <elf.h> " if test "x$ac_cv_type_Elf32_auxv_t" = x""yes; then : @@ -6465,6 +6478,7 @@ _ACEOF fi +esac diff --git a/gdb/gdbserver/configure.ac b/gdb/gdbserver/configure.ac index d50d0f1..5524a05 100644 --- a/gdb/gdbserver/configure.ac +++ b/gdb/gdbserver/configure.ac @@ -235,9 +235,23 @@ AC_CHECK_TYPES(socklen_t, [], [], #include <sys/socket.h> ]) -AC_CHECK_TYPES([Elf32_auxv_t, Elf64_auxv_t], [], [], -#include <elf.h> -) +case "${target}" in + *-android*) + # Starting with NDK version 9, <elf.h> actually includes definitions + # of Elf32_auxv_t and Elf64_auxv_t. But sadly, <elf.h> includes + # <sys/exec_elf.h> which defines some of the ELF types incorrectly, + # leading to conflicts with the defintions from <linux/elf.h>. + # This makes it impossible for us to include both <elf.h> and + # <linux/elf.h>, which means that, in practice, we do not have + # access to Elf32_auxv_t and Elf64_auxv_t on this platform. + # Therefore, do not try to auto-detect availability, as it would + # get it wrong on this platform. + ;; + *) + AC_CHECK_TYPES([Elf32_auxv_t, Elf64_auxv_t], [], [], + #include <elf.h> + ) +esac ACX_PKGVERSION([GDB]) ACX_BUGURL([http://www.gnu.org/software/gdb/bugs/]) |