mirror of
git://git.savannah.gnu.org/config.git
synced 2025-05-26 09:06:38 +12:00
config.guess: Detect Android (as opposed to GNU/Linux)
Here's a patch to recognize Android environments. Such environments are "apps" with POSIX-like tools. Today, the most frequently used one is Termux [1][2][3]; on devices with Android versions before 5.0 one can use Terminal-IDE [4][5]. config.sub already supports this environment: $ sh config.sub armv7l-linux-androideabi armv7l-unknown-linux-androideabi I've built many GNU packages in this environment, with the following recipe: CONFIG_SHELL=$PREFIX/bin/sh; export CONFIG_SHELL CC="clang -ferror-limit=0" CXX="clang++ -ferror-limit=0"; export CC CXX ./configure --host=armv7l-linux-androideabi --prefix=$HOME/local The Termux people have compiled or ported more than 1000 packages as well [6]. But the requirement to pass the --host parameter each time is an annoyance. Without it, based only on the results of uname, config.guess guesses $ sh config.guess armv7l-unknown-linux-gnueabi and many configuration results are wrong (because Android has many functions in libc without declaring them in the .h files, depending on the so-called "Android API level"), leading to many compilation errors. With the attached patch, it produces $ sh config.guess armv7l-unknown-linux-androideabi The patch does not include an addition to the config.guess test suite, since the uname values are: $ uname -m armv7l $ uname -r 4.19.127 $ uname -s Linux $ uname -v #1 SMP PREEMPT Tue Apr 4 16:54:58 IST 2023 $ uname -p unknown which maps to armv7l-unknown-linux-gnueabi. [1] https://github.com/termux/termux-app [2] https://f-droid.org/en/packages/com.termux/ [3] https://wiki.termux.com/wiki/Main_Page [4] https://en.wikibooks.org/wiki/Android/Terminal_IDE [5] http://www.spartacusrex.com/terminalide.htm [6] https://github.com/termux/termux-packages/tree/master/packages * config.guess (Linux|GNU|GNU/*): Detect Android. * doc/config.guess.1: Regenerate. Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
This commit is contained in:
parent
6c78704d54
commit
021155df7f
6
config.guess
vendored
6
config.guess
vendored
@ -4,7 +4,7 @@
|
||||
|
||||
# shellcheck disable=SC2006,SC2268 # see below for rationale
|
||||
|
||||
timestamp='2023-07-20'
|
||||
timestamp='2023-08-17'
|
||||
|
||||
# This file is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
@ -155,6 +155,9 @@ Linux|GNU|GNU/*)
|
||||
|
||||
set_cc_for_build
|
||||
cat <<-EOF > "$dummy.c"
|
||||
#if defined(__ANDROID__)
|
||||
LIBC=android
|
||||
#else
|
||||
#include <features.h>
|
||||
#if defined(__UCLIBC__)
|
||||
LIBC=uclibc
|
||||
@ -169,6 +172,7 @@ Linux|GNU|GNU/*)
|
||||
LIBC=musl
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
EOF
|
||||
cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
|
||||
eval "$cc_set_libc"
|
||||
|
@ -1,5 +1,5 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.48.5.
|
||||
.TH CONFIG.GUESS "1" "July 2023" "GNU config.guess (2023-07-20)" "User Commands"
|
||||
.TH CONFIG.GUESS "1" "August 2023" "GNU config.guess (2023-08-17)" "User Commands"
|
||||
.SH NAME
|
||||
config.guess \- guess the build system triplet
|
||||
.SH SYNOPSIS
|
||||
|
Loading…
x
Reference in New Issue
Block a user