From 97a20eed5c3cf3a2f7bb261705405b8b16c56b36 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sun, 14 May 2017 18:46:34 -0700 Subject: 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 diff --git a/config/debug/duma.in b/config/debug/duma.in index 170a694..f9e727b 100644 --- a/config/debug/duma.in +++ b/config/debug/duma.in @@ -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. diff --git a/config/debug/gdb.in.native b/config/debug/gdb.in.native index e856b5d..faee8c3 100644 --- a/config/debug/gdb.in.native +++ b/config/debug/gdb.in.native @@ -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 diff --git a/config/debug/ltrace.in b/config/debug/ltrace.in index 4c62676..fab6b81 100644 --- a/config/debug/ltrace.in +++ b/config/debug/ltrace.in @@ -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 diff --git a/config/debug/strace.in b/config/debug/strace.in index 38dd96f..e77702b 100644 --- a/config/debug/strace.in +++ b/config/debug/strace.in @@ -1,5 +1,7 @@ # strace +## depends on ! LIBC_bionic + choice bool prompt "strace version" diff --git a/patches/gdb/7.12.1/200-allow-android.patch b/patches/gdb/7.12.1/200-allow-android.patch new file mode 100644 index 0000000..7954477 --- /dev/null +++ b/patches/gdb/7.12.1/200-allow-android.patch @@ -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, actually includes definitions +- # of Elf32_auxv_t and Elf64_auxv_t. But sadly, includes +- # which defines some of the ELF types incorrectly, +- # leading to conflicts with the defintions from . +- # This makes it impossible for us to include both and +- # , 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 + +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, actually includes definitions +- # of Elf32_auxv_t and Elf64_auxv_t. But sadly, includes +- # which defines some of the ELF types incorrectly, +- # leading to conflicts with the defintions from . +- # This makes it impossible for us to include both and +- # , 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 diff --git a/samples/aarch64-unknown-linux-android/crosstool.config b/samples/aarch64-unknown-linux-android/crosstool.config index 339819c..295b219 100644 --- a/samples/aarch64-unknown-linux-android/crosstool.config +++ b/samples/aarch64-unknown-linux-android/crosstool.config @@ -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 -- cgit v0.10.2-6-g49f6