From a776367937aa4f6ff03f0d3fdecb90d13fdaab14 Mon Sep 17 00:00:00 2001 From: hyc Date: Wed, 26 Apr 2017 09:23:07 +0100 Subject: Add sample Android config, gcc 6.3 patches --- samples/aarch64-unknown-linux-android/crosstool.config | 10 ++++++++++ samples/aarch64-unknown-linux-android/reported.by | 3 +++ 2 files changed, 13 insertions(+) create mode 100644 samples/aarch64-unknown-linux-android/crosstool.config create mode 100644 samples/aarch64-unknown-linux-android/reported.by (limited to 'samples/aarch64-unknown-linux-android') diff --git a/samples/aarch64-unknown-linux-android/crosstool.config b/samples/aarch64-unknown-linux-android/crosstool.config new file mode 100644 index 00000000..fa147e25 --- /dev/null +++ b/samples/aarch64-unknown-linux-android/crosstool.config @@ -0,0 +1,10 @@ +# CT_RM_RF_PREFIX_DIR is not set +CT_ARCH_arm=y +CT_ARCH_64=y +CT_ARCH_ARCH="armv8-a" +CT_STATIC_TOOLCHAIN=y +CT_KERNEL_linux=y +CT_LIBC_BIONIC_V_14b=y +CT_ANDROID_API_21=y +CT_CC_LANG_CXX=y +CT_GETTEXT=y diff --git a/samples/aarch64-unknown-linux-android/reported.by b/samples/aarch64-unknown-linux-android/reported.by new file mode 100644 index 00000000..fb4b9ec1 --- /dev/null +++ b/samples/aarch64-unknown-linux-android/reported.by @@ -0,0 +1,3 @@ +reporter_name="Howard Chu" +reporter_url="http://www.symas.com" +reporter_comment="Config to build cross-compiler for Android/bionic on ARM64" -- cgit v1.2.3 From dab327ed06800bf6609aa1b2e370e37e87ce9e80 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sun, 14 May 2017 12:26:59 -0700 Subject: Allow rebuilding aarch64-unknown-linux-android Otherwise, fails when checking if the destination dir is writable. Signed-off-by: Alexey Neyman --- samples/aarch64-unknown-linux-android/crosstool.config | 1 - 1 file changed, 1 deletion(-) (limited to 'samples/aarch64-unknown-linux-android') diff --git a/samples/aarch64-unknown-linux-android/crosstool.config b/samples/aarch64-unknown-linux-android/crosstool.config index fa147e25..339819c0 100644 --- a/samples/aarch64-unknown-linux-android/crosstool.config +++ b/samples/aarch64-unknown-linux-android/crosstool.config @@ -1,4 +1,3 @@ -# CT_RM_RF_PREFIX_DIR is not set CT_ARCH_arm=y CT_ARCH_64=y CT_ARCH_ARCH="armv8-a" -- cgit v1.2.3 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 --- config/debug/duma.in | 1 + config/debug/gdb.in.native | 1 + config/debug/ltrace.in | 1 + config/debug/strace.in | 2 ++ patches/gdb/7.12.1/200-allow-android.patch | 42 ++++++++++++++++++++++ .../aarch64-unknown-linux-android/crosstool.config | 2 ++ 6 files changed, 49 insertions(+) create mode 100644 patches/gdb/7.12.1/200-allow-android.patch (limited to 'samples/aarch64-unknown-linux-android') diff --git a/config/debug/duma.in b/config/debug/duma.in index 170a6945..f9e727b8 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 e856b5da..faee8c3d 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 4c626764..fab6b81f 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 38dd96fd..e77702bf 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 00000000..7954477c --- /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 339819c0..295b219a 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 v1.2.3