mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2025-02-20 09:06:19 +00:00
Preliminary bionic/Android support
Mostly from Crystax NDK
This commit is contained in:
parent
ef762bfe8e
commit
8762c7698c
183
config/libc/bionic.in
Normal file
183
config/libc/bionic.in
Normal file
@ -0,0 +1,183 @@
|
||||
# bionic options
|
||||
|
||||
## depends on ! WINDOWS && ! BARE_METAL
|
||||
## depends on ARCH_arm || ARCH_mips || ARCH_x86
|
||||
##
|
||||
## select LIBC_SUPPORT_THREADS_POSIX
|
||||
##
|
||||
## help Bionic is the Android C library. It is prebuilt.
|
||||
|
||||
config THREADS
|
||||
default "posix"
|
||||
|
||||
config LIBC_BIONIC_CUSTOM
|
||||
bool
|
||||
prompt "Custom bionic"
|
||||
help
|
||||
The chosen bionic-libc version shall be not downloaded. Instead use
|
||||
a custom location to get the source.
|
||||
|
||||
if LIBC_BIONIC_CUSTOM
|
||||
|
||||
config LIBC_BIONIC_CUSTOM_LOCATION
|
||||
string
|
||||
prompt "Full path to custom bionic source"
|
||||
help
|
||||
Enter the path to the directory or tarball of your source for bionic.
|
||||
|
||||
If the path is a zip archive, it should extract to: <name>-<version>/
|
||||
where the name is android-ndk, and the version is set
|
||||
below in the custom version string.
|
||||
|
||||
config LIBC_BIONIC_CUSTOM_VERSION
|
||||
string
|
||||
prompt "Custom BIONIC version"
|
||||
help
|
||||
Enter the version number for your custom bionic.
|
||||
|
||||
config LIBC_VERSION
|
||||
string
|
||||
default LIBC_BIONIC_CUSTOM_VERSION
|
||||
|
||||
endif # LIBC_BIONIC_CUSTOM
|
||||
|
||||
if ! LIBC_BIONIC_CUSTOM
|
||||
|
||||
choice
|
||||
bool
|
||||
prompt "bionic version"
|
||||
# Don't remove next line
|
||||
# CT_INSERT_VERSION_BELOW
|
||||
|
||||
config LIBC_BIONIC_V_15beta1
|
||||
bool
|
||||
prompt "15beta1"
|
||||
|
||||
config LIBC_BIONIC_V_14b
|
||||
bool
|
||||
prompt "14b"
|
||||
|
||||
config LIBC_BIONIC_V_13b
|
||||
bool
|
||||
prompt "13b (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_BIONIC_V_12b
|
||||
bool
|
||||
prompt "12b (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_BIONIC_V_11c
|
||||
bool
|
||||
prompt "11c (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
config LIBC_BIONIC_V_10e
|
||||
bool
|
||||
prompt "10e (OBSOLETE)"
|
||||
depends on OBSOLETE
|
||||
|
||||
endchoice
|
||||
|
||||
config LIBC_VERSION
|
||||
string
|
||||
# Don't remove next line
|
||||
# CT_INSERT_VERSION_STRING_BELOW
|
||||
default "r15-beta1" if LIBC_BIONIC_V_15beta1
|
||||
default "r14b" if LIBC_BIONIC_V_14b
|
||||
default "r13b" if LIBC_BIONIC_V_13b
|
||||
default "r12b" if LIBC_BIONIC_V_12b
|
||||
default "r11c" if LIBC_BIONIC_V_11c
|
||||
default "r10e" if LIBC_BIONIC_V_10e
|
||||
|
||||
endif # ! LIBC_BIONIC_CUSTOM
|
||||
|
||||
choice
|
||||
bool
|
||||
prompt "Android API level"
|
||||
help
|
||||
The minimum for 64 bit support is 21.
|
||||
# Don't remove next line
|
||||
# CT_INSERT_VERSION_BELOW
|
||||
|
||||
config ANDROID_API_24
|
||||
bool
|
||||
prompt "24"
|
||||
|
||||
config ANDROID_API_23
|
||||
bool
|
||||
prompt "23"
|
||||
|
||||
config ANDROID_API_22
|
||||
bool
|
||||
prompt "22"
|
||||
|
||||
config ANDROID_API_21
|
||||
bool
|
||||
prompt "21"
|
||||
|
||||
config ANDROID_API_19
|
||||
bool
|
||||
prompt "19"
|
||||
depends on ARCH_32
|
||||
|
||||
config ANDROID_API_18
|
||||
bool
|
||||
prompt "18"
|
||||
depends on ARCH_32
|
||||
|
||||
config ANDROID_API_17
|
||||
bool
|
||||
prompt "17"
|
||||
depends on ARCH_32
|
||||
|
||||
config ANDROID_API_16
|
||||
bool
|
||||
prompt "16"
|
||||
depends on ARCH_32
|
||||
|
||||
config ANDROID_API_15
|
||||
bool
|
||||
prompt "15"
|
||||
depends on ARCH_32
|
||||
|
||||
config ANDROID_API_14
|
||||
bool
|
||||
prompt "14"
|
||||
depends on ARCH_32
|
||||
|
||||
config ANDROID_API_13
|
||||
bool
|
||||
prompt "13"
|
||||
depends on ARCH_32
|
||||
|
||||
config ANDROID_API_12
|
||||
bool
|
||||
prompt "12"
|
||||
depends on ARCH_32
|
||||
|
||||
config ANDROID_API_9
|
||||
bool
|
||||
prompt "9"
|
||||
depends on ARCH_32
|
||||
|
||||
endchoice
|
||||
|
||||
config ANDROID_API
|
||||
string
|
||||
# Don't remove next line
|
||||
# CT_INSERT_VERSION_STRING_BELOW
|
||||
default "24" if ANDROID_API_24
|
||||
default "23" if ANDROID_API_23
|
||||
default "22" if ANDROID_API_22
|
||||
default "21" if ANDROID_API_21
|
||||
default "19" if ANDROID_API_19
|
||||
default "18" if ANDROID_API_18
|
||||
default "17" if ANDROID_API_17
|
||||
default "16" if ANDROID_API_16
|
||||
default "15" if ANDROID_API_15
|
||||
default "14" if ANDROID_API_14
|
||||
default "13" if ANDROID_API_13
|
||||
default "12" if ANDROID_API_12
|
||||
default "9" if ANDROID_API_9
|
||||
|
17570
patches/gcc/linaro-6.3-2017.02/950-bionic-android.patch
Normal file
17570
patches/gcc/linaro-6.3-2017.02/950-bionic-android.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -18,6 +18,7 @@ CT_DoArchTupleValues() {
|
||||
*glibc,y) CT_TARGET_SYS=gnueabi;;
|
||||
uClibc,y) CT_TARGET_SYS=uclibc${CT_LIBC_UCLIBC_USE_GNU_SUFFIX:+gnu}eabi;;
|
||||
musl,y) CT_TARGET_SYS=musleabi;;
|
||||
bionic,y) CT_TARGET_SYS=android;;
|
||||
*,y) CT_TARGET_SYS=eabi;;
|
||||
esac
|
||||
|
||||
|
43
scripts/build/libc/bionic.sh
Normal file
43
scripts/build/libc/bionic.sh
Normal file
@ -0,0 +1,43 @@
|
||||
# This file adds functions to extract the bionic C library from the Android NDK
|
||||
# Copyright 2017 Howard Chu
|
||||
# Licensed under the GPL v2. See COPYING in the root of this package
|
||||
|
||||
do_libc_get() {
|
||||
if [ "${CT_LIBC_BIONIC_CUSTOM}" = "y" ]; then
|
||||
CT_GetCustom "bionic" "${CT_LIBC_BIONIC_CUSTOM_VERSION}" \
|
||||
"${CT_LIBC_BIONIC_CUSTOM_LOCATION}"
|
||||
else # ! custom location
|
||||
CT_GetFile "android-ndk-${CT_LIBC_VERSION}-linux-x86_64.zip" https://dl.google.com/android/repository
|
||||
fi # ! custom location
|
||||
}
|
||||
|
||||
do_libc_extract() {
|
||||
CT_Extract "android-ndk-${CT_LIBC_VERSION}-linux-x86_64"
|
||||
CT_Pushd "${CT_SRC_DIR}/android-ndk-${CT_LIBC_VERSION}/"
|
||||
CT_Patch nochdir bionic "${CT_LIBC_VERSION}"
|
||||
CT_Popd
|
||||
}
|
||||
|
||||
# Install Unified headers
|
||||
do_libc_start_files() {
|
||||
CT_DoStep INFO "Installing C library headers"
|
||||
CT_DoExecLog ALL cp -r "${CT_SRC_DIR}/android-ndk-${CT_LIBC_VERSION}/sysroot/usr" "${CT_SYSROOT_DIR}"
|
||||
}
|
||||
|
||||
do_libc() {
|
||||
local arch="${CT_ARCH}"
|
||||
if [ "${CT_ARCH_64}" = "y" ]; then
|
||||
if [ "${CT_ARCH}" = "x86" ]; then
|
||||
arch="${arch}_"
|
||||
fi
|
||||
arch="${arch}64"
|
||||
fi
|
||||
CT_DoStep INFO "Installing C library binaries"
|
||||
CT_DoExecLog ALL cp -r "${CT_SRC_DIR}/android-ndk-${CT_LIBC_VERSION}/platforms/android-${CT_ANDROID_API}/arch-${arch}/usr" "${CT_SYSROOT_DIR}"
|
||||
CT_EnvModify CT_TARGET_CFLAGS "${CT_TARGET_CFLAGS} -D__ANDROID_API__=${CT_ANDROID_API}"
|
||||
}
|
||||
|
||||
do_libc_post_cc() {
|
||||
:
|
||||
}
|
||||
|
@ -1368,6 +1368,7 @@ CT_DoBuildTargetTuple() {
|
||||
*glibc) CT_TARGET_SYS=gnu;;
|
||||
uClibc) CT_TARGET_SYS=uclibc;;
|
||||
musl) CT_TARGET_SYS=musl;;
|
||||
bionic) CT_TARGET_SYS=android;;
|
||||
avr-libc)
|
||||
# avr-libc only seems to work with the non-canonical "avr" target.
|
||||
CT_TARGET_SKIP_CONFIG_SUB=y
|
||||
|
Loading…
x
Reference in New Issue
Block a user