diff options
author | Sven Gothel <[email protected]> | 2019-12-24 04:05:32 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2019-12-24 04:05:32 +0100 |
commit | aeae740ba2569d839820bfc20c43a8550ab8ed33 (patch) | |
tree | 4e1d62603d3353f9f177986dea90e3397b50f286 | |
parent | 26d06324312b8fe6980ff29ab9d443cc5ec2657f (diff) |
Bug 1417 - Android: Add ANDROID_TOOLCHAIN_SYSROOT1_INC_ARCH for arch specific includes like asm/types.h
Also adapt make/lib/gluegen-cpptask-android* files:
- Set C++ stdlib = libstdc++
- Set isysroot (same as sysroot)
- Add isystem: *_SYSROOT1_INC, *_SYSROOT1_INC_ARCH and *_SYSROOT1_INC/c++/v1
-rw-r--r-- | make/lib/gluegen-cpptasks-android-aarch64.xml | 9 | ||||
-rw-r--r-- | make/lib/gluegen-cpptasks-android-armv6.xml | 9 | ||||
-rw-r--r-- | make/lib/gluegen-cpptasks-android-x86.xml | 9 | ||||
-rw-r--r-- | make/scripts/setenv-android-tools.sh | 10 |
4 files changed, 37 insertions, 0 deletions
diff --git a/make/lib/gluegen-cpptasks-android-aarch64.xml b/make/lib/gluegen-cpptasks-android-aarch64.xml index ec9efd1..ef4d9ff 100644 --- a/make/lib/gluegen-cpptasks-android-aarch64.xml +++ b/make/lib/gluegen-cpptasks-android-aarch64.xml @@ -34,6 +34,15 @@ <echo message="Custom forced compiler Android NDK, linker.cfg.android" /> <compiler id="compiler.cfg.android" name="clang"> <compilerarg value="--sysroot=${env.ANDROID_TOOLCHAIN_SYSROOT1}" /> <!-- include files, but libs not in std FS layout --> + <compilerarg value="-stdlib=libstdc++"/> + <compilerarg value="-isysroot"/> + <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1}" /> + <compilerarg value="-isystem"/> + <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC}" /> + <compilerarg value="-isystem"/> + <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC_ARCH}" /> + <compilerarg value="-isystem"/> + <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC}/c++/v1" /> <compilerarg value="-v" /> diff --git a/make/lib/gluegen-cpptasks-android-armv6.xml b/make/lib/gluegen-cpptasks-android-armv6.xml index 850d444..fd8109c 100644 --- a/make/lib/gluegen-cpptasks-android-armv6.xml +++ b/make/lib/gluegen-cpptasks-android-armv6.xml @@ -34,6 +34,15 @@ <echo message="Custom forced compiler Android NDK, linker.cfg.android" /> <compiler id="compiler.cfg.android" name="clang"> <compilerarg value="--sysroot=${env.ANDROID_TOOLCHAIN_SYSROOT1}" /> <!-- include files, but libs not in std FS layout --> + <compilerarg value="-stdlib=libstdc++"/> + <compilerarg value="-isysroot"/> + <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1}" /> + <compilerarg value="-isystem"/> + <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC}" /> + <compilerarg value="-isystem"/> + <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC_ARCH}" /> + <compilerarg value="-isystem"/> + <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC}/c++/v1" /> <compilerarg value="-v" /> diff --git a/make/lib/gluegen-cpptasks-android-x86.xml b/make/lib/gluegen-cpptasks-android-x86.xml index ef33daa..baedfc1 100644 --- a/make/lib/gluegen-cpptasks-android-x86.xml +++ b/make/lib/gluegen-cpptasks-android-x86.xml @@ -33,6 +33,15 @@ <echo message="Custom forced compiler Android NDK, linker.cfg.android" /> <compiler id="compiler.cfg.android" name="clang"> <compilerarg value="--sysroot=${env.ANDROID_TOOLCHAIN_SYSROOT1}" /> <!-- include files, but libs not in std FS layout --> + <compilerarg value="-stdlib=libstdc++"/> + <compilerarg value="-isysroot"/> + <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1}" /> + <compilerarg value="-isystem"/> + <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC}" /> + <compilerarg value="-isystem"/> + <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC_ARCH}" /> + <compilerarg value="-isystem"/> + <compilerarg value="${env.ANDROID_TOOLCHAIN_SYSROOT1_INC}/c++/v1" /> <compilerarg value="-v" /> diff --git a/make/scripts/setenv-android-tools.sh b/make/scripts/setenv-android-tools.sh index 1742c97..e507940 100644 --- a/make/scripts/setenv-android-tools.sh +++ b/make/scripts/setenv-android-tools.sh @@ -44,6 +44,7 @@ # - ANDROID_TOOLCHAIN_SYSROOT0_LIB # - ANDROID_TOOLCHAIN_SYSROOT1 # - ANDROID_TOOLCHAIN_SYSROOT1_INC +# - ANDROID_TOOLCHAIN_SYSROOT1_INC_ARCH # - ANDROID_TOOLCHAIN_SYSROOT1_LIB # # Android Studio SDK + NDK Filesystem Layout (official) @@ -64,6 +65,7 @@ # ~/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/bin/clang (*) # ~/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot (2) # ~/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include +# ~/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android/asm/types.h (*) (2,3) # ~/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc.a (*) # ~/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/24/libc.a (*) (2) # ~/Android/Sdk/ndk/20.1.5948944/platforms/android-24/arch-arm64 (1) @@ -72,6 +74,7 @@ # (*) tested by this script # (1) ANDROID_TOOLCHAIN_SYSROOT0 exposes all libs with standard FS layout usr/lib, but no include files # (2) ANDROID_TOOLCHAIN_SYSROOT1 exposes all libs but without standard FS layout, also exposes include files +# (3) ANDROID_TOOLCHAIN_SYSROOT1 also exposes the arch dependent include files, i.e. asm/types.h etc # Native libraries of (1) and (2) are identical # # Having @@ -151,6 +154,7 @@ echo ANDROID_TOOLCHAIN_SYSROOT0 ${ANDROID_TOOLCHAIN_SYSROOT0} echo ANDROID_TOOLCHAIN_SYSROOT0_LIB ${ANDROID_TOOLCHAIN_SYSROOT0_LIB} echo ANDROID_TOOLCHAIN_SYSROOT1 ${ANDROID_TOOLCHAIN_SYSROOT1} echo ANDROID_TOOLCHAIN_SYSROOT1_INC ${ANDROID_TOOLCHAIN_SYSROOT1_INC} +echo ANDROID_TOOLCHAIN_SYSROOT1_INC_ARCH ${ANDROID_TOOLCHAIN_SYSROOT1_INC_ARCH} echo ANDROID_TOOLCHAIN_SYSROOT1_LIB ${ANDROID_TOOLCHAIN_SYSROOT1_LIB} echo @@ -245,6 +249,7 @@ ANDROID_TOOLCHAIN_SYSROOT0_LIB=${ANDROID_TOOLCHAIN_SYSROOT0}/usr/lib ANDROID_TOOLCHAIN_SYSROOT1=${ANDROID_TOOLCHAIN_ROOT}/sysroot ANDROID_TOOLCHAIN_SYSROOT1_INC=${ANDROID_TOOLCHAIN_SYSROOT1}/usr/include +ANDROID_TOOLCHAIN_SYSROOT1_INC_ARCH=${ANDROID_TOOLCHAIN_SYSROOT1}/usr/include/${ANDROID_TOOLCHAIN_NAME} ANDROID_TOOLCHAIN_SYSROOT1_LIB=${ANDROID_TOOLCHAIN_SYSROOT1}/usr/lib/${ANDROID_TOOLCHAIN_NAME}/${ANDROID_API_LEVEL} # ~/Android/Sdk/build-tools/29.0.2/zipalign (*) @@ -259,6 +264,9 @@ check_exists ${ANDROID_TOOLCHAIN_ROOT}/bin/clang # ~/Android/Sdk/ndk/20.1.5948944/platforms/android-24/arch-arm64/usr/lib/libc.a (*) check_exists ${ANDROID_TOOLCHAIN_SYSROOT0_LIB}/libc.a +# ~/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/aarch64-linux-android/asm/types.h (*) (2) +check_exists ${ANDROID_TOOLCHAIN_SYSROOT1_INC_ARCH}/asm/types.h + # ~/Android/Sdk/ndk/20.1.5948944/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/24/libc.a (*) check_exists ${ANDROID_TOOLCHAIN_SYSROOT1_LIB}/libc.a @@ -280,6 +288,7 @@ export ANDROID_TOOLCHAIN_SYSROOT0 export ANDROID_TOOLCHAIN_SYSROOT0_LIB export ANDROID_TOOLCHAIN_SYSROOT1 export ANDROID_TOOLCHAIN_SYSROOT1_INC +export ANDROID_TOOLCHAIN_SYSROOT1_ARCH export ANDROID_TOOLCHAIN_SYSROOT1_LIB echo "Postset-0 (user)" @@ -303,6 +312,7 @@ echo ANDROID_TOOLCHAIN_SYSROOT0 ${ANDROID_TOOLCHAIN_SYSROOT0} echo ANDROID_TOOLCHAIN_SYSROOT0_LIB ${ANDROID_TOOLCHAIN_SYSROOT0_LIB} echo ANDROID_TOOLCHAIN_SYSROOT1 ${ANDROID_TOOLCHAIN_SYSROOT1} echo ANDROID_TOOLCHAIN_SYSROOT1_INC ${ANDROID_TOOLCHAIN_SYSROOT1_INC} +echo ANDROID_TOOLCHAIN_SYSROOT1_INC_ARCH ${ANDROID_TOOLCHAIN_SYSROOT1_INC_ARCH} echo ANDROID_TOOLCHAIN_SYSROOT1_LIB ${ANDROID_TOOLCHAIN_SYSROOT1_LIB} echo |