Remove langinfo.h from libandroid-support
Instead provide langinfo.h with inline implemention of nl_langinfo() as a system header. This avoids linking in libandroid-support.so in some places, and improves compatibility when building code on-device.
This commit is contained in:
parent
e81542a5f7
commit
3ab4c8f8e0
@ -431,7 +431,7 @@ termux_step_start_build() {
|
||||
TERMUX_STANDALONE_TOOLCHAIN="$TERMUX_COMMON_CACHEDIR/${TERMUX_NDK_VERSION}-${TERMUX_ARCH}-${TERMUX_PKG_API_LEVEL}"
|
||||
# Bump the below version if a change is made in toolchain setup to ensure
|
||||
# that everyone gets an updated toolchain:
|
||||
TERMUX_STANDALONE_TOOLCHAIN+="-v2"
|
||||
TERMUX_STANDALONE_TOOLCHAIN+="-v3"
|
||||
|
||||
if [ -n "${TERMUX_PKG_BLACKLISTED_ARCHES:=""}" ] && [ "$TERMUX_PKG_BLACKLISTED_ARCHES" != "${TERMUX_PKG_BLACKLISTED_ARCHES/$TERMUX_ARCH/}" ]; then
|
||||
echo "Skipping building $TERMUX_PKG_NAME for arch $TERMUX_ARCH"
|
||||
@ -735,7 +735,7 @@ termux_step_setup_toolchain() {
|
||||
done
|
||||
# elf.h: Taken from glibc since the elf.h in the NDK is lacking.
|
||||
# ifaddrs.h: Added in android-24 unified headers, use a inline implementation for now.
|
||||
cp "$TERMUX_SCRIPTDIR"/ndk-patches/{ifaddrs.h,libintl.h} usr/include
|
||||
cp "$TERMUX_SCRIPTDIR"/ndk-patches/{ifaddrs.h,libintl.h,langinfo.h} usr/include
|
||||
|
||||
# Remove <sys/shm.h> from the NDK in favour of that from the libandroid-shmem.
|
||||
# Remove <sys/sem.h> as it doesn't work for non-root.
|
||||
|
187
ndk-patches/langinfo.h
Normal file
187
ndk-patches/langinfo.h
Normal file
@ -0,0 +1,187 @@
|
||||
/*
|
||||
* Copyright (C) 2013 The Android Open Source Project
|
||||
* Copyright (C) 2016 The Android Open Source Project
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* * Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
|
||||
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
#ifndef _LANGINFO_H
|
||||
#define _LANGINFO_H
|
||||
|
||||
// __LP64__
|
||||
|
||||
#include <nl_types.h>
|
||||
#include <xlocale.h>
|
||||
#include <locale.h>
|
||||
|
||||
#define _NL_ITEM(category,index) (((category) << 10) | (index))
|
||||
|
||||
#define _NL_ITEM_CATEGORY(nl) ((nl) >> 10)
|
||||
#define _NL_ITEM_INDEX(nl) ((nl) & 0x3ff)
|
||||
|
||||
#define CODESET 1
|
||||
#define D_T_FMT 2
|
||||
#define D_FMT 3
|
||||
#define T_FMT 4
|
||||
#define T_FMT_AMPM 5
|
||||
#define AM_STR 6
|
||||
#define PM_STR 7
|
||||
#define DAY_1 8
|
||||
#define DAY_2 9
|
||||
#define DAY_3 10
|
||||
#define DAY_4 11
|
||||
#define DAY_5 12
|
||||
#define DAY_6 13
|
||||
#define DAY_7 14
|
||||
#define ABDAY_1 15
|
||||
#define ABDAY_2 16
|
||||
#define ABDAY_3 17
|
||||
#define ABDAY_4 18
|
||||
#define ABDAY_5 19
|
||||
#define ABDAY_6 20
|
||||
#define ABDAY_7 21
|
||||
#define MON_1 22
|
||||
#define MON_2 23
|
||||
#define MON_3 24
|
||||
#define MON_4 25
|
||||
#define MON_5 26
|
||||
#define MON_6 27
|
||||
#define MON_7 28
|
||||
#define MON_8 29
|
||||
#define MON_9 30
|
||||
#define MON_10 31
|
||||
#define MON_11 32
|
||||
#define MON_12 33
|
||||
#define ABMON_1 34
|
||||
#define ABMON_2 35
|
||||
#define ABMON_3 36
|
||||
#define ABMON_4 37
|
||||
#define ABMON_5 38
|
||||
#define ABMON_6 39
|
||||
#define ABMON_7 40
|
||||
#define ABMON_8 41
|
||||
#define ABMON_9 42
|
||||
#define ABMON_10 43
|
||||
#define ABMON_11 44
|
||||
#define ABMON_12 45
|
||||
#define ERA 46
|
||||
#define ERA_D_FMT 47
|
||||
#define ERA_D_T_FMT 48
|
||||
#define ERA_T_FMT 49
|
||||
#define ALT_DIGITS 50
|
||||
#define RADIXCHAR 51
|
||||
#define THOUSEP 52
|
||||
#define YESEXPR 53
|
||||
#define NOEXPR 54
|
||||
#define CRNCYSTR 55
|
||||
#define INT_CURRENCY_SYMBOL 55
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
static char *nl_langinfo(nl_item)
|
||||
{
|
||||
static const char c_time[] =
|
||||
"Sun\0" "Mon\0" "Tue\0" "Wed\0" "Thu\0" "Fri\0" "Sat\0"
|
||||
"Sunday\0" "Monday\0" "Tuesday\0" "Wednesday\0"
|
||||
"Thursday\0" "Friday\0" "Saturday\0"
|
||||
"Jan\0" "Feb\0" "Mar\0" "Apr\0" "May\0" "Jun\0"
|
||||
"Jul\0" "Aug\0" "Sep\0" "Oct\0" "Nov\0" "Dec\0"
|
||||
"January\0" "February\0" "March\0" "April\0"
|
||||
"May\0" "June\0" "July\0" "August\0"
|
||||
"September\0" "October\0" "November\0" "December\0"
|
||||
"AM\0" "PM\0"
|
||||
"%a %b %e %T %Y\0"
|
||||
"%m/%d/%y\0"
|
||||
"%H:%M:%S\0"
|
||||
"%I:%M:%S %p\0"
|
||||
"\0"
|
||||
"%m/%d/%y\0"
|
||||
"0123456789"
|
||||
"%a %b %e %T %Y\0"
|
||||
"%H:%M:%S";
|
||||
static const char c_messages[] = "^[yY]\0" "^[nN]";
|
||||
static const char c_numeric[] = ".\0" "";
|
||||
static const char c_zero[] = "UTF-8\0" "UTF-8\0"
|
||||
"%F %T %z\0" "%F\0" "%T\0" "%I:%M:%S %p\0"
|
||||
"AM\0" "PM\0"
|
||||
"Sunday\0" "Monday\0" "Tuesday\0" "Wednesday\0"
|
||||
"Thursday\0" "Friday\0" "Saturday\0"
|
||||
"Sun\0" "Mon\0" "Tue\0" "Wed\0" "Thu\0" "Fri\0" "Sat\0"
|
||||
"January\0" "February\0" "March\0"
|
||||
"April\0" "May\0" "June\0"
|
||||
"July\0" "August\0" "September\0"
|
||||
"October\0" "November\0" "December\0"
|
||||
"Jan\0" "Feb\0" "Mar\0" "Apr\0" "May\0" "Jun\0"
|
||||
"Jul\0" "Aug\0" "Sep\0" "Oct\0" "Nov\0" "Dec\0"
|
||||
"\0" "\0" "\0" "\0" "\0" ".\0" "\0"
|
||||
"^[yY]\0" "^[nN]\0" "\0";
|
||||
|
||||
int cat = item >> 16;
|
||||
int idx = item & 65535;
|
||||
const char *str;
|
||||
|
||||
if (item == CODESET) return "UTF-8";
|
||||
|
||||
switch (cat) {
|
||||
case 0:
|
||||
if (idx > 55) return NULL;
|
||||
str = c_zero;
|
||||
break;
|
||||
case LC_NUMERIC:
|
||||
if (idx > 1) return NULL;
|
||||
str = c_numeric;
|
||||
break;
|
||||
case LC_TIME:
|
||||
if (idx > 0x31) return NULL;
|
||||
str = c_time;
|
||||
break;
|
||||
case LC_MONETARY:
|
||||
if (idx > 0) return NULL;
|
||||
str = "";
|
||||
break;
|
||||
case LC_MESSAGES:
|
||||
if (idx > 1) return NULL;
|
||||
str = c_messages;
|
||||
break;
|
||||
default:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for (; idx; idx--, str++) for (; *str; str++);
|
||||
return (char *)str;
|
||||
}
|
||||
|
||||
static char *nl_langinfo_l(nl_item, locale_t)
|
||||
{
|
||||
return nl_langinfo_l(item, 0);
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif /* _LANGINFO_H */
|
||||
|
@ -1,14 +1,17 @@
|
||||
TERMUX_PKG_HOMEPAGE=https://github.com/termux/libandroid-support
|
||||
TERMUX_PKG_DESCRIPTION="Library extending the Android C library (Bionic) for additional multibyte, locale and math support"
|
||||
TERMUX_PKG_LICENSE="Apache-2.0"
|
||||
TERMUX_PKG_VERSION=22
|
||||
TERMUX_PKG_REVISION=1
|
||||
TERMUX_PKG_SHA256=667f20d0821a6305c50c667363486d546b293e846f31d02f559947d50121f51e
|
||||
TERMUX_PKG_VERSION=23
|
||||
TERMUX_PKG_SHA256=9683eccb6da260715babd56c8f2b8e48b21caf3f6e878bd80c631f3b9d76e13f
|
||||
TERMUX_PKG_SRCURL=https://github.com/termux/libandroid-support/archive/v${TERMUX_PKG_VERSION}.tar.gz
|
||||
TERMUX_PKG_BUILD_IN_SRC=yes
|
||||
TERMUX_PKG_ESSENTIAL=yes
|
||||
|
||||
termux_step_make_install () {
|
||||
# Remove file previously in package to avoid this being left
|
||||
# in build environments.
|
||||
rm -f $TERMUX_PREFIX/include/langinfo.h
|
||||
|
||||
_C_FILES="src/musl-*/*.c"
|
||||
$CC $CFLAGS -std=c99 -DNULL=0 $CPPFLAGS $LDFLAGS \
|
||||
-Iinclude \
|
||||
|
@ -5,7 +5,7 @@ TERMUX_PKG_VERSION=12.2
|
||||
TERMUX_PKG_REVISION=10
|
||||
TERMUX_PKG_SHA256=809668ffc296043779c984f53461c2b3987a45b7a25eb2f0a1d11d9f23ba4055
|
||||
TERMUX_PKG_SRCURL=https://www.freedesktop.org/software/pulseaudio/releases/pulseaudio-${TERMUX_PKG_VERSION}.tar.xz
|
||||
TERMUX_PKG_DEPENDS="libandroid-support, libltdl, libsndfile, libandroid-glob, libsoxr, speexdsp"
|
||||
TERMUX_PKG_DEPENDS="libltdl, libsndfile, libandroid-glob, libsoxr, speexdsp"
|
||||
TERMUX_PKG_BUILD_DEPENDS="libtool"
|
||||
TERMUX_PKG_INCLUDE_IN_DEVPACKAGE="share/vala"
|
||||
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-neon-opt
|
||||
|
Loading…
Reference in New Issue
Block a user