Disallow duma/ltrace/strace for bionic

Allow cross-gdb and gdbserver. This requires removal of an explicit
check that disables gdbserver on android. However, the comment above
that check refers to exec_elf.h, which has been removed since API level
19. It builds fine with current selection of the sample (21). Only
build-tested, hope someone can give it a try and report back.

We can fine tune the check for GDB but I'll leave it for now.

Signed-off-by: Alexey Neyman <stilor@att.net>
This commit is contained in:
Alexey Neyman 2017-05-14 18:46:34 -07:00
parent 24b3fca910
commit 97a20eed5c
6 changed files with 49 additions and 0 deletions

View File

@ -1,6 +1,7 @@
# D.U.M.A. - Detect Unintended Memory Access - Memory checker
## depends on ! BARE_METAL
## depends on ! LIBC_bionic
## help D.U.M.A. - Detect Unintended Memory Access
## help A memory bound checker, with additional features.

View File

@ -4,6 +4,7 @@ config GDB_NATIVE
bool
prompt "Native gdb"
depends on ! BARE_METAL
depends on ! LIBC_bionic
select EXPAT_TARGET
select NCURSES_TARGET
help

View File

@ -1,6 +1,7 @@
# ltrace
## select LIBELF_TARGET
## depends on ! LIBC_bionic
##
## help ltrace is a program that simply runs the specified command until it exits.
## help It intercepts and records the dynamic library calls which are called by

View File

@ -1,5 +1,7 @@
# strace
## depends on ! LIBC_bionic
choice
bool
prompt "strace version"

View File

@ -0,0 +1,42 @@
diff -urpN gdb-7.12.1.orig/gdb/gdbserver/configure gdb-7.12.1/gdb/gdbserver/configure
--- gdb-7.12.1.orig/gdb/gdbserver/configure 2017-05-14 17:02:46.742711695 -0700
+++ gdb-7.12.1/gdb/gdbserver/configure 2017-05-14 17:03:22.147058607 -0700
@@ -6671,17 +6671,6 @@ fi
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>
diff -urpN gdb-7.12.1.orig/gdb/gdbserver/configure.ac gdb-7.12.1/gdb/gdbserver/configure.ac
--- gdb-7.12.1.orig/gdb/gdbserver/configure.ac 2017-05-14 17:02:46.742711695 -0700
+++ gdb-7.12.1/gdb/gdbserver/configure.ac 2017-05-14 17:03:53.219361720 -0700
@@ -179,17 +179,6 @@ AC_CHECK_TYPES(socklen_t, [], [],
])
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>

View File

@ -1,3 +1,4 @@
CT_EXPERIMENTAL=y
CT_ARCH_arm=y
CT_ARCH_64=y
CT_ARCH_ARCH="armv8-a"
@ -6,4 +7,5 @@ CT_KERNEL_linux=y
CT_LIBC_BIONIC_V_14b=y
CT_ANDROID_API_21=y
CT_CC_LANG_CXX=y
CT_DEBUG_gdb=y
CT_GETTEXT=y