From 03b424a50b4dbd22efdea17151e220020f7b2ceb Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 22 May 2014 11:57:43 -0700 Subject: [PATCH 1/4] fix paths when 2nd arch gcc is a different version arm64 is using gcc 4.9, arm is using gcc 4.8. Fix setpaths() to get a separate version for the 2nd arch. Change-Id: I7bde01308fc7718360e7d0fbd46b3ae8c5f55fa7 --- envsetup.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/envsetup.sh b/envsetup.sh index 9670a7f66..0f498af62 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -120,6 +120,7 @@ function setpaths() # defined in core/config.mk targetgccversion=$(get_build_var TARGET_GCC_VERSION) + targetgccversion2=$(get_build_var 2ND_TARGET_GCC_VERSION) export TARGET_GCC_VERSION=$targetgccversion # The gcc toolchain does not exists for windows/cygwin. In this case, do not reference it. @@ -134,7 +135,7 @@ function setpaths() arm) toolchaindir=arm/arm-linux-androideabi-$targetgccversion/bin ;; arm64) toolchaindir=aarch64/aarch64-linux-android-$targetgccversion/bin; - toolchaindir2=arm/arm-linux-androideabi-$targetgccversion/bin + toolchaindir2=arm/arm-linux-androideabi-$targetgccversion2/bin ;; mips) toolchaindir=mips/mipsel-linux-android-$targetgccversion/bin ;; From 6a5fa0684a5a79abcb0cf116fe102e8f79081ece Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 22 May 2014 11:58:40 -0700 Subject: [PATCH 2/4] add 2nd arch gcc to the path Add the 2nd arch gcc to the path so users can manually run gdb, addr2line, objdump, etc. Change-Id: I30ff439bb6548b897d13bfa87151991d5f2948b3 --- envsetup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/envsetup.sh b/envsetup.sh index 0f498af62..e496c9c60 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -171,7 +171,7 @@ function setpaths() export ANDROID_QTOOLS=$T/development/emulator/qtools export ANDROID_DEV_SCRIPTS=$T/development/scripts:$T/prebuilts/devtools/tools - export ANDROID_BUILD_PATHS=$(get_build_var ANDROID_BUILD_PATHS):$ANDROID_QTOOLS:$ANDROID_TOOLCHAIN:$ANDROID_KERNEL_TOOLCHAIN_PATH$ANDROID_DEV_SCRIPTS: + export ANDROID_BUILD_PATHS=$(get_build_var ANDROID_BUILD_PATHS):$ANDROID_QTOOLS:$ANDROID_TOOLCHAIN:$ANDROID_TOOLCHAIN_2ND_ARCH:$ANDROID_KERNEL_TOOLCHAIN_PATH$ANDROID_DEV_SCRIPTS: # If prebuilts/android-emulator// exists, prepend it to our PATH # to ensure that the corresponding 'emulator' binaries are used. From 3655a68565f17856b6f3a70df276f597b7eb0372 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 22 May 2014 11:59:10 -0700 Subject: [PATCH 3/4] add vendor directories to gdb shared library search path Change-Id: Ib4ccf3739d6b2f14597605ce06f00e4776f67976 --- envsetup.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/envsetup.sh b/envsetup.sh index e496c9c60..6c25ebe91 100644 --- a/envsetup.sh +++ b/envsetup.sh @@ -977,6 +977,7 @@ function gdbclient() local OUT_ROOT=$(get_abs_build_var PRODUCT_OUT) local OUT_SYMBOLS=$(get_abs_build_var TARGET_OUT_UNSTRIPPED) local OUT_SO_SYMBOLS=$(get_abs_build_var TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED) + local OUT_VENDOR_SO_SYMBOLS=$(get_abs_build_var TARGET_OUT_VENDOR_SHARED_LIBRARIES_UNSTRIPPED) local OUT_EXE_SYMBOLS=$(get_abs_build_var TARGET_OUT_EXECUTABLES_UNSTRIPPED) local PREBUILTS=$(get_abs_build_var ANDROID_PREBUILTS) local ARCH=$(get_build_var TARGET_ARCH) @@ -1041,7 +1042,7 @@ function gdbclient() OUT_SO_SYMBOLS=$OUT_SO_SYMBOLS$USE64BIT echo >|"$OUT_ROOT/gdbclient.cmds" "set solib-absolute-prefix $OUT_SYMBOLS" - echo >>"$OUT_ROOT/gdbclient.cmds" "set solib-search-path $OUT_SO_SYMBOLS:$OUT_SO_SYMBOLS/hw:$OUT_SO_SYMBOLS/ssl/engines:$OUT_SO_SYMBOLS/drm:$OUT_SO_SYMBOLS/egl:$OUT_SO_SYMBOLS/soundfx" + echo >>"$OUT_ROOT/gdbclient.cmds" "set solib-search-path $OUT_SO_SYMBOLS:$OUT_SO_SYMBOLS/hw:$OUT_SO_SYMBOLS/ssl/engines:$OUT_SO_SYMBOLS/drm:$OUT_SO_SYMBOLS/egl:$OUT_SO_SYMBOLS/soundfx:$OUT_VENDOR_SO_SYMBOLS:$OUT_VENDOR_SO_SYMBOLS/hw:$OUT_VENDOR_SO_SYMBOLS/egl" echo >>"$OUT_ROOT/gdbclient.cmds" "source $ANDROID_BUILD_TOP/development/scripts/gdb/dalvik.gdb" echo >>"$OUT_ROOT/gdbclient.cmds" "target remote $PORT" echo >>"$OUT_ROOT/gdbclient.cmds" "" From 12d18eb563877e68da0041261fadde0a9ffaa147 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Thu, 22 May 2014 12:01:23 -0700 Subject: [PATCH 4/4] set a prebuilt directory name for the 2nd arch In order to install 32-bit gdbserver on a 64-bit build, prebuilts/misc/Android.mk needs to know the prebuilt directory name for the 2nd arch. Change-Id: Ibc943b758eb9404f7f5f9fbbd8720cc67f6a6f01 --- core/config.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/config.mk b/core/config.mk index b91ff7f5e..715038053 100644 --- a/core/config.mk +++ b/core/config.mk @@ -579,6 +579,9 @@ INTERNAL_PLATFORM_API_FILE := $(TARGET_OUT_COMMON_INTERMEDIATES)/PACKAGING/publi # This is the standard way to name a directory containing prebuilt target # objects. E.g., prebuilt/$(TARGET_PREBUILT_TAG)/libc.so TARGET_PREBUILT_TAG := android-$(TARGET_ARCH) +ifdef TARGET_2ND_ARCH +TARGET_2ND_PREBUILT_TAG := android-$(TARGET_2ND_ARCH) +endif # Set up RS prebuilt variables for compatibility library