diff options
author | Felix Fietkau <nbd@openwrt.org> | 2015-11-02 18:12:16 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2015-11-02 18:12:16 +0000 |
commit | 014194de605990c6bdce52e03ee3dc1df13c45e8 (patch) | |
tree | c65577c3a956dad1d4d1b05e6d62c2f331218e80 | |
parent | 02df774b52e4a0c0b9a8395e55263b80eb8f5f93 (diff) | |
download | master-31e0f0ae-014194de605990c6bdce52e03ee3dc1df13c45e8.tar.gz master-31e0f0ae-014194de605990c6bdce52e03ee3dc1df13c45e8.tar.bz2 master-31e0f0ae-014194de605990c6bdce52e03ee3dc1df13c45e8.zip |
uclibc: remove version 0.9.33
Latest uClibc-ng is now the only supported option
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 47357
99 files changed, 6 insertions, 4580 deletions
diff --git a/toolchain/uClibc/Config.in b/toolchain/uClibc/Config.in index c923bc0097..5793bb779f 100644 --- a/toolchain/uClibc/Config.in +++ b/toolchain/uClibc/Config.in @@ -1,22 +1,3 @@ -# Choose uclibc version. - -choice - prompt "uClibc Version" - depends on TOOLCHAINOPTS && USE_UCLIBC - default UCLIBC_USE_VERSION_0_9_33 - help - Select the version of uClibc you wish to use. - - config UCLIBC_USE_VERSION_0_9_33 - select UCLIBC_VERSION_0_9_33 - bool "uClibc 0.9.33.2" - - config UCLIBC_USE_VERSION_NG - select UCLIBC_VERSION_NG - bool "uClibc-ng" - -endchoice - # Debug version. config UCLIBC_ENABLE_DEBUG diff --git a/toolchain/uClibc/Config.version b/toolchain/uClibc/Config.version index 7210626997..7804da4940 100644 --- a/toolchain/uClibc/Config.version +++ b/toolchain/uClibc/Config.version @@ -1,13 +1,9 @@ config UCLIBC_VERSION string depends on USE_UCLIBC - default "0.9.33.2" if UCLIBC_VERSION_0_9_33 - default "1.0.8" if UCLIBC_VERSION_NG - default "0.9.33.2" - -config UCLIBC_VERSION_0_9_33 - default y if !TOOLCHAINOPTS && USE_UCLIBC - bool + default "1.0.8" config UCLIBC_VERSION_NG bool + depends on USE_UCLIBC + default y diff --git a/toolchain/uClibc/common.mk b/toolchain/uClibc/common.mk index 026d69de99..895022ce60 100644 --- a/toolchain/uClibc/common.mk +++ b/toolchain/uClibc/common.mk @@ -9,23 +9,14 @@ include $(INCLUDE_DIR)/target.mk PKG_VERSION:=$(call qstrip,$(CONFIG_UCLIBC_VERSION)) -ifeq ($(CONFIG_UCLIBC_VERSION_NG),y) PKG_NAME:=uClibc-ng PKG_SOURCE_URL = http://downloads.uclibc-ng.org/releases/$(PKG_VERSION)/ -PATCH_DIR:=$(PATH_PREFIX)/patches-ng-$(PKG_VERSION) -CONFIG_DIR:=$(PATH_PREFIX)/config-ng-$(PKG_VERSION) -else -PKG_NAME:=uClibc -PKG_SOURCE_URL:=http://www.uclibc.org/downloads -PATCH_DIR:=$(PATH_PREFIX)/patches-$(PKG_VERSION) -CONFIG_DIR:=$(PATH_PREFIX)/config-$(PKG_VERSION) -endif +PATCH_DIR:=$(PATH_PREFIX)/patches +CONFIG_DIR:=$(PATH_PREFIX)/config PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 LIBC_SO_VERSION:=$(PKG_VERSION) -PKG_MD5SUM_0.9.33.2 = a338aaffc56f0f5040e6d9fa8a12eda1 -PKG_MD5SUM_1.0.6 = dfcc780bf2c7e2e42209bbb572e035cf -PKG_MD5SUM=$(PKG_MD5SUM_$(PKG_VERSION)) +PKG_MD5SUM=d7dbc8ddb0274beacbb48e6928d7b097 HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME)-$(PKG_VERSION) diff --git a/toolchain/uClibc/config-0.9.33.2/arm b/toolchain/uClibc/config-0.9.33.2/arm deleted file mode 100644 index b68617bb41..0000000000 --- a/toolchain/uClibc/config-0.9.33.2/arm +++ /dev/null @@ -1,7 +0,0 @@ -ARCH_ANY_ENDIAN=y -ARCH_LITTLE_ENDIAN=y -ARCH_WANTS_LITTLE_ENDIAN=y -# COMPILE_IN_THUMB_MODE is not set -TARGET_ARCH="arm" -TARGET_arm=y -# USE_BX is not set diff --git a/toolchain/uClibc/config-0.9.33.2/armeb b/toolchain/uClibc/config-0.9.33.2/armeb deleted file mode 100644 index d4932e864f..0000000000 --- a/toolchain/uClibc/config-0.9.33.2/armeb +++ /dev/null @@ -1,7 +0,0 @@ -ARCH_ANY_ENDIAN=y -ARCH_BIG_ENDIAN=y -ARCH_WANTS_BIG_ENDIAN=y -# COMPILE_IN_THUMB_MODE is not set -TARGET_ARCH="arm" -TARGET_arm=y -# USE_BX is not set diff --git a/toolchain/uClibc/config-0.9.33.2/common b/toolchain/uClibc/config-0.9.33.2/common deleted file mode 100644 index c26d22b2ce..0000000000 --- a/toolchain/uClibc/config-0.9.33.2/common +++ /dev/null @@ -1,214 +0,0 @@ -# ARCH_ANY_ENDIAN is not set -ARCH_HAS_MMU=y -# ARCH_HAS_NO_LDSO is not set -# ARCH_HAS_NO_SHARED is not set -# ARCH_LITTLE_ENDIAN is not set -ARCH_USE_MMU=y -# ARCH_WANTS_BIG_ENDIAN is not set -# ARCH_WANTS_LITTLE_ENDIAN is not set -ASSUME_DEVPTS=y -# COMPAT_ATEXIT is not set -CROSS_COMPILER_PREFIX="" -DEVEL_PREFIX="/usr/" -# DOASSERTS is not set -# DODEBUG is not set -# DODEBUG_PT is not set -# DOMULTI is not set -DOPIC=y -DOSTRIP=y -DO_C99_MATH=y -# DO_XSI_MATH is not set -# EXTRA_WARNINGS is not set -FORCE_OPTIONS_FOR_ARCH=y -# FORCE_SHAREABLE_TEXT_SEGMENTS is not set -# HARDWIRED_ABSPATH is not set -# HAS_NO_THREADS is not set -HAVE_DOT_CONFIG=y -# HAVE_NO_PIC is not set -# HAVE_NO_SSP is not set -HAVE_SHARED=y -KERNEL_HEADERS="." -LDSO_BASE_FILENAME="ld.so" -LDSO_CACHE_SUPPORT=y -# LDSO_GNU_HASH_SUPPORT is not set -LDSO_LD_LIBRARY_PATH=y -LDSO_LDD_SUPPORT=y -# LDSO_NO_CLEANUP is not set -# LDSO_PRELINK_SUPPORT is not set -# LDSO_PRELOAD_FILE_SUPPORT is not set -LDSO_PRELOAD_ENV_SUPPORT=y -LDSO_RUNPATH=y -# LDSO_SEARCH_INTERP_PATH is not set -# LDSO_STANDALONE_SUPPORT is not set -# LINUXTHREADS_NEW is not set -# LINUXTHREADS_OLD is not set -# UCLIBC_HAS_BACKTRACE is not set -UCLIBC_HAS_THREADS_NATIVE=y -# MALLOC is not set -MALLOC_GLIBC_COMPAT=y -# MALLOC_SIMPLE is not set -MALLOC_STANDARD=y -MULTILIB_DIR="lib" -PTHREADS_DEBUG_SUPPORT=y -RUNTIME_PREFIX="/" -# SUPPORT_LD_DEBUG is not set -# SUPPORT_LD_DEBUG_EARLY is not set -TARGET_SUBARCH="" -# TARGET_alpha is not set -# TARGET_arm is not set -# TARGET_avr32 is not set -# TARGET_bfin is not set -# TARGET_c6x is not set -# TARGET_cris is not set -# TARGET_e1 is not set -# TARGET_frv is not set -# TARGET_h8300 is not set -# TARGET_hppa is not set -# TARGET_i386 is not set -# TARGET_i960 is not set -# TARGET_ia64 is not set -# TARGET_m68k is not set -# TARGET_microblaze is not set -# TARGET_mips is not set -# TARGET_nios is not set -# TARGET_nios2 is not set -# TARGET_powerpc is not set -# TARGET_sh is not set -# TARGET_sh64 is not set -# TARGET_sparc is not set -# TARGET_v850 is not set -# TARGET_vax is not set -# TARGET_x86_64 is not set -# TARGET_xtensa is not set -UCLIBC_BSD_SPECIFIC=y -UCLIBC_BUILD_NOEXECSTACK=y -# UCLIBC_BUILD_NOW is not set -# UCLIBC_BUILD_PIE is not set -UCLIBC_BUILD_RELRO=y -UCLIBC_CTOR_DTOR=y -UCLIBC_DYNAMIC_ATEXIT=y -UCLIBC_EXTRA_CFLAGS="" -UCLIBC_GRP_BUFFER_SIZE=256 -UCLIBC_HAS_ADVANCED_REALTIME=y -# UCLIBC_HAS_ARC4RANDOM is not set -UCLIBC_HAS_BSD_ERR=y -UCLIBC_HAS_BSD_RES_CLOSE=y -# UCLIBC_HAS_COMPAT_RES_STATE is not set -UCLIBC_HAS_CRYPT=y -UCLIBC_HAS_CRYPT_IMPL=y -UCLIBC_HAS_CTYPE_CHECKED=y -# UCLIBC_HAS_CTYPE_ENFORCED is not set -UCLIBC_HAS_CTYPE_SIGNED=y -UCLIBC_HAS_CTYPE_TABLES=y -# UCLIBC_HAS_CTYPE_UNSAFE is not set -UCLIBC_HAS_EPOLL=y -UCLIBC_HAS_ERRNO_MESSAGES=y -# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set -# UCLIBC_HAS_FENV is not set -UCLIBC_HAS_FLOATS=y -UCLIBC_HAS_FNMATCH=y -UCLIBC_HAS_FNMATCH_OLD=y -# UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set -UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y -# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set -# UCLIBC_HAS_FPU is not set -UCLIBC_HAS_FTS=y -UCLIBC_HAS_FTW=y -# UCLIBC_HAS_FULL_RPC is not set -UCLIBC_HAS_GETPT=y -UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y -UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y -# UCLIBC_HAS_GLIBC_DIGIT_GROUPING is not set -UCLIBC_HAS_GLOB=y -UCLIBC_HAS_GNU_ERROR=y -UCLIBC_HAS_GNU_GETOPT=y -UCLIBC_HAS_GNU_GETSUBOPT=y -UCLIBC_HAS_GNU_GLOB=y -UCLIBC_HAS_HEXADECIMAL_FLOATS=y -UCLIBC_HAS_IPV4=y -UCLIBC_HAS_IPV6=y -UCLIBC_HAS_LFS=y -UCLIBC_HAS_LIBNSL_STUB=y -UCLIBC_HAS_LIBRESOLV_STUB=y -UCLIBC_HAS_LIBUTIL=y -# UCLIBC_HAS_LOCALE is not set -# UCLIBC_BUILD_ALL_LOCALE is not set -# UCLIBC_BUILD_MINIMAL_LOCALE is not set -# UCLIBC_PREGENERATED_LOCALE_DATA is not set -UCLIBC_HAS_LONG_DOUBLE_MATH=y -UCLIBC_HAS_NETWORK_SUPPORT=y -UCLIBC_HAS_NFTW=y -# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set -# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set -UCLIBC_HAS_PRINTF_M_SPEC=y -# UCLIBC_HAS_PROFILING is not set -UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y -UCLIBC_HAS_PTY=y -UCLIBC_HAS_REALTIME=y -# UCLIBC_HAS_REENTRANT_RPC is not set -UCLIBC_HAS_REGEX=y -UCLIBC_HAS_REGEX_OLD=y -UCLIBC_HAS_RESOLVER_SUPPORT=y -# UCLIBC_HAS_RPC is not set -UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y -# UCLIBC_HAS_SHA256_CRYPT_IMPL is not set -# UCLIBC_HAS_SHA512_CRYPT_IMPL is not set -UCLIBC_HAS_SHADOW=y -UCLIBC_HAS_SIGNUM_MESSAGES=y -UCLIBC_HAS_SOCKET=y -UCLIBC_HAS_SOFT_FLOAT=y -# UCLIBC_HAS_SSP is not set -# UCLIBC_HAS_SSP_COMPAT is not set -UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y -# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set -UCLIBC_HAS_STDIO_BUFSIZ_4096=y -# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set -UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y -UCLIBC_HAS_STDIO_GETC_MACRO=y -UCLIBC_HAS_STDIO_PUTC_MACRO=y -# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set -UCLIBC_HAS_STRING_ARCH_OPT=y -UCLIBC_HAS_STRING_GENERIC_OPT=y -# UCLIBC_HAS_STUBS is not set -UCLIBC_HAS_SYSLOG=y -# UCLIBC_HAS_SYS_ERRLIST is not set -# UCLIBC_HAS_SYS_SIGLIST is not set -UCLIBC_HAS_THREADS=y -UCLIBC_HAS_TM_EXTENSIONS=y -UCLIBC_HAS_TZ_CACHING=y -UCLIBC_HAS_TZ_FILE=y -UCLIBC_HAS_TZ_FILE_READ_MANY=y -# UCLIBC_HAS_UTMPX is not set -UCLIBC_HAS_WCHAR=y -UCLIBC_HAS_WORDEXP=y -UCLIBC_HAS_XATTR=y -# UCLIBC_HAS_XLOCALE is not set -UCLIBC_HAS___PROGNAME=y -# UCLIBC_LINUX_MODULE_24 is not set -UCLIBC_LINUX_MODULE_26=y -UCLIBC_LINUX_SPECIFIC=y -# UCLIBC_MALLOC_DEBUGGING is not set -# UCLIBC_MJN3_ONLY is not set -# UCLIBC_NTP_LEGACY is not set -# USE_OLD_VFPRINTF is not set -UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 -UCLIBC_PWD_BUFFER_SIZE=256 -# UCLIBC_STATIC_LDCONFIG is not set -# UCLIBC_STRICT_HEADERS is not set -UCLIBC_SUPPORT_AI_ADDRCONFIG=y -UCLIBC_SUSV3_LEGACY=y -UCLIBC_SUSV3_LEGACY_MACROS=y -UCLIBC_SUSV4_LEGACY=y -# UCLIBC_SV4_DEPRECATED is not set -UCLIBC_TZ_FILE_PATH="/etc/TZ" -# UCLIBC_FALLBACK_TO_ETC_LOCALTIME is not set -UCLIBC_USE_NETLINK=y -# UNIX98PTY_ONLY is not set -USE_BX=y -WARNINGS="-Wall" diff --git a/toolchain/uClibc/config-0.9.33.2/mips b/toolchain/uClibc/config-0.9.33.2/mips deleted file mode 100644 index 7398c66929..0000000000 --- a/toolchain/uClibc/config-0.9.33.2/mips +++ /dev/null @@ -1,17 +0,0 @@ -ARCH_ANY_ENDIAN=y -ARCH_BIG_ENDIAN=y -ARCH_CFLAGS="-mno-split-addresses" -ARCH_WANTS_BIG_ENDIAN=y -# CONFIG_MIPS_ISA_1 is not set -# CONFIG_MIPS_ISA_2 is not set -# CONFIG_MIPS_ISA_3 is not set -# CONFIG_MIPS_ISA_4 is not set -CONFIG_MIPS_ISA_MIPS32=y -# CONFIG_MIPS_ISA_MIPS32R2 is not set -# CONFIG_MIPS_ISA_MIPS64 is not set -# CONFIG_MIPS_N32_ABI is not set -# CONFIG_MIPS_N64_ABI is not set -CONFIG_MIPS_O32_ABI=y -TARGET_ARCH="mips" -TARGET_mips=y -UCLIBC_HAS_FPU=y diff --git a/toolchain/uClibc/config-0.9.33.2/mips64 b/toolchain/uClibc/config-0.9.33.2/mips64 deleted file mode 100644 index fa5bee3aa5..0000000000 --- a/toolchain/uClibc/config-0.9.33.2/mips64 +++ /dev/null @@ -1,17 +0,0 @@ -ARCH_ANY_ENDIAN=y -ARCH_BIG_ENDIAN=y -ARCH_CFLAGS="-mno-split-addresses" -ARCH_WANTS_BIG_ENDIAN=y -# CONFIG_MIPS_ISA_1 is not set -# CONFIG_MIPS_ISA_2 is not set -# CONFIG_MIPS_ISA_3 is not set -# CONFIG_MIPS_ISA_4 is not set -# CONFIG_MIPS_ISA_MIPS32 is not set -# CONFIG_MIPS_ISA_MIPS32R2 is not set -CONFIG_MIPS_ISA_MIPS64=y -# CONFIG_MIPS_N32_ABI is not set -CONFIG_MIPS_N64_ABI=y -# CONFIG_MIPS_O32_ABI is not set -TARGET_ARCH="mips" -TARGET_mips=y -UCLIBC_HAS_FPU=y diff --git a/toolchain/uClibc/config-0.9.33.2/mips64.32 b/toolchain/uClibc/config-0.9.33.2/mips64.32 deleted file mode 100644 index 03f7fbaeea..0000000000 --- a/toolchain/uClibc/config-0.9.33.2/mips64.32 +++ /dev/null @@ -1,18 +0,0 @@ -ARCH_ANY_ENDIAN=y -ARCH_BIG_ENDIAN=y -ARCH_CFLAGS="-mno-split-addresses" -ARCH_WANTS_BIG_ENDIAN=y -# CONFIG_MIPS_ISA_1 is not set -# CONFIG_MIPS_ISA_2 is not set -# CONFIG_MIPS_ISA_3 is not set -# CONFIG_MIPS_ISA_4 is not set -# CONFIG_MIPS_ISA_MIPS32 is not set -# CONFIG_MIPS_ISA_MIPS32R2 is not set -CONFIG_MIPS_ISA_MIPS64=y -# CONFIG_MIPS_N32_ABI is not set -# CONFIG_MIPS_N64_ABI is not set -CONFIG_MIPS_O32_ABI=y -TARGET_ARCH="mips" -TARGET_mips=y -TARGET_SUBARCH="mips64" -UCLIBC_HAS_FPU=y diff --git a/toolchain/uClibc/config-0.9.33.2/mips64.64 b/toolchain/uClibc/config-0.9.33.2/mips64.64 deleted file mode 100644 index 7b66c2f782..0000000000 --- a/toolchain/uClibc/config-0.9.33.2/mips64.64 +++ /dev/null @@ -1,18 +0,0 @@ -ARCH_ANY_ENDIAN=y -ARCH_BIG_ENDIAN=y -ARCH_CFLAGS="-mno-split-addresses" -ARCH_WANTS_BIG_ENDIAN=y -# CONFIG_MIPS_ISA_1 is not set -# CONFIG_MIPS_ISA_2 is not set -# CONFIG_MIPS_ISA_3 is not set -# CONFIG_MIPS_ISA_4 is not set -# CONFIG_MIPS_ISA_MIPS32 is not set -# CONFIG_MIPS_ISA_MIPS32R2 is not set -CONFIG_MIPS_ISA_MIPS64=y -# CONFIG_MIPS_N32_ABI is not set -CONFIG_MIPS_N64_ABI=y -# CONFIG_MIPS_O32_ABI is not set -TARGET_ARCH="mips" -TARGET_mips=y -TARGET_SUBARCH="mips64" -UCLIBC_HAS_FPU=y diff --git a/toolchain/uClibc/config-0.9.33.2/mips64.n32 b/toolchain/uClibc/config-0.9.33.2/mips64.n32 deleted file mode 100644 index 84a5de6479..0000000000 --- a/toolchain/uClibc/config-0.9.33.2/mips64.n32 +++ /dev/null @@ -1,18 +0,0 @@ -ARCH_ANY_ENDIAN=y -ARCH_BIG_ENDIAN=y -ARCH_CFLAGS="-mno-split-addresses" -ARCH_WANTS_BIG_ENDIAN=y -# CONFIG_MIPS_ISA_1 is not set -# CONFIG_MIPS_ISA_2 is not set -# CONFIG_MIPS_ISA_3 is not set -# CONFIG_MIPS_ISA_4 is not set -# CONFIG_MIPS_ISA_MIPS32 is not set -# CONFIG_MIPS_ISA_MIPS32R2 is not set -CONFIG_MIPS_ISA_MIPS64=y -CONFIG_MIPS_N32_ABI=y -# CONFIG_MIPS_N64_ABI is not set -# CONFIG_MIPS_O32_ABI is not set -TARGET_ARCH="mips" -TARGET_mips=y -TARGET_SUBARCH="mips64" -UCLIBC_HAS_FPU=y diff --git a/toolchain/uClibc/config-0.9.33.2/mips64el b/toolchain/uClibc/config-0.9.33.2/mips64el deleted file mode 100644 index 1ca764f6e2..0000000000 --- a/toolchain/uClibc/config-0.9.33.2/mips64el +++ /dev/null @@ -1,17 +0,0 @@ -ARCH_ANY_ENDIAN=y -ARCH_CFLAGS="-mno-split-addresses" -ARCH_LITTLE_ENDIAN=y -ARCH_WANTS_LITTLE_ENDIAN=y -# CONFIG_MIPS_ISA_1 is not set -# CONFIG_MIPS_ISA_2 is not set -# CONFIG_MIPS_ISA_3 is not set -# CONFIG_MIPS_ISA_4 is not set -# CONFIG_MIPS_ISA_MIPS32 is not set -# CONFIG_MIPS_ISA_MIPS32R2 is not set -CONFIG_MIPS_ISA_MIPS64=y -# CONFIG_MIPS_N32_ABI is not set -CONFIG_MIPS_N64_ABI=y -# CONFIG_MIPS_O32_ABI is not set -TARGET_ARCH="mips" -TARGET_mips=y -UCLIBC_HAS_FPU=y diff --git a/toolchain/uClibc/config-0.9.33.2/mips64el.32 b/toolchain/uClibc/config-0.9.33.2/mips64el.32 deleted file mode 100644 index 73b1f9f1b4..0000000000 --- a/toolchain/uClibc/config-0.9.33.2/mips64el.32 +++ /dev/null @@ -1,18 +0,0 @@ -ARCH_ANY_ENDIAN=y -ARCH_CFLAGS="-mno-split-addresses" -ARCH_LITTLE_ENDIAN=y -ARCH_WANTS_LITTLE_ENDIAN=y -# CONFIG_MIPS_ISA_1 is not set -# CONFIG_MIPS_ISA_2 is not set -# CONFIG_MIPS_ISA_3 is not set -# CONFIG_MIPS_ISA_4 is not set -# CONFIG_MIPS_ISA_MIPS32 is not set -# CONFIG_MIPS_ISA_MIPS32R2 is not set -CONFIG_MIPS_ISA_MIPS64=y -# CONFIG_MIPS_N32_ABI is not set -# CONFIG_MIPS_N64_ABI is not set -CONFIG_MIPS_O32_ABI=y -TARGET_ARCH="mips" -TARGET_mips=y -TARGET_SUBARCH="mips64" -UCLIBC_HAS_FPU=y diff --git a/toolchain/uClibc/config-0.9.33.2/mips64el.64 b/toolchain/uClibc/config-0.9.33.2/mips64el.64 deleted file mode 100644 index 790f210411..0000000000 --- a/toolchain/uClibc/config-0.9.33.2/mips64el.64 +++ /dev/null @@ -1,18 +0,0 @@ -ARCH_ANY_ENDIAN=y -ARCH_CFLAGS="-mno-split-addresses" -ARCH_LITTLE_ENDIAN=y -ARCH_WANTS_LITTLE_ENDIAN=y -# CONFIG_MIPS_ISA_1 is not set -# CONFIG_MIPS_ISA_2 is not set -# CONFIG_MIPS_ISA_3 is not set -# CONFIG_MIPS_ISA_4 is not set -# CONFIG_MIPS_ISA_MIPS32 is not set -# CONFIG_MIPS_ISA_MIPS32R2 is not set -CONFIG_MIPS_ISA_MIPS64=y -# CONFIG_MIPS_N32_ABI is not set -CONFIG_MIPS_N64_ABI=y -# CONFIG_MIPS_O32_ABI is not set -TARGET_ARCH="mips" -TARGET_mips=y -TARGET_SUBARCH="mips64" -UCLIBC_HAS_FPU=y diff --git a/toolchain/uClibc/config-0.9.33.2/mips64el.n32 b/toolchain/uClibc/config-0.9.33.2/mips64el.n32 deleted file mode 100644 index c2929bf706..0000000000 --- a/toolchain/uClibc/config-0.9.33.2/mips64el.n32 +++ /dev/null @@ -1,18 +0,0 @@ -ARCH_ANY_ENDIAN=y -ARCH_CFLAGS="-mno-split-addresses" -ARCH_LITTLE_ENDIAN=y -ARCH_WANTS_LITTLE_ENDIAN=y -# CONFIG_MIPS_ISA_1 is not set -# CONFIG_MIPS_ISA_2 is not set -# CONFIG_MIPS_ISA_3 is not set -# CONFIG_MIPS_ISA_4 is not set -# CONFIG_MIPS_ISA_MIPS32 is not set -# CONFIG_MIPS_ISA_MIPS32R2 is not set -CONFIG_MIPS_ISA_MIPS64=y -CONFIG_MIPS_N32_ABI=y -# CONFIG_MIPS_N64_ABI is not set -# CONFIG_MIPS_O32_ABI is not set -TARGET_ARCH="mips" -TARGET_mips=y -TARGET_SUBARCH="mips64" -UCLIBC_HAS_FPU=y diff --git a/toolchain/uClibc/config-0.9.33.2/mipsel b/toolchain/uClibc/config-0.9.33.2/mipsel deleted file mode 100644 index 7648f396ba..0000000000 --- a/toolchain/uClibc/config-0.9.33.2/mipsel +++ /dev/null @@ -1,17 +0,0 @@ -ARCH_ANY_ENDIAN=y -ARCH_CFLAGS="-mno-split-addresses" -ARCH_LITTLE_ENDIAN=y -ARCH_WANTS_LITTLE_ENDIAN=y -# CONFIG_MIPS_ISA_1 is not set -# CONFIG_MIPS_ISA_2 is not set -# CONFIG_MIPS_ISA_3 is not set -# CONFIG_MIPS_ISA_4 is not set -CONFIG_MIPS_ISA_MIPS32=y -# CONFIG_MIPS_ISA_MIPS32R2 is not set -# CONFIG_MIPS_ISA_MIPS64 is not set -# CONFIG_MIPS_N32_ABI is not set -# CONFIG_MIPS_N64_ABI is not set -CONFIG_MIPS_O32_ABI=y -TARGET_ARCH="mips" -TARGET_mips=y -UCLIBC_HAS_FPU=y diff --git a/toolchain/uClibc/config-0.9.33.2/mipsel.cobalt b/toolchain/uClibc/config-0.9.33.2/mipsel.cobalt deleted file mode 100644 index 323b0aa52e..0000000000 --- a/toolchain/uClibc/config-0.9.33.2/mipsel.cobalt +++ /dev/null @@ -1,17 +0,0 @@ -ARCH_ANY_ENDIAN=y -ARCH_CFLAGS="-mno-split-addresses" -ARCH_LITTLE_ENDIAN=y -ARCH_WANTS_LITTLE_ENDIAN=y -# CONFIG_MIPS_ISA_1 is not set -# CONFIG_MIPS_ISA_2 is not set -CONFIG_MIPS_ISA_3=y -# CONFIG_MIPS_ISA_4 is not set -# CONFIG_MIPS_ISA_MIPS32 is not set -# CONFIG_MIPS_ISA_MIPS32R2 is not set -# CONFIG_MIPS_ISA_MIPS64 is not set -# CONFIG_MIPS_N32_ABI is not set -# CONFIG_MIPS_N64_ABI is not set -CONFIG_MIPS_O32_ABI=y -TARGET_ARCH="mips" -TARGET_mips=y -UCLIBC_HAS_FPU=y diff --git a/toolchain/uClibc/config-0.9.33.2/x86_64 b/toolchain/uClibc/config-0.9.33.2/x86_64 deleted file mode 100644 index 92f0e6569e..0000000000 --- a/toolchain/uClibc/config-0.9.33.2/x86_64 +++ /dev/null @@ -1,6 +0,0 @@ -ARCH_LITTLE_ENDIAN=y -# LINUXTHREADS_NEW is not set -TARGET_ARCH="x86_64" -TARGET_x86_64=y -UCLIBC_BSD_SPECIFIC=y -UCLIBC_HAS_FPU=y diff --git a/toolchain/uClibc/config-ng-1.0.8/debug b/toolchain/uClibc/config-ng-1.0.8/debug deleted file mode 100644 index b366e66e39..0000000000 --- a/toolchain/uClibc/config-ng-1.0.8/debug +++ /dev/null @@ -1,6 +0,0 @@ -DODEBUG=y -DODEBUG_PT=y -PTHREADS_DEBUG_SUPPORT=y -SUPPORT_LD_DEBUG=y -SUPPORT_LD_DEBUG_EARLY=y -UCLIBC_MALLOC_DEBUGGING=y diff --git a/toolchain/uClibc/config-ng-1.0.8/i386 b/toolchain/uClibc/config-ng-1.0.8/i386 deleted file mode 100644 index 5ef264c271..0000000000 --- a/toolchain/uClibc/config-ng-1.0.8/i386 +++ /dev/null @@ -1,21 +0,0 @@ -ARCH_LITTLE_ENDIAN=y -# CONFIG_386 is not set -CONFIG_486=y -# CONFIG_586 is not set -# CONFIG_586MMX is not set -# CONFIG_686 is not set -# CONFIG_CRUSOE is not set -# CONFIG_CYRIXIII is not set -# CONFIG_ELAN is not set -# CONFIG_GENERIC_386 is not set -# CONFIG_K6 is not set -# CONFIG_K7 is not set -# CONFIG_NEHEMIAH is not set -# CONFIG_PENTIUM4 is not set -# CONFIG_PENTIUMII is not set -# CONFIG_PENTIUMIII is not set -# CONFIG_WINCHIP2 is not set -# CONFIG_WINCHIPC6 is not set -TARGET_ARCH="i386" -TARGET_i386=y -UCLIBC_HAS_FPU=y diff --git a/toolchain/uClibc/config-ng-1.0.8/i686 b/toolchain/uClibc/config-ng-1.0.8/i686 deleted file mode 100644 index ba615f6b86..0000000000 --- a/toolchain/uClibc/config-ng-1.0.8/i686 +++ /dev/null @@ -1,21 +0,0 @@ -ARCH_LITTLE_ENDIAN=y -# CONFIG_386 is not set -# CONFIG_486 is not set -# CONFIG_586 is not set -# CONFIG_586MMX is not set -CONFIG_686=y -# CONFIG_CRUSOE is not set -# CONFIG_CYRIXIII is not set -# CONFIG_ELAN is not set -# CONFIG_GENERIC_386 is not set -# CONFIG_K6 is not set -# CONFIG_K7 is not set -# CONFIG_NEHEMIAH is not set -# CONFIG_PENTIUM4 is not set -# CONFIG_PENTIUMII is not set -# CONFIG_PENTIUMIII is not set -# CONFIG_WINCHIP2 is not set -# CONFIG_WINCHIPC6 is not set -TARGET_ARCH="i386" -TARGET_i386=y -UCLIBC_HAS_FPU=y diff --git a/toolchain/uClibc/config-ng-1.0.8/m68k b/toolchain/uClibc/config-ng-1.0.8/m68k deleted file mode 100644 index 14ce5aef7b..0000000000 --- a/toolchain/uClibc/config-ng-1.0.8/m68k +++ /dev/null @@ -1,6 +0,0 @@ -ARCH_BIG_ENDIAN=y -LINUXTHREADS_OLD=y -TARGET_ARCH="m68k" -TARGET_SUBARCH="" -TARGET_m68k=y -# UCLIBC_HAS_THREADS_NATIVE is not set diff --git a/toolchain/uClibc/config-ng-1.0.8/powerpc b/toolchain/uClibc/config-ng-1.0.8/powerpc deleted file mode 100644 index 5b1292d12e..0000000000 --- a/toolchain/uClibc/config-ng-1.0.8/powerpc +++ /dev/null @@ -1,6 +0,0 @@ -ARCH_BIG_ENDIAN=y -CONFIG_CLASSIC=y -# CONFIG_E500 is not set -TARGET_ARCH="powerpc" -TARGET_SUBARCH="classic" -TARGET_powerpc=y diff --git a/toolchain/uClibc/config-ng-1.0.8/powerpc.e500 b/toolchain/uClibc/config-ng-1.0.8/powerpc.e500 deleted file mode 100644 index a835c3d5e7..0000000000 --- a/toolchain/uClibc/config-ng-1.0.8/powerpc.e500 +++ /dev/null @@ -1,6 +0,0 @@ -ARCH_BIG_ENDIAN=y -# CONFIG_CLASSIC is not set -CONFIG_E500=y -TARGET_ARCH="powerpc" -TARGET_SUBARCH="classic" -TARGET_powerpc=y diff --git a/toolchain/uClibc/config-ng-1.0.8/sparc b/toolchain/uClibc/config-ng-1.0.8/sparc deleted file mode 100644 index e1596c4100..0000000000 --- a/toolchain/uClibc/config-ng-1.0.8/sparc +++ /dev/null @@ -1,8 +0,0 @@ -ARCH_BIG_ENDIAN=y -# CONFIG_SPARC_V7 is not set -# CONFIG_SPARC_V8 is not set -CONFIG_SPARC_V9=y -# CONFIG_SPARC_V9B is not set -TARGET_ARCH="sparc" -TARGET_sparc=y -UCLIBC_HAS_LONG_DOUBLE_MATH=y diff --git a/toolchain/uClibc/config-ng-1.0.8/sparc.leon b/toolchain/uClibc/config-ng-1.0.8/sparc.leon deleted file mode 100644 index eb725ac05d..0000000000 --- a/toolchain/uClibc/config-ng-1.0.8/sparc.leon +++ /dev/null @@ -1,8 +0,0 @@ -ARCH_BIG_ENDIAN=y -# CONFIG_SPARC_V7 is not set -CONFIG_SPARC_V8=y -# CONFIG_SPARC_V9 is not set -# CONFIG_SPARC_V9B is not set -TARGET_ARCH="sparc" -TARGET_sparc=y -UCLIBC_HAS_LONG_DOUBLE_MATH=y diff --git a/toolchain/uClibc/config-ng-1.0.8/arm b/toolchain/uClibc/config/arm index 41a60b1c38..41a60b1c38 100644 --- a/toolchain/uClibc/config-ng-1.0.8/arm +++ b/toolchain/uClibc/config/arm diff --git a/toolchain/uClibc/config-ng-1.0.8/armeb b/toolchain/uClibc/config/armeb index 2e46dd67d9..2e46dd67d9 100644 --- a/toolchain/uClibc/config-ng-1.0.8/armeb +++ b/toolchain/uClibc/config/armeb diff --git a/toolchain/uClibc/config-ng-1.0.8/common b/toolchain/uClibc/config/common index ec72701a22..ec72701a22 100644 --- a/toolchain/uClibc/config-ng-1.0.8/common +++ b/toolchain/uClibc/config/common diff --git a/toolchain/uClibc/config-0.9.33.2/debug b/toolchain/uClibc/config/debug index b366e66e39..b366e66e39 100644 --- a/toolchain/uClibc/config-0.9.33.2/debug +++ b/toolchain/uClibc/config/debug diff --git a/toolchain/uClibc/config-0.9.33.2/i386 b/toolchain/uClibc/config/i386 index 5ef264c271..5ef264c271 100644 --- a/toolchain/uClibc/config-0.9.33.2/i386 +++ b/toolchain/uClibc/config/i386 diff --git a/toolchain/uClibc/config-0.9.33.2/i686 b/toolchain/uClibc/config/i686 index ba615f6b86..ba615f6b86 100644 --- a/toolchain/uClibc/config-0.9.33.2/i686 +++ b/toolchain/uClibc/config/i686 diff --git a/toolchain/uClibc/config-0.9.33.2/m68k b/toolchain/uClibc/config/m68k index 14ce5aef7b..14ce5aef7b 100644 --- a/toolchain/uClibc/config-0.9.33.2/m68k +++ b/toolchain/uClibc/config/m68k diff --git a/toolchain/uClibc/config-ng-1.0.8/mips b/toolchain/uClibc/config/mips index 8cec22f4de..8cec22f4de 100644 --- a/toolchain/uClibc/config-ng-1.0.8/mips +++ b/toolchain/uClibc/config/mips diff --git a/toolchain/uClibc/config-ng-1.0.8/mips64 b/toolchain/uClibc/config/mips64 index 566d87a6e4..566d87a6e4 100644 --- a/toolchain/uClibc/config-ng-1.0.8/mips64 +++ b/toolchain/uClibc/config/mips64 diff --git a/toolchain/uClibc/config-ng-1.0.8/mips64.32 b/toolchain/uClibc/config/mips64.32 index b7ea8f457e..b7ea8f457e 100644 --- a/toolchain/uClibc/config-ng-1.0.8/mips64.32 +++ b/toolchain/uClibc/config/mips64.32 diff --git a/toolchain/uClibc/config-ng-1.0.8/mips64.64 b/toolchain/uClibc/config/mips64.64 index 2a0b755a73..2a0b755a73 100644 --- a/toolchain/uClibc/config-ng-1.0.8/mips64.64 +++ b/toolchain/uClibc/config/mips64.64 diff --git a/toolchain/uClibc/config-ng-1.0.8/mips64.n32 b/toolchain/uClibc/config/mips64.n32 index f8def5837f..f8def5837f 100644 --- a/toolchain/uClibc/config-ng-1.0.8/mips64.n32 +++ b/toolchain/uClibc/config/mips64.n32 diff --git a/toolchain/uClibc/config-ng-1.0.8/mips64el b/toolchain/uClibc/config/mips64el index 53580787b5..53580787b5 100644 --- a/toolchain/uClibc/config-ng-1.0.8/mips64el +++ b/toolchain/uClibc/config/mips64el diff --git a/toolchain/uClibc/config-ng-1.0.8/mips64el.32 b/toolchain/uClibc/config/mips64el.32 index a10840bf96..a10840bf96 100644 --- a/toolchain/uClibc/config-ng-1.0.8/mips64el.32 +++ b/toolchain/uClibc/config/mips64el.32 diff --git a/toolchain/uClibc/config-ng-1.0.8/mips64el.64 b/toolchain/uClibc/config/mips64el.64 index 8b90a54a57..8b90a54a57 100644 --- a/toolchain/uClibc/config-ng-1.0.8/mips64el.64 +++ b/toolchain/uClibc/config/mips64el.64 diff --git a/toolchain/uClibc/config-ng-1.0.8/mips64el.n32 b/toolchain/uClibc/config/mips64el.n32 index 4ac4d06c0d..4ac4d06c0d 100644 --- a/toolchain/uClibc/config-ng-1.0.8/mips64el.n32 +++ b/toolchain/uClibc/config/mips64el.n32 diff --git a/toolchain/uClibc/config-ng-1.0.8/mipsel b/toolchain/uClibc/config/mipsel index d9dedbb02c..d9dedbb02c 100644 --- a/toolchain/uClibc/config-ng-1.0.8/mipsel +++ b/toolchain/uClibc/config/mipsel diff --git a/toolchain/uClibc/config-ng-1.0.8/mipsel.cobalt b/toolchain/uClibc/config/mipsel.cobalt index 1d42a70f23..1d42a70f23 100644 --- a/toolchain/uClibc/config-ng-1.0.8/mipsel.cobalt +++ b/toolchain/uClibc/config/mipsel.cobalt diff --git a/toolchain/uClibc/config-0.9.33.2/powerpc b/toolchain/uClibc/config/powerpc index 5b1292d12e..5b1292d12e 100644 --- a/toolchain/uClibc/config-0.9.33.2/powerpc +++ b/toolchain/uClibc/config/powerpc diff --git a/toolchain/uClibc/config-0.9.33.2/powerpc.e500 b/toolchain/uClibc/config/powerpc.e500 index a835c3d5e7..a835c3d5e7 100644 --- a/toolchain/uClibc/config-0.9.33.2/powerpc.e500 +++ b/toolchain/uClibc/config/powerpc.e500 diff --git a/toolchain/uClibc/config-0.9.33.2/sparc b/toolchain/uClibc/config/sparc index e1596c4100..e1596c4100 100644 --- a/toolchain/uClibc/config-0.9.33.2/sparc +++ b/toolchain/uClibc/config/sparc diff --git a/toolchain/uClibc/config-0.9.33.2/sparc.leon b/toolchain/uClibc/config/sparc.leon index eb725ac05d..eb725ac05d 100644 --- a/toolchain/uClibc/config-0.9.33.2/sparc.leon +++ b/toolchain/uClibc/config/sparc.leon diff --git a/toolchain/uClibc/config-ng-1.0.8/x86_64 b/toolchain/uClibc/config/x86_64 index b6dc2c2afe..b6dc2c2afe 100644 --- a/toolchain/uClibc/config-ng-1.0.8/x86_64 +++ b/toolchain/uClibc/config/x86_64 diff --git a/toolchain/uClibc/patches-0.9.33.2/009_backport_mount.h-update.patch b/toolchain/uClibc/patches-0.9.33.2/009_backport_mount.h-update.patch deleted file mode 100644 index 47fb624e98..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/009_backport_mount.h-update.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 76ff037059f6d387bde9d540f7e27a2b376d7cd7 Mon Sep 17 00:00:00 2001 -From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> -Date: Fri, 18 Jan 2013 11:12:49 +0100 -Subject: [PATCH] mount.h: update - -Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> ---- - include/sys/mount.h | 45 +++++++++++++++++++++++++++++++++++---------- - 1 file changed, 35 insertions(+), 10 deletions(-) - -diff --git a/include/sys/mount.h b/include/sys/mount.h -index fbd61fd..c0e7b84 100644 ---- a/include/sys/mount.h -+++ b/include/sys/mount.h -@@ -1,5 +1,5 @@ - /* Header file for mounting/unmount Linux filesystems. -- Copyright (C) 1996,1997,1998,1999,2000,2004 Free Software Foundation, Inc. -+ Copyright (C) 1996-2000, 2004, 2010, 2012 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -46,23 +46,46 @@ enum - #define MS_REMOUNT MS_REMOUNT - MS_MANDLOCK = 64, /* Allow mandatory locks on an FS. */ - #define MS_MANDLOCK MS_MANDLOCK -- S_WRITE = 128, /* Write on file/directory/symlink. */ --#define S_WRITE S_WRITE -- S_APPEND = 256, /* Append-only file. */ --#define S_APPEND S_APPEND -- S_IMMUTABLE = 512, /* Immutable file. */ --#define S_IMMUTABLE S_IMMUTABLE -+ MS_DIRSYNC = 128, /* Directory modifications are synchronous. */ -+#define MS_DIRSYNC MS_DIRSYNC - MS_NOATIME = 1024, /* Do not update access times. */ - #define MS_NOATIME MS_NOATIME - MS_NODIRATIME = 2048, /* Do not update directory access times. */ - #define MS_NODIRATIME MS_NODIRATIME - MS_BIND = 4096, /* Bind directory at different place. */ - #define MS_BIND MS_BIND -+ MS_MOVE = 8192, -+#define MS_MOVE MS_MOVE -+ MS_REC = 16384, -+#define MS_REC MS_REC -+ MS_SILENT = 32768, -+#define MS_SILENT MS_SILENT -+ MS_POSIXACL = 1 << 16, /* VFS does not apply the umask. */ -+#define MS_POSIXACL MS_POSIXACL -+ MS_UNBINDABLE = 1 << 17, /* Change to unbindable. */ -+#define MS_UNBINDABLE MS_UNBINDABLE -+ MS_PRIVATE = 1 << 18, /* Change to private. */ -+#define MS_PRIVATE MS_PRIVATE -+ MS_SLAVE = 1 << 19, /* Change to slave. */ -+#define MS_SLAVE MS_SLAVE -+ MS_SHARED = 1 << 20, /* Change to shared. */ -+#define MS_SHARED MS_SHARED -+ MS_RELATIME = 1 << 21, /* Update atime relative to mtime/ctime. */ -+#define MS_RELATIME MS_RELATIME -+ MS_KERNMOUNT = 1 << 22, /* This is a kern_mount call. */ -+#define MS_KERNMOUNT MS_KERNMOUNT -+ MS_I_VERSION = 1 << 23, /* Update inode I_version field. */ -+#define MS_I_VERSION MS_I_VERSION -+ MS_STRICTATIME = 1 << 24, /* Always perform atime updates. */ -+#define MS_STRICTATIME MS_STRICTATIME -+ MS_ACTIVE = 1 << 30, -+#define MS_ACTIVE MS_ACTIVE -+ MS_NOUSER = 1 << 31 -+#define MS_NOUSER MS_NOUSER - }; - - /* Flags that can be altered by MS_REMOUNT */ --#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_NOATIME \ -- |MS_NODIRATIME) -+#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION) - - - /* Magic mount flag number. Has to be or-ed to the flag values. */ -@@ -99,8 +122,10 @@ enum - #define MNT_FORCE MNT_FORCE - MNT_DETACH = 2, /* Just detach from the tree. */ - #define MNT_DETACH MNT_DETACH -- MNT_EXPIRE = 4 /* Mark for expiry. */ -+ MNT_EXPIRE = 4, /* Mark for expiry. */ - #define MNT_EXPIRE MNT_EXPIRE -+ UMOUNT_NOFOLLOW = 8 /* Don't follow symlink on umount. */ -+#define UMOUNT_NOFOLLOW UMOUNT_NOFOLLOW - }; - - --- -1.9.1 - diff --git a/toolchain/uClibc/patches-0.9.33.2/010-backport_sscanf_alloc.patch b/toolchain/uClibc/patches-0.9.33.2/010-backport_sscanf_alloc.patch deleted file mode 100644 index b5ce091264..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/010-backport_sscanf_alloc.patch +++ /dev/null @@ -1,184 +0,0 @@ -From 8cfb43de636faa401634340d1a18404844f9ba5a Mon Sep 17 00:00:00 2001 -From: Mike Frysinger <vapier@gentoo.org> -Date: Sun, 6 May 2012 03:50:44 -0400 -Subject: [PATCH] stdio: implement assignment-allocation "m" character - -The latest POSIX spec introduces a "m" character to allocate buffers for -the user when using scanf type functions. This is like the old glibc "a" -flag, but now standardized. With packages starting to use these, we need -to implement it. - -for example: - char *s; - sscanf("foo", "%ms", &s); - printf("%s\n", s); - free(s); -This will automatically allocate storage for "s", read in "foo" to it, -and then display it. - -I'm not terribly familiar with the stdio layer, so this could be wrong. -But it seems to work for me. - -Signed-off-by: Mike Frysinger <vapier@gentoo.org> -Signed-off-by: Felix Fietkau <nbd@openwrt.org> ---- - extra/Configs/Config.in | 13 ---------- - libc/stdio/_scanf.c | 68 ++++++++++++++++++++++++++++--------------------- - 2 files changed, 39 insertions(+), 42 deletions(-) - ---- a/extra/Configs/Config.in -+++ b/extra/Configs/Config.in -@@ -1590,19 +1590,6 @@ config UCLIBC_PRINTF_SCANF_POSITIONAL_AR - - Most people will answer 9. - -- --config UCLIBC_HAS_SCANF_GLIBC_A_FLAG -- bool "Support glibc's 'a' flag for scanf string conversions (not implemented)" -- help -- NOTE!!! Currently Not Implemented!!! Just A Place Holder!! NOTE!!! -- NOTE!!! Conflicts with an ANSI/ISO C99 scanf flag!! NOTE!!! -- -- Answer Y to enable support for glibc's 'a' flag for the scanf string -- conversions '%s', '%[', '%ls', '%l[', and '%S'. This is used to -- auto-allocate sufficient memory to hold the data retrieved. -- -- Most people will answer N. -- - choice - prompt "Stdio buffer size" - default UCLIBC_HAS_STDIO_BUFSIZ_4096 ---- a/libc/stdio/_scanf.c -+++ b/libc/stdio/_scanf.c -@@ -77,14 +77,6 @@ - #include <bits/uClibc_fpmax.h> - #endif /* __UCLIBC_HAS_FLOATS__ */ - --#ifdef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ --#ifdef L_vfscanf --/* only emit this once */ --#warning Forcing undef of __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ until implemented! --#endif --#undef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ --#endif -- - #undef __STDIO_HAS_VSSCANF - #if defined(__STDIO_BUFFERS) || !defined(__UCLIBC_HAS_WCHAR__) || defined(__UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__) - #define __STDIO_HAS_VSSCANF 1 -@@ -433,8 +425,9 @@ libc_hidden_def(vswscanf) - - - /* float layout 0123456789012345678901 repeat n for "l[" */ --#define SPEC_CHARS "npxXoudifFeEgGaACSncs[" --/* npxXoudif eEgG CS cs[ */ -+#define SPEC_CHARS "npxXoudifFeEgGaACSnmcs[" -+/* npxXoudif eEgG CS cs[ */ -+/* NOTE: the 'm' flag must come before any convs that support it */ - - /* NOTE: Ordering is important! In particular, CONV_LEFTBRACKET - * must immediately precede CONV_c. */ -@@ -444,7 +437,7 @@ enum { - CONV_p, - CONV_x, CONV_X, CONV_o, CONV_u, CONV_d, CONV_i, - CONV_f, CONV_F, CONV_e, CONV_E, CONV_g, CONV_G, CONV_a, CONV_A, -- CONV_C, CONV_S, CONV_LEFTBRACKET, CONV_c, CONV_s, CONV_leftbracket, -+ CONV_C, CONV_S, CONV_LEFTBRACKET, CONV_m, CONV_c, CONV_s, CONV_leftbracket, - CONV_percent, CONV_whitespace /* not in SPEC_* and no flags */ - }; - -@@ -474,7 +467,7 @@ enum { - FLAG_SURPRESS = 0x10, /* MUST BE 1ST!! See DO_FLAGS. */ - FLAG_THOUSANDS = 0x20, - FLAG_I18N = 0x40, /* only works for d, i, u */ -- FLAG_MALLOC = 0x80, /* only works for s, S, and [ (and l[)*/ -+ FLAG_MALLOC = 0x80, /* only works for c, s, S, and [ (and l[)*/ - }; - - -@@ -491,7 +484,7 @@ enum { - /* fFeEgGaA */ (0x0c|FLAG_SURPRESS|FLAG_THOUSANDS|FLAG_I18N), \ - /* C */ ( 0|FLAG_SURPRESS), \ - /* S and l[ */ ( 0|FLAG_SURPRESS|FLAG_MALLOC), \ -- /* c */ (0x04|FLAG_SURPRESS), \ -+ /* c */ (0x04|FLAG_SURPRESS|FLAG_MALLOC), \ - /* s and [ */ (0x04|FLAG_SURPRESS|FLAG_MALLOC), \ - } - -@@ -904,17 +897,17 @@ int attribute_hidden __psfs_parse_spec(r - if (*psfs->fmt == *p) { - int p_m_spec_chars = p - spec_chars; - --#ifdef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ --#error implement gnu a flag -- if ((*p == 'a') -- && ((psfs->fmt[1] == '[') || ((psfs->fmt[1]|0x20) == 's')) -- ) { /* Assumes ascii for 's' and 'S' test. */ -- psfs->flags |= FLAG_MALLOC; -+ if (*p == 'm' && -+ (psfs->fmt[1] == '[' || psfs->fmt[1] == 'c' || -+ /* Assumes ascii for 's' and 'S' test. */ -+ (psfs->fmt[1] | 0x20) == 's')) -+ { -+ if (psfs->store) -+ psfs->flags |= FLAG_MALLOC; - ++psfs->fmt; - ++p; -- continue; /* The related conversions follow 'a'. */ -+ continue; /* The related conversions follow 'm'. */ - } --#endif /* __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ */ - - for (p = spec_ranges; p_m_spec_chars > *p ; ++p) {} - if (((psfs->dataargtype >> 8) | psfs->flags) -@@ -1265,12 +1258,6 @@ int VFSCANF (FILE *__restrict fp, const - while (*wf && __isascii(*wf) && (b < buf + sizeof(buf) - 1)) { - *b++ = *wf++; - } --#ifdef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ --#error this is wrong... we need to ched in __psfs_parse_spec instead since this checks last char in buffer and conversion my have stopped before it. -- if ((*b == 'a') && ((*wf == '[') || ((*wf|0x20) == 's'))) { -- goto DONE; /* Spec was excessively long. */ -- } --#endif /* __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ */ - *b = 0; - if (b == buf) { /* Bad conversion specifier! */ - goto DONE; -@@ -1390,13 +1377,36 @@ int VFSCANF (FILE *__restrict fp, const - } - - if (psfs.conv_num == CONV_s) { -+ /* We might have to handle the allocation ourselves */ -+ int len; -+ /* With 'm', we actually got a pointer to a pointer */ -+ unsigned char **ptr = (void *)b; -+ -+ i = 0; -+ if (psfs.flags & FLAG_MALLOC) { -+ len = 0; -+ b = NULL; -+ } else -+ len = -1; -+ - /* Yes, believe it or not, a %s conversion can store nuls. */ - while ((__scan_getc(&sc) >= 0) && !isspace(sc.cc)) { - zero_conversions = 0; -- *b = sc.cc; -- b += psfs.store; -+ if (i == len) { -+ /* Pick a size that won't trigger a lot of -+ * mallocs early on ... */ -+ len += 256; -+ b = realloc(b, len + 1); -+ } -+ b[i] = sc.cc; -+ i += psfs.store; - fail = 0; - } -+ -+ if (psfs.flags & FLAG_MALLOC) -+ *ptr = b; -+ /* The code below takes care of terminating NUL */ -+ b += i; - } else { - #ifdef __UCLIBC_HAS_WCHAR__ - assert((psfs.conv_num == CONV_LEFTBRACKET) || \ diff --git a/toolchain/uClibc/patches-0.9.33.2/011-dlsym_rtld_next_fix.patch b/toolchain/uClibc/patches-0.9.33.2/011-dlsym_rtld_next_fix.patch deleted file mode 100644 index f1a8ff5164..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/011-dlsym_rtld_next_fix.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- a/ldso/libdl/libdl.c -+++ b/ldso/libdl/libdl.c -@@ -671,7 +671,7 @@ static void *do_dlsym(void *vhandle, con - { - struct elf_resolve *tpnt, *tfrom; - struct dyn_elf *handle; -- ElfW(Addr) from; -+ ElfW(Addr) from = 0; - struct dyn_elf *rpnt; - void *ret; - struct symbol_ref sym_ref = { NULL, NULL }; -@@ -729,7 +729,12 @@ static void *do_dlsym(void *vhandle, con - tpnt = NULL; - if (handle == _dl_symbol_tables) - tpnt = handle->dyn; /* Only search RTLD_GLOBAL objs if global object */ -- ret = _dl_find_hash(name2, &handle->dyn->symbol_scope, tpnt, ELF_RTYPE_CLASS_DLSYM, &sym_ref); -+ do { -+ ret = _dl_find_hash(name2, &handle->dyn->symbol_scope, tpnt, ELF_RTYPE_CLASS_DLSYM, &sym_ref); -+ if (ret != NULL) -+ break; -+ handle = handle->next; -+ } while (from && handle); - - #if defined(USE_TLS) && USE_TLS && defined SHARED - if (sym_ref.sym && (ELF_ST_TYPE(sym_ref.sym->st_info) == STT_TLS) && (sym_ref.tpnt)) { diff --git a/toolchain/uClibc/patches-0.9.33.2/012-elf-Add-STT_GNU_IFUNC-from-glibc.patch b/toolchain/uClibc/patches-0.9.33.2/012-elf-Add-STT_GNU_IFUNC-from-glibc.patch deleted file mode 100644 index 6cecfaad47..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/012-elf-Add-STT_GNU_IFUNC-from-glibc.patch +++ /dev/null @@ -1,37 +0,0 @@ -From be58779614b2fe9aa57a9315be9dc004dfd77b3b Mon Sep 17 00:00:00 2001 -From: Vineet Gupta <vgupta@synopsys.com> -Date: Fri, 20 Feb 2015 15:27:08 +0530 -Subject: [PATCH] elf: Add STT_GNU_IFUNC from glibc - -perf in upstream Linux kernel 3.17 onwards expects STT_GNU_IFUNC -replicate it from glibc - -Signed-off-by: Vineet Gupta <vgupta@synopsys.com> -Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> ---- - include/elf.h | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/include/elf.h b/include/elf.h -index facf09c..917930b 100644 ---- a/include/elf.h -+++ b/include/elf.h -@@ -566,6 +566,7 @@ typedef struct - #define STB_WEAK 2 /* Weak symbol */ - #define STB_NUM 3 /* Number of defined types. */ - #define STB_LOOS 10 /* Start of OS-specific */ -+#define STB_GNU_UNIQUE 10 /* Unique symbol. */ - #define STB_HIOS 12 /* End of OS-specific */ - #define STB_LOPROC 13 /* Start of processor-specific */ - #define STB_HIPROC 15 /* End of processor-specific */ -@@ -581,6 +582,7 @@ typedef struct - #define STT_TLS 6 /* Symbol is thread-local data object*/ - #define STT_NUM 7 /* Number of defined types. */ - #define STT_LOOS 10 /* Start of OS-specific */ -+#define STT_GNU_IFUNC 10 /* Symbol is indirect code object */ - #define STT_HIOS 12 /* End of OS-specific */ - #define STT_LOPROC 13 /* Start of processor-specific */ - #define STT_HIPROC 15 /* End of processor-specific */ --- -2.1.4 - diff --git a/toolchain/uClibc/patches-0.9.33.2/020-endian.h-add-some-handy-macros-to-be-used-in-syscall.patch b/toolchain/uClibc/patches-0.9.33.2/020-endian.h-add-some-handy-macros-to-be-used-in-syscall.patch deleted file mode 100644 index 720104195a..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/020-endian.h-add-some-handy-macros-to-be-used-in-syscall.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: "Peter S. Mazinger" <ps.m@gmx.net> -Date: Thu, 21 Apr 2011 21:20:55 +0200 -Subject: [PATCH] endian.h: add some handy macros to be used in syscalls - -Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> -Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> ---- - ---- a/include/endian.h -+++ b/include/endian.h -@@ -55,6 +55,17 @@ - # define __LONG_LONG_PAIR(HI, LO) HI, LO - #endif - -+#ifdef _LIBC -+# ifndef __ASSEMBLER__ -+# include <stdint.h> -+# define OFF_HI(offset) (offset >> 31) -+# define OFF_LO(offset) (offset) -+# define OFF64_HI(offset) (uint32_t)(offset >> 32) -+# define OFF64_LO(offset) (uint32_t)(offset & 0xffffffff) -+# define OFF_HI_LO(offset) __LONG_LONG_PAIR(OFF_HI(offset), OFF_LO(offset)) -+# define OFF64_HI_LO(offset) __LONG_LONG_PAIR(OFF64_HI(offset), OFF64_LO(offset)) -+# endif -+#endif - - #ifdef __USE_BSD - /* Conversion interfaces. */ diff --git a/toolchain/uClibc/patches-0.9.33.2/021-add-posix_madvise.c.patch b/toolchain/uClibc/patches-0.9.33.2/021-add-posix_madvise.c.patch deleted file mode 100644 index 2b18c258d9..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/021-add-posix_madvise.c.patch +++ /dev/null @@ -1,48 +0,0 @@ -From: "Peter S. Mazinger" <ps.m@gmx.net> -Date: Tue, 26 Apr 2011 23:03:44 +0200 -Subject: [PATCH] add posix_madvise.c - -Signed-off-by: Peter S. Mazinger <ps.m@gmx.net> -Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> ---- - create mode 100644 libc/sysdeps/linux/common/posix_madvise.c - ---- a/libc/sysdeps/linux/common/Makefile.in -+++ b/libc/sysdeps/linux/common/Makefile.in -@@ -81,7 +81,7 @@ CSRC-$(UCLIBC_HAS_REALTIME) += clock_get - sched_get_priority_max.c sched_get_priority_min.c sched_getscheduler.c \ - sched_rr_get_interval.c sched_setparam.c sched_setscheduler.c sigqueue.c - # clock_getcpuclockid|clock_nanosleep|mq_timedreceive|mq_timedsend|posix_fadvise|posix_fallocate|posix_madvise|posix_memalign|posix_mem_offset|posix_spawnattr_destroy|posix_spawnattr_init|posix_spawnattr_getflags|posix_spawnattr_setflags|posix_spawnattr_getpgroup|posix_spawnattr_setpgroup|posix_spawnattr_getschedparam|posix_spawnattr_setschedparam|posix_spawnattr_getschedpolicy|posix_spawnattr_setschedpolicy|posix_spawnattr_getsigdefault|posix_spawnattr_setsigdefault|posix_spawnattr_getsigmask|posix_spawnattr_setsigmask|posix_spawnattr_init|posix_spawnattr_setflags|posix_spawnattr_setpgroup|posix_spawnattr_setschedparam|posix_spawnattr_setschedpolicy|posix_spawnattr_setsigdefault|posix_spawnattr_setsigmask|posix_spawn_file_actions_addclose|posix_spawn_file_actions_addopen|posix_spawn_file_actions_adddup2|posix_spawn_file_actions_addopen|posix_spawn_file_actions_destroy|posix_spawn_file_actions_init|posix_spawn_file_actions_init|posix_spawn|posix_spawnp|posix_spawnp|posix_typed_mem_get_info|pthread_mutex_timedlock|sem_timedwait --CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise64.c posix_fadvise.c -+CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise64.c posix_fadvise.c posix_madvise.c - CSRC-$(UCLIBC_SUSV4_LEGACY) += utime.c - CSRC-$(UCLIBC_HAS_EPOLL) += epoll.c - CSRC-$(UCLIBC_HAS_XATTR) += xattr.c ---- /dev/null -+++ b/libc/sysdeps/linux/common/posix_madvise.c -@@ -0,0 +1,25 @@ -+/* vi: set sw=4 ts=4: */ -+/* Licensed under the LGPL v2.1, see the file LICENSE in this tarball. */ -+ -+#include <sys/mman.h> -+#include <sys/syscall.h> -+ -+#if defined __NR_madvise && defined __USE_XOPEN2K && defined __UCLIBC_HAS_ADVANCED_REALTIME__ -+int posix_madvise(void *addr, size_t len, int advice) -+{ -+ int result; -+ /* We have one problem: the kernel's MADV_DONTNEED does not -+ * correspond to POSIX's POSIX_MADV_DONTNEED. The former simply -+ * discards changes made to the memory without writing it back to -+ * disk, if this would be necessary. The POSIX behaviour does not -+ * allow this. There is no functionality mapping for the POSIX -+ * behaviour so far so we ignore that advice for now. */ -+ if (advice == POSIX_MADV_DONTNEED) -+ return 0; -+ -+ /* this part might use madvise function */ -+ INTERNAL_SYSCALL_DECL (err); -+ result = INTERNAL_SYSCALL (madvise, err, 3, addr, len, advice); -+ return INTERNAL_SYSCALL_ERRNO (result, err); -+} -+#endif diff --git a/toolchain/uClibc/patches-0.9.33.2/022-libc-add-posix_fallocate.patch b/toolchain/uClibc/patches-0.9.33.2/022-libc-add-posix_fallocate.patch deleted file mode 100644 index 504405a716..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/022-libc-add-posix_fallocate.patch +++ /dev/null @@ -1,301 +0,0 @@ -From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> -Date: Tue, 17 Apr 2012 09:30:15 +0200 -Subject: [PATCH] libc: add posix_fallocate() - -Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> ---- - create mode 100644 libc/sysdeps/linux/common/posix_fallocate.c - create mode 100644 libc/sysdeps/linux/common/posix_fallocate64.c - create mode 100644 test/unistd/tst-posix_fallocate.c - create mode 100644 test/unistd/tst-posix_fallocate64.c - ---- a/include/fcntl.h -+++ b/include/fcntl.h -@@ -210,9 +210,7 @@ extern int posix_fadvise64 (int __fd, __ - - #endif - --#if 0 /* && defined __UCLIBC_HAS_ADVANCED_REALTIME__ */ -- --/* FIXME -- uClibc should probably implement these... */ -+#if defined __UCLIBC_HAS_ADVANCED_REALTIME__ - - /* Reserve storage for the data of the file associated with FD. - ---- a/libc/sysdeps/linux/common/Makefile.in -+++ b/libc/sysdeps/linux/common/Makefile.in -@@ -81,7 +81,8 @@ CSRC-$(UCLIBC_HAS_REALTIME) += clock_get - sched_get_priority_max.c sched_get_priority_min.c sched_getscheduler.c \ - sched_rr_get_interval.c sched_setparam.c sched_setscheduler.c sigqueue.c - # clock_getcpuclockid|clock_nanosleep|mq_timedreceive|mq_timedsend|posix_fadvise|posix_fallocate|posix_madvise|posix_memalign|posix_mem_offset|posix_spawnattr_destroy|posix_spawnattr_init|posix_spawnattr_getflags|posix_spawnattr_setflags|posix_spawnattr_getpgroup|posix_spawnattr_setpgroup|posix_spawnattr_getschedparam|posix_spawnattr_setschedparam|posix_spawnattr_getschedpolicy|posix_spawnattr_setschedpolicy|posix_spawnattr_getsigdefault|posix_spawnattr_setsigdefault|posix_spawnattr_getsigmask|posix_spawnattr_setsigmask|posix_spawnattr_init|posix_spawnattr_setflags|posix_spawnattr_setpgroup|posix_spawnattr_setschedparam|posix_spawnattr_setschedpolicy|posix_spawnattr_setsigdefault|posix_spawnattr_setsigmask|posix_spawn_file_actions_addclose|posix_spawn_file_actions_addopen|posix_spawn_file_actions_adddup2|posix_spawn_file_actions_addopen|posix_spawn_file_actions_destroy|posix_spawn_file_actions_init|posix_spawn_file_actions_init|posix_spawn|posix_spawnp|posix_spawnp|posix_typed_mem_get_info|pthread_mutex_timedlock|sem_timedwait --CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise64.c posix_fadvise.c posix_madvise.c -+CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise64.c posix_fadvise.c posix_madvise.c \ -+ posix_fallocate.c posix_fallocate64.c - CSRC-$(UCLIBC_SUSV4_LEGACY) += utime.c - CSRC-$(UCLIBC_HAS_EPOLL) += epoll.c - CSRC-$(UCLIBC_HAS_XATTR) += xattr.c ---- a/libc/sysdeps/linux/common/bits/kernel-features.h -+++ b/libc/sysdeps/linux/common/bits/kernel-features.h -@@ -494,6 +494,14 @@ - # define __ASSUME_PRIVATE_FUTEX 1 - #endif - -+/* Support for fallocate was added in 2.6.23, -+ on s390 only after 2.6.23-rc1, on alpha only after 2.6.33-rc1. */ -+#if __LINUX_KERNEL_VERSION >= 0x020617 \ -+ && (!defined __s390__ || __LINUX_KERNEL_VERSION >= 0x020618) \ -+ && (!defined __alpha__ || __LINUX_KERNEL_VERSION >= 0x020621) -+# define __ASSUME_FALLOCATE 1 -+#endif -+ - /* getcpu is a syscall for x86-64 since 3.1. */ - #if defined __x86_64__ && __LINUX_KERNEL_VERSION >= 0x030100 - # define __ASSUME_GETCPU_SYSCALL 1 ---- /dev/null -+++ b/libc/sysdeps/linux/common/posix_fallocate.c -@@ -0,0 +1,43 @@ -+/* vi: set sw=4 ts=4: */ -+/* -+ * posix_fallocate() for uClibc -+ * http://www.opengroup.org/onlinepubs/9699919799/functions/posix_fallocate.html -+ * -+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org> -+ * -+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include <sys/syscall.h> -+#include <fcntl.h> -+#include <bits/kernel-features.h> -+#include <stdint.h> -+ -+#if defined __NR_fallocate -+int posix_fallocate(int fd, __off_t offset, __off_t len) -+{ -+ int ret; -+ -+# if __WORDSIZE == 32 -+ uint32_t off_low = offset; -+ uint32_t len_low = len; -+ /* may assert that these >>31 are 0 */ -+ uint32_t zero = 0; -+ INTERNAL_SYSCALL_DECL(err); -+ ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, 0, -+ __LONG_LONG_PAIR (zero, off_low), -+ __LONG_LONG_PAIR (zero, len_low))); -+# elif __WORDSIZE == 64 -+ INTERNAL_SYSCALL_DECL(err); -+ ret = (int) (INTERNAL_SYSCALL(fallocate, err, 4, fd, 0, offset, len)); -+# else -+# error your machine is neither 32 bit or 64 bit ... it must be magical -+#endif -+ if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err))) -+ return INTERNAL_SYSCALL_ERRNO (ret, err); -+ return 0; -+} -+# if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64 -+strong_alias(posix_fallocate,posix_fallocate64) -+# endif -+#endif ---- /dev/null -+++ b/libc/sysdeps/linux/common/posix_fallocate64.c -@@ -0,0 +1,39 @@ -+/* vi: set sw=4 ts=4: */ -+/* -+ * posix_fallocate() for uClibc -+ * http://www.opengroup.org/onlinepubs/9699919799/functions/posix_fallocate.html -+ * -+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org> -+ * -+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include <sys/syscall.h> -+#include <fcntl.h> -+#include <bits/kernel-features.h> -+#include <stdint.h> -+ -+#if defined __NR_fallocate -+ -+# if __WORDSIZE == 64 -+/* Can use normal posix_fallocate() */ -+# elif __WORDSIZE == 32 -+int posix_fallocate64(int fd, __off64_t offset, __off64_t len) -+{ -+ int ret; -+ uint32_t off_low = offset & 0xffffffff; -+ uint32_t off_high = offset >> 32; -+ uint32_t len_low = len & 0xffffffff; -+ uint32_t len_high = len >> 32; -+ INTERNAL_SYSCALL_DECL(err); -+ ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, 0, -+ __LONG_LONG_PAIR (off_high, off_low), -+ __LONG_LONG_PAIR (len_high, len_low))); -+ if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err))) -+ return INTERNAL_SYSCALL_ERRNO (ret, err); -+ return 0; -+} -+# else -+# error your machine is neither 32 bit or 64 bit ... it must be magical -+# endif -+#endif ---- a/test/.gitignore -+++ b/test/.gitignore -@@ -302,6 +302,8 @@ unistd/getcwd - unistd/getopt - unistd/getopt_long - unistd/tstgetopt -+unistd/tst-posix_fallocate -+unistd/tst-posix_fallocate64 - unistd/tst-preadwrite - unistd/tst-preadwrite64 - unistd/vfork ---- a/test/unistd/Makefile.in -+++ b/test/unistd/Makefile.in -@@ -2,7 +2,10 @@ - # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. - - ifeq ($(UCLIBC_HAS_LFS),) --TESTS_DISABLED := tst-preadwrite64 -+TESTS_DISABLED := tst-preadwrite64 tst-posix_fallocate64 -+endif -+ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),) -+TESTS_DISABLED := tst-posix_fallocate - endif - OPTS_getopt := -abcXXX -9 - OPTS_getopt_long := --add XXX --delete YYY --verbose ---- /dev/null -+++ b/test/unistd/tst-posix_fallocate.c -@@ -0,0 +1,127 @@ -+#include <fcntl.h> -+#include <sys/stat.h> -+ -+#ifndef TST_POSIX_FALLOCATE64 -+# define stat64 stat -+# define fstat64 fstat -+# else -+# ifndef O_LARGEFILE -+# error no O_LARGEFILE but you want to test with LFS enabled -+# endif -+#endif -+ -+static void do_prepare (void); -+#define PREPARE(argc, argv) do_prepare () -+static int do_test (void); -+#define TEST_FUNCTION do_test () -+#include <test-skeleton.c> -+ -+static int fd; -+static void -+do_prepare (void) -+{ -+ fd = create_temp_file ("tst-posix_fallocate.", NULL); -+ if (fd == -1) -+ { -+ printf ("cannot create temporary file: %m\n"); -+ exit (1); -+ } -+} -+ -+ -+static int -+do_test (void) -+{ -+ struct stat64 st; -+ -+ if (fstat64 (fd, &st) != 0) -+ { -+ puts ("1st fstat failed"); -+ return 1; -+ } -+ -+ if (st.st_size != 0) -+ { -+ puts ("file not created with size 0"); -+ return 1; -+ } -+ -+ if (posix_fallocate (fd, 512, 768) != 0) -+ { -+ puts ("1st posix_fallocate call failed"); -+ return 1; -+ } -+ -+ if (fstat64 (fd, &st) != 0) -+ { -+ puts ("2nd fstat failed"); -+ return 1; -+ } -+ -+ if (st.st_size != 512 + 768) -+ { -+ printf ("file size after 1st posix_fallocate call is %llu, expected %u\n", -+ (unsigned long long int) st.st_size, 512u + 768u); -+ return 1; -+ } -+ -+ if (posix_fallocate (fd, 0, 1024) != 0) -+ { -+ puts ("2nd posix_fallocate call failed"); -+ return 1; -+ } -+ -+ if (fstat64 (fd, &st) != 0) -+ { -+ puts ("3rd fstat failed"); -+ return 1; -+ } -+ -+ if (st.st_size != 512 + 768) -+ { -+ puts ("file size changed in 2nd posix_fallocate"); -+ return 1; -+ } -+ -+ if (posix_fallocate (fd, 2048, 64) != 0) -+ { -+ puts ("3rd posix_fallocate call failed"); -+ return 1; -+ } -+ -+ if (fstat64 (fd, &st) != 0) -+ { -+ puts ("4th fstat failed"); -+ return 1; -+ } -+ -+ if (st.st_size != 2048 + 64) -+ { -+ printf ("file size after 3rd posix_fallocate call is %llu, expected %u\n", -+ (unsigned long long int) st.st_size, 2048u + 64u); -+ return 1; -+ } -+#ifdef TST_POSIX_FALLOCATE64 -+ if (posix_fallocate64 (fd, 4097ULL, 4294967295ULL + 2ULL) != 0) -+ { -+ puts ("4th posix_fallocate call failed"); -+ return 1; -+ } -+ -+ if (fstat64 (fd, &st) != 0) -+ { -+ puts ("5th fstat failed"); -+ return 1; -+ } -+ -+ if (st.st_size != 4097ULL + 4294967295ULL + 2ULL) -+ { -+ printf ("file size after 4th posix_fallocate call is %llu, expected %llu\n", -+ (unsigned long long int) st.st_size, 4097ULL + 4294967295ULL + 2ULL); -+ return 1; -+ } -+#endif -+ close (fd); -+ -+ return 0; -+} ---- /dev/null -+++ b/test/unistd/tst-posix_fallocate64.c -@@ -0,0 +1,2 @@ -+#define TST_POSIX_FALLOCATE64 -+#include "tst-posix_fallocate.c" diff --git a/toolchain/uClibc/patches-0.9.33.2/023-libc-add-fallocate-and-fallocate64.patch b/toolchain/uClibc/patches-0.9.33.2/023-libc-add-fallocate-and-fallocate64.patch deleted file mode 100644 index 282b64f52e..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/023-libc-add-fallocate-and-fallocate64.patch +++ /dev/null @@ -1,447 +0,0 @@ -From: "Anthony G. Basile" <blueness@gentoo.org> -Date: Sun, 7 Sep 2014 15:33:46 -0400 -Subject: [PATCH] libc: add fallocate() and fallocate64() - -We add the Linux-specific function fallocate() which allows the user to -directly manipulate allocate space for a file. fallocate() can operate -in different modes, but the default mode is equivalent to posix_fallocate() -which is specified in POSIX.1. - -Recent releases of e2fsprogs 1.42.11 and above expect fallocate64() to be -available. - -Signed-off-by: Anthony G. Basile <blueness@gentoo.org> -Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> ---- - create mode 100644 libc/sysdeps/linux/common/fallocate.c - create mode 100644 libc/sysdeps/linux/common/fallocate64.c - create mode 100644 test/unistd/tst-fallocate.c - create mode 100644 test/unistd/tst-fallocate64.c - ---- a/extra/Configs/Config.in -+++ b/extra/Configs/Config.in -@@ -952,8 +952,8 @@ config UCLIBC_LINUX_SPECIFIC - default y - help - accept4(), bdflush(), -- capget(), capset(), eventfd(), fstatfs(), -- inotify_*(), ioperm(), iopl(), -+ capget(), capset(), eventfd(), fallocate(), -+ fstatfs(), inotify_*(), ioperm(), iopl(), - madvise(), modify_ldt(), pipe2(), personality(), - prctl()/arch_prctl(), pivot_root(), modify_ldt(), - ppoll(), readahead(), reboot(), remap_file_pages(), ---- a/include/fcntl.h -+++ b/include/fcntl.h -@@ -237,6 +237,38 @@ extern int __fcntl_nocancel (int fd, int - libc_hidden_proto(__fcntl_nocancel) - #endif - -+#if (defined __UCLIBC_LINUX_SPECIFIC__ && defined __USE_GNU) || defined _LIBC -+/* Reserve storage for the data of a file associated with FD. This function -+ is Linux-specific. For the portable version, use posix_fallocate(). -+ Unlike the latter, fallocate can operate in different modes. The default -+ mode = 0 is equivalent to posix_fallocate(). -+ -+ Note: These declarations are used in posix_fallocate.c and -+ posix_fallocate64.c, so we expose them internally. -+ */ -+ -+/* Flags for fallocate's mode. */ -+# define FALLOC_FL_KEEP_SIZE 1 /* Don't extend size of file -+ even if offset + len is -+ greater than file size. */ -+# define FALLOC_FL_PUNCH_HOLE 2 /* Create a hole in the file. */ -+ -+# ifndef __USE_FILE_OFFSET64 -+extern int fallocate (int __fd, int __mode, __off_t __offset, __off_t __len); -+# else -+# ifdef __REDIRECT -+extern int __REDIRECT (fallocate, (int __fd, int __mode, __off64_t __offset, -+ __off64_t __len), -+ fallocate64); -+# else -+# define fallocate fallocate64 -+# endif -+# endif -+# ifdef __USE_LARGEFILE64 -+extern int fallocate64 (int __fd, int __mode, __off64_t __offset, __off64_t __len); -+# endif -+#endif -+ - __END_DECLS - - #endif /* fcntl.h */ ---- a/libc/sysdeps/linux/common/Makefile.in -+++ b/libc/sysdeps/linux/common/Makefile.in -@@ -61,6 +61,10 @@ CSRC-$(UCLIBC_LINUX_SPECIFIC) += \ - vmsplice.c - CSRC-$(if $(findstring yy,$(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_LFS)),y) += \ - sendfile64.c -+# posix_fallocate() needs __libc_fallocate() from fallocate.c -+# posix_fallocate64() needs __libc_fallocate64() from fallocate64.c -+CSRC-$(if $(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_ADVANCED_REALTIME),y,) += \ -+ fallocate.c $(filter fallocate64.c,$(CSRC-y)) - # NPTL needs these internally: madvise.c - CSRC-$(findstring y,$(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_THREADS_NATIVE)) += madvise.c - ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y) ---- /dev/null -+++ b/libc/sysdeps/linux/common/fallocate.c -@@ -0,0 +1,48 @@ -+/* vi: set sw=4 ts=4: */ -+/* -+ * fallocate() for uClibc - Based off of posix_fallocate() by Erik Andersen -+ * http://www.opengroup.org/onlinepubs/9699919799/functions/posix_fallocate.html -+ * -+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org> -+ * -+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include <sys/syscall.h> -+#include <fcntl.h> -+#include <bits/kernel-features.h> -+#include <stdint.h> -+ -+#if defined __NR_fallocate -+extern __typeof(fallocate) __libc_fallocate attribute_hidden; -+int attribute_hidden __libc_fallocate(int fd, int mode, __off_t offset, __off_t len) -+{ -+ int ret; -+ -+# if __WORDSIZE == 32 -+ uint32_t off_low = offset; -+ uint32_t len_low = len; -+ /* may assert that these >>31 are 0 */ -+ uint32_t zero = 0; -+ INTERNAL_SYSCALL_DECL(err); -+ ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, mode, -+ __LONG_LONG_PAIR (zero, off_low), -+ __LONG_LONG_PAIR (zero, len_low))); -+# elif __WORDSIZE == 64 -+ INTERNAL_SYSCALL_DECL(err); -+ ret = (int) (INTERNAL_SYSCALL(fallocate, err, 4, fd, mode, offset, len)); -+# else -+# error your machine is neither 32 bit or 64 bit ... it must be magical -+# endif -+ if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err))) -+ return INTERNAL_SYSCALL_ERRNO (ret, err); -+ return 0; -+} -+ -+# if defined __UCLIBC_LINUX_SPECIFIC__ && defined __USE_GNU -+strong_alias(__libc_fallocate,fallocate) -+# if __WORDSIZE == 64 -+strong_alias(__libc_fallocate,fallocate64) -+# endif -+# endif -+#endif ---- /dev/null -+++ b/libc/sysdeps/linux/common/fallocate64.c -@@ -0,0 +1,42 @@ -+/* vi: set sw=4 ts=4: */ -+/* -+ * fallocate() for uClibc - based off posix_fallocate() by Erik Andersen -+ * http://www.opengroup.org/onlinepubs/9699919799/functions/posix_fallocate.html -+ * -+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org> -+ * -+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include <sys/syscall.h> -+ -+#include <fcntl.h> -+#include <bits/kernel-features.h> -+#include <stdint.h> -+ -+#if defined __NR_fallocate -+ -+# if __WORDSIZE == 64 -+/* Can use normal fallocate() */ -+# elif __WORDSIZE == 32 -+extern __typeof(fallocate64) __libc_fallocate64 attribute_hidden; -+int attribute_hidden __libc_fallocate64(int fd, int mode, __off64_t offset, -+ __off64_t len) -+{ -+ int ret; -+ INTERNAL_SYSCALL_DECL(err); -+ ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, mode, -+ OFF64_HI_LO (offset), OFF64_HI_LO (len))); -+ if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err))) -+ return INTERNAL_SYSCALL_ERRNO (ret, err); -+ return 0; -+} -+ -+# if defined __UCLIBC_LINUX_SPECIFIC__ && defined __USE_GNU -+strong_alias(__libc_fallocate64,fallocate64) -+# endif -+ -+# else -+# error your machine is neither 32 bit or 64 bit ... it must be magical -+# endif -+#endif ---- a/libc/sysdeps/linux/common/posix_fallocate.c -+++ b/libc/sysdeps/linux/common/posix_fallocate.c -@@ -14,28 +14,10 @@ - #include <stdint.h> - - #if defined __NR_fallocate -+extern __typeof(fallocate) __libc_fallocate attribute_hidden; - int posix_fallocate(int fd, __off_t offset, __off_t len) - { -- int ret; -- --# if __WORDSIZE == 32 -- uint32_t off_low = offset; -- uint32_t len_low = len; -- /* may assert that these >>31 are 0 */ -- uint32_t zero = 0; -- INTERNAL_SYSCALL_DECL(err); -- ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, 0, -- __LONG_LONG_PAIR (zero, off_low), -- __LONG_LONG_PAIR (zero, len_low))); --# elif __WORDSIZE == 64 -- INTERNAL_SYSCALL_DECL(err); -- ret = (int) (INTERNAL_SYSCALL(fallocate, err, 4, fd, 0, offset, len)); --# else --# error your machine is neither 32 bit or 64 bit ... it must be magical --#endif -- if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err))) -- return INTERNAL_SYSCALL_ERRNO (ret, err); -- return 0; -+ return __libc_fallocate(fd, 0, offset, len); - } - # if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64 - strong_alias(posix_fallocate,posix_fallocate64) ---- a/libc/sysdeps/linux/common/posix_fallocate64.c -+++ b/libc/sysdeps/linux/common/posix_fallocate64.c -@@ -18,22 +18,12 @@ - # if __WORDSIZE == 64 - /* Can use normal posix_fallocate() */ - # elif __WORDSIZE == 32 -+extern __typeof(fallocate64) __libc_fallocate64 attribute_hidden; - int posix_fallocate64(int fd, __off64_t offset, __off64_t len) - { -- int ret; -- uint32_t off_low = offset & 0xffffffff; -- uint32_t off_high = offset >> 32; -- uint32_t len_low = len & 0xffffffff; -- uint32_t len_high = len >> 32; -- INTERNAL_SYSCALL_DECL(err); -- ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, 0, -- __LONG_LONG_PAIR (off_high, off_low), -- __LONG_LONG_PAIR (len_high, len_low))); -- if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err))) -- return INTERNAL_SYSCALL_ERRNO (ret, err); -- return 0; -+ return __libc_fallocate64(fd, 0, offset, len); - } - # else --# error your machine is neither 32 bit or 64 bit ... it must be magical -+# error your machine is neither 32 bit or 64 bit ... it must be magical - # endif - #endif ---- a/test/.gitignore -+++ b/test/.gitignore -@@ -302,6 +302,8 @@ unistd/getcwd - unistd/getopt - unistd/getopt_long - unistd/tstgetopt -+unistd/tst-fallocate -+unistd/tst-fallocate64 - unistd/tst-posix_fallocate - unistd/tst-posix_fallocate64 - unistd/tst-preadwrite ---- /dev/null -+++ b/test/unistd/tst-fallocate.c -@@ -0,0 +1,166 @@ -+#include <fcntl.h> -+#include <sys/stat.h> -+ -+#ifndef TST_FALLOCATE64 -+# define stat64 stat -+# define fstat64 fstat -+# else -+# ifndef O_LARGEFILE -+# error no O_LARGEFILE but you want to test with LFS enabled -+# endif -+#endif -+ -+static void do_prepare(void); -+static int do_test(void); -+#define PREPARE(argc, argv) do_prepare () -+#define TEST_FUNCTION do_test () -+#include <test-skeleton.c> -+ -+static int fd; -+static void -+do_prepare (void) -+{ -+ fd = create_temp_file ("tst-fallocate.", NULL); -+ if (fd == -1) -+ { -+ printf ("cannot create temporary file: %m\n"); -+ exit (1); -+ } -+} -+ -+ -+static int -+do_test (void) -+{ -+ struct stat64 st; -+ int c; -+ char garbage[4096]; -+ blkcnt_t blksb4; -+ -+ if (fstat64 (fd, &st) != 0) -+ { -+ puts ("1st fstat failed"); -+ return 1; -+ } -+ -+ if (st.st_size != 0) -+ { -+ puts ("file not created with size 0"); -+ return 1; -+ } -+ -+ /* This is the default mode which is identical to posix_fallocate(). -+ Note: we need a few extra blocks for FALLOC_FL_PUNCH_HOLE below. -+ While block sizes vary, we'll assume eight 4K blocks for good measure. */ -+ if (fallocate (fd, 0, 8 * 4096, 128) != 0) -+ { -+ puts ("1st fallocate call failed"); -+ return 1; -+ } -+ -+ if (fstat64 (fd, &st) != 0) -+ { -+ puts ("2nd fstat failed"); -+ return 1; -+ } -+ -+ if (st.st_size != 8 * 4096 + 128) -+ { -+ printf ("file size after 1st fallocate call is %llu, expected %u\n", -+ (unsigned long long int) st.st_size, 8u * 4096u + 128u); -+ return 1; -+ } -+ -+ /* Without FALLOC_FL_KEEP_SIZE, this would increaste the size of the file. */ -+ if (fallocate (fd, FALLOC_FL_KEEP_SIZE, 0, 16 * 4096) != 0) -+ { -+ puts ("2nd fallocate call failed"); -+ return 1; -+ } -+ -+ if (fstat64 (fd, &st) != 0) -+ { -+ puts ("3rd fstat failed"); -+ return 1; -+ } -+ -+ if (st.st_size != 8 * 4096 + 128) -+ { -+ printf ("file size changed in 2nd fallocate call to %llu, expected %u\n", -+ (unsigned long long int) st.st_size, 8u * 4096u + 128u); -+ return 1; -+ } -+ -+ /* Let's fill up the first eight 4k blocks with 'x' to force some allocations. */ -+ -+ memset(garbage, 'x', 4096); -+ for(c=0; c < 8; c++) -+ if(write(fd, garbage, 4096) == -1) -+ { -+ puts ("write failed"); -+ return 1; -+ } -+ -+ if (fstat64 (fd, &st) != 0) -+ { -+ puts ("4th fstat failed"); -+ return 1; -+ } -+ -+ blksb4 = st.st_blocks; -+ -+ /* Let's punch a hole in the entire file, turning it effectively into a sparse file. */ -+ if (fallocate (fd, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, 8 * 4096 + 128) != 0) -+ { -+ puts ("3rd fallocate call failed"); -+ return 1; -+ } -+ -+ if (fstat64 (fd, &st) != 0) -+ { -+ puts ("5th fstat failed"); -+ return 1; -+ } -+ -+ if (st.st_size != 8 * 4096 + 128) -+ { -+ printf ("file size after 3rd fallocate call is %llu, expected %u\n", -+ (unsigned long long int) st.st_size, 8u * 4096u + 128u); -+ return 1; -+ } -+ -+ /* The number of allocated blocks should decrease. I hope this works on -+ all filesystems! */ -+ if (st.st_blocks >= blksb4) -+ { -+ printf ("number of blocks after 3rd fallocate call is %lu, expected less than %lu\n", -+ (unsigned long int) st.st_blocks, blksb4); -+ return 1; -+ } -+ -+#ifdef TST_FALLOCATE64 -+ /* We'll just do a mode = 0 test for fallocate64() */ -+ if (fallocate64 (fd, 0, 4097ULL, 4294967295ULL + 2ULL) != 0) -+ { -+ puts ("1st fallocate64 call failed"); -+ return 1; -+ } -+ -+ if (fstat64 (fd, &st) != 0) -+ { -+ puts ("6th fstat failed"); -+ return 1; -+ } -+ -+ if (st.st_size != 4097ULL + 4294967295ULL + 2ULL) -+ { -+ printf ("file size after 1st fallocate64 call is %llu, expected %llu\n", -+ (unsigned long long int) st.st_size, 4097ULL + 4294967295ULL + 2ULL); -+ return 1; -+ } -+#endif -+ close (fd); -+ -+ return 0; -+} -+ ---- /dev/null -+++ b/test/unistd/tst-fallocate64.c -@@ -0,0 +1,2 @@ -+#define TST_FALLOCATE64 -+#include "tst-fallocate.c" ---- a/test/unistd/Makefile.in -+++ b/test/unistd/Makefile.in -@@ -2,10 +2,13 @@ - # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. - - ifeq ($(UCLIBC_HAS_LFS),) --TESTS_DISABLED := tst-preadwrite64 tst-posix_fallocate64 -+TESTS_DISABLED := tst-preadwrite64 tst-posix_fallocate64 tst-fallocate64 - endif - ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),) --TESTS_DISABLED := tst-posix_fallocate -+TESTS_DISABLED := tst-posix_fallocate tst-fallocate64 -+endif -+ifeq ($(UCLIBC_LINUX_SPECIFIC),) -+TESTS_DISABLED += tst-fallocate - endif - OPTS_getopt := -abcXXX -9 - OPTS_getopt_long := --add XXX --delete YYY --verbose diff --git a/toolchain/uClibc/patches-0.9.33.2/024-i386-bits-syscalls.h-allow-immediate-values-as-6th-s.patch b/toolchain/uClibc/patches-0.9.33.2/024-i386-bits-syscalls.h-allow-immediate-values-as-6th-s.patch deleted file mode 100644 index 2f75fbe2a5..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/024-i386-bits-syscalls.h-allow-immediate-values-as-6th-s.patch +++ /dev/null @@ -1,25 +0,0 @@ -From: Natanael Copa <natanael.copa@gmail.com> -Date: Thu, 5 Jul 2012 11:55:19 +0000 -Subject: [PATCH] i386/bits/syscalls.h: allow immediate values as 6th syscall - arg - -Allow use of immedate values as the 6th syscall argument. Otherwise we must -store the arg on memory. This gives gcc more options to optimize better. - -This also works around an issue with posix_fallocate. - -Signed-off-by: Natanael Copa <ncopa@alpinelinux.org> -Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> ---- - ---- a/libc/sysdeps/linux/i386/bits/syscalls.h -+++ b/libc/sysdeps/linux/i386/bits/syscalls.h -@@ -136,7 +136,7 @@ __asm__ ( - #define ASMFMT_5(arg1, arg2, arg3, arg4, arg5) \ - , "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5) - #define ASMFMT_6(arg1, arg2, arg3, arg4, arg5, arg6) \ -- , "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5), "m" (arg6) -+ , "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5), "g" (arg6) - - #else /* !PIC */ - diff --git a/toolchain/uClibc/patches-0.9.33.2/025-libc-sync_file_range.patch b/toolchain/uClibc/patches-0.9.33.2/025-libc-sync_file_range.patch deleted file mode 100644 index e7efb93689..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/025-libc-sync_file_range.patch +++ /dev/null @@ -1,57 +0,0 @@ -Index: uClibc-0.9.33.2/libc/sysdeps/linux/common/sync_file_range.c -=================================================================== ---- uClibc-0.9.33.2.orig/libc/sysdeps/linux/common/sync_file_range.c 2012-05-15 09:20:09.000000000 +0200 -+++ uClibc-0.9.33.2/libc/sysdeps/linux/common/sync_file_range.c 2015-04-03 00:27:47.701221722 +0200 -@@ -4,24 +4,39 @@ - * - * Copyright (C) 2008 Bernhard Reutner-Fischer <uclibc@uclibc.org> - * -- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball. - */ - - #include <sys/syscall.h> --#if defined __USE_GNU --#include <fcntl.h> -+#if defined __UCLIBC_HAS_LFS__ && defined __USE_GNU -+# include <bits/wordsize.h> -+# include <endian.h> -+# include <fcntl.h> - --#if defined __NR_sync_file_range && defined __UCLIBC_HAS_LFS__ --#define __NR___syscall_sync_file_range __NR_sync_file_range --static __inline__ _syscall6(int, __syscall_sync_file_range, int, fd, -- off_t, offset_hi, off_t, offset_lo, -- off_t, nbytes_hi, off_t, nbytes_lo, unsigned int, flags) -+# ifdef __NR_sync_file_range2 -+# undef __NR_sync_file_range -+# define __NR_sync_file_range __NR_sync_file_range2 -+# endif -+ -+# ifdef __NR_sync_file_range - int sync_file_range(int fd, off64_t offset, off64_t nbytes, unsigned int flags) - { -- return __syscall_sync_file_range(fd, -- __LONG_LONG_PAIR((long)(offset >> 32), (long)(offset & 0xffffffff)), -- __LONG_LONG_PAIR((long)(nbytes >> 32), (long)(nbytes & 0xffffffff)), -- flags); -+# if defined __powerpc__ && __WORDSIZE == 64 -+ return INLINE_SYSCALL(sync_file_range, 4, fd, flags, offset, nbytes); -+# elif (defined __mips__ && _MIPS_SIM == _ABIO32) || \ -+ (defined(__UCLIBC_SYSCALL_ALIGN_64BIT__) && !(defined(__powerpc__) || defined(__xtensa__))) -+ /* arch with 64-bit data in even reg alignment #2: [arcv2/others-in-future] -+ * stock syscall handler in kernel (reg hole punched) -+ * see libc/sysdeps/linux/common/posix_fadvise.c for more details */ -+ return INLINE_SYSCALL(sync_file_range, 7, fd, 0, -+ OFF64_HI_LO(offset), OFF64_HI_LO(nbytes), flags); -+# elif defined __NR_sync_file_range2 -+ return INLINE_SYSCALL(sync_file_range, 6, fd, flags, -+ OFF64_HI_LO(offset), OFF64_HI_LO(nbytes)); -+# else -+ return INLINE_SYSCALL(sync_file_range, 6, fd, -+ OFF64_HI_LO(offset), OFF64_HI_LO(nbytes), flags); -+# endif - } --#endif -+# endif - #endif diff --git a/toolchain/uClibc/patches-0.9.33.2/100-fix_unifdef.patch b/toolchain/uClibc/patches-0.9.33.2/100-fix_unifdef.patch deleted file mode 100644 index 3d75b6e79f..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/100-fix_unifdef.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/extra/scripts/unifdef.c -+++ b/extra/scripts/unifdef.c -@@ -78,8 +78,6 @@ __FBSDID("$FreeBSD: /repoman/r/ncvs/src/ - #define errx(exit_code, fmt, args...) ({ warnx(fmt, ## args); exit(exit_code); }) - #define err(exit_code, fmt, args...) errx(exit_code, fmt ": %s", ## args, strerror(errno)) - --size_t strlcpy(char *dst, const char *src, size_t siz); -- - /* types of input lines: */ - typedef enum { - LT_TRUEI, /* a true #if with ignore flag */ diff --git a/toolchain/uClibc/patches-0.9.33.2/110-compat_macros.patch b/toolchain/uClibc/patches-0.9.33.2/110-compat_macros.patch deleted file mode 100644 index a7538b16f8..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/110-compat_macros.patch +++ /dev/null @@ -1,51 +0,0 @@ ---- a/include/string.h -+++ b/include/string.h -@@ -355,18 +355,40 @@ extern char *index (__const char *__s, i - /* Find the last occurrence of C in S (same as strrchr). */ - extern char *rindex (__const char *__s, int __c) - __THROW __attribute_pure__ __nonnull ((1)); --# else --# ifdef __UCLIBC_SUSV3_LEGACY_MACROS__ -+# elif defined(__UCLIBC_SUSV3_LEGACY_MACROS__) && !defined(_STRINGS_H) - /* bcopy/bzero/bcmp/index/rindex are marked LEGACY in SuSv3. - * They are replaced as proposed by SuSv3. Don't sync this part - * with glibc and keep it in sync with strings.h. */ - --# define bcopy(src,dest,n) (memmove((dest), (src), (n)), (void) 0) --# define bzero(s,n) (memset((s), '\0', (n)), (void) 0) --# define bcmp(s1,s2,n) memcmp((s1), (s2), (size_t)(n)) --# define index(s,c) strchr((s), (c)) --# define rindex(s,c) strrchr((s), (c)) --# endif -+/* Copy N bytes of SRC to DEST (like memmove, but args reversed). */ -+static __inline__ void bcopy (__const void *__src, void *__dest, size_t __n) -+{ -+ memmove(__dest, __src, __n); -+} -+ -+/* Set N bytes of S to 0. */ -+static __inline__ void bzero (void *__s, size_t __n) -+{ -+ memset(__s, 0, __n); -+} -+ -+/* Compare N bytes of S1 and S2 (same as memcmp). */ -+static __inline__ int bcmp (__const void *__s1, __const void *__s2, size_t __n) -+{ -+ return memcmp(__s1, __s2, __n); -+} -+ -+/* Find the first occurrence of C in S (same as strchr). */ -+static __inline__ char *index (__const char *__s, int __c) -+{ -+ return strchr(__s, __c); -+} -+ -+/* Find the last occurrence of C in S (same as strrchr). */ -+static __inline__ char *rindex (__const char *__s, int __c) -+{ -+ return strrchr(__s, __c); -+} - # endif - - /* Return the position of the first bit set in I, or 0 if none are set. diff --git a/toolchain/uClibc/patches-0.9.33.2/120-adjtimex.patch b/toolchain/uClibc/patches-0.9.33.2/120-adjtimex.patch deleted file mode 100644 index dcf9c9b5aa..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/120-adjtimex.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/include/sys/timex.h -+++ b/include/sys/timex.h -@@ -116,9 +116,8 @@ struct timex - - __BEGIN_DECLS - --#if 0 --extern int __adjtimex (struct timex *__ntx) __THROW; --#endif -+#undef __adjtimex -+#define __adjtimex adjtimex - extern int adjtimex (struct timex *__ntx) __THROW; - libc_hidden_proto(adjtimex) - diff --git a/toolchain/uClibc/patches-0.9.33.2/131-inet-fix-__read_etc_hosts_r-segfault.patch b/toolchain/uClibc/patches-0.9.33.2/131-inet-fix-__read_etc_hosts_r-segfault.patch deleted file mode 100644 index bd9ed380a6..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/131-inet-fix-__read_etc_hosts_r-segfault.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/libc/inet/resolv.c -+++ b/libc/inet/resolv.c -@@ -1631,6 +1631,7 @@ int attribute_hidden __read_etc_hosts_r( - * struct in[6]_addr - * char line_buffer[BUFSZ+]; - */ -+ memset(buf, 0, buflen); - parser->data = buf; - parser->data_len = aliaslen; - parser->line_len = buflen - aliaslen; diff --git a/toolchain/uClibc/patches-0.9.33.2/132-inet_fix_res_init.patch b/toolchain/uClibc/patches-0.9.33.2/132-inet_fix_res_init.patch deleted file mode 100644 index c935821b22..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/132-inet_fix_res_init.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- a/libc/inet/resolv.c -+++ b/libc/inet/resolv.c -@@ -3654,11 +3654,11 @@ res_init(void) - */ - if (!_res.id) - _res.id = res_randomid(); -- __res_sync = res_sync_func; - - __UCLIBC_MUTEX_UNLOCK(__resolv_lock); - - __res_vinit(&_res, 1); -+ __res_sync = res_sync_func; - - return 0; - } diff --git a/toolchain/uClibc/patches-0.9.33.2/133-inet6-scoped-getnameinfo.patch b/toolchain/uClibc/patches-0.9.33.2/133-inet6-scoped-getnameinfo.patch deleted file mode 100644 index 390e06ddb7..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/133-inet6-scoped-getnameinfo.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- a/libc/inet/resolv.c -+++ b/libc/inet/resolv.c -@@ -317,6 +317,7 @@ Domain name in a message can be represen - #include <sys/utsname.h> - #include <sys/un.h> - #include <sys/stat.h> -+#include <net/if.h> - #include <bits/uClibc_mutex.h> - #include "internal/parse_config.h" - -@@ -1861,7 +1862,6 @@ int getnameinfo(const struct sockaddr *s - c = inet_ntop(AF_INET6, - (const void *) &sin6p->sin6_addr, - host, hostlen); --#if 0 - /* Does scope id need to be supported? */ - uint32_t scopeid; - scopeid = sin6p->sin6_scope_id; -@@ -1898,7 +1898,6 @@ int getnameinfo(const struct sockaddr *s - return EAI_SYSTEM; - memcpy(host + real_hostlen, scopebuf, scopelen + 1); - } --#endif - } - #endif /* __UCLIBC_HAS_IPV6__ */ - #if defined __UCLIBC_HAS_IPV4__ diff --git a/toolchain/uClibc/patches-0.9.33.2/135-inet_fix_threaded_use_of_res_functions.patch b/toolchain/uClibc/patches-0.9.33.2/135-inet_fix_threaded_use_of_res_functions.patch deleted file mode 100644 index 6732d54d3e..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/135-inet_fix_threaded_use_of_res_functions.patch +++ /dev/null @@ -1,126 +0,0 @@ ---- a/libc/inet/resolv.c -+++ b/libc/inet/resolv.c -@@ -3536,6 +3536,61 @@ __res_vinit(res_state rp, int preinit) - return 0; - } - -+static unsigned int -+res_randomid(void) -+{ -+ return 0xffff & getpid(); -+} -+ -+/* Our res_init never fails (always returns 0) */ -+int -+res_init(void) -+{ -+ /* -+ * These three fields used to be statically initialized. This made -+ * it hard to use this code in a shared library. It is necessary, -+ * now that we're doing dynamic initialization here, that we preserve -+ * the old semantics: if an application modifies one of these three -+ * fields of _res before res_init() is called, res_init() will not -+ * alter them. Of course, if an application is setting them to -+ * _zero_ before calling res_init(), hoping to override what used -+ * to be the static default, we can't detect it and unexpected results -+ * will follow. Zero for any of these fields would make no sense, -+ * so one can safely assume that the applications were already getting -+ * unexpected results. -+ * -+ * _res.options is tricky since some apps were known to diddle the bits -+ * before res_init() was first called. We can't replicate that semantic -+ * with dynamic initialization (they may have turned bits off that are -+ * set in RES_DEFAULT). Our solution is to declare such applications -+ * "broken". They could fool us by setting RES_INIT but none do (yet). -+ */ -+ -+ __UCLIBC_MUTEX_LOCK(__resolv_lock); -+ -+ if (!_res.retrans) -+ _res.retrans = RES_TIMEOUT; -+ if (!_res.retry) -+ _res.retry = 4; -+ if (!(_res.options & RES_INIT)) -+ _res.options = RES_DEFAULT; -+ -+ /* -+ * This one used to initialize implicitly to zero, so unless the app -+ * has set it to something in particular, we can randomize it now. -+ */ -+ if (!_res.id) -+ _res.id = res_randomid(); -+ -+ __UCLIBC_MUTEX_UNLOCK(__resolv_lock); -+ -+ __res_vinit(&_res, 1); -+ __res_sync = res_sync_func; -+ -+ return 0; -+} -+libc_hidden_def(res_init) -+ - static void - __res_iclose(void) - { -@@ -3608,61 +3663,6 @@ struct __res_state *__resp = &_res; - # endif - #endif /* !__UCLIBC_HAS_THREADS__ */ - --static unsigned int --res_randomid(void) --{ -- return 0xffff & getpid(); --} -- --/* Our res_init never fails (always returns 0) */ --int --res_init(void) --{ -- /* -- * These three fields used to be statically initialized. This made -- * it hard to use this code in a shared library. It is necessary, -- * now that we're doing dynamic initialization here, that we preserve -- * the old semantics: if an application modifies one of these three -- * fields of _res before res_init() is called, res_init() will not -- * alter them. Of course, if an application is setting them to -- * _zero_ before calling res_init(), hoping to override what used -- * to be the static default, we can't detect it and unexpected results -- * will follow. Zero for any of these fields would make no sense, -- * so one can safely assume that the applications were already getting -- * unexpected results. -- * -- * _res.options is tricky since some apps were known to diddle the bits -- * before res_init() was first called. We can't replicate that semantic -- * with dynamic initialization (they may have turned bits off that are -- * set in RES_DEFAULT). Our solution is to declare such applications -- * "broken". They could fool us by setting RES_INIT but none do (yet). -- */ -- -- __UCLIBC_MUTEX_LOCK(__resolv_lock); -- -- if (!_res.retrans) -- _res.retrans = RES_TIMEOUT; -- if (!_res.retry) -- _res.retry = 4; -- if (!(_res.options & RES_INIT)) -- _res.options = RES_DEFAULT; -- -- /* -- * This one used to initialize implicitly to zero, so unless the app -- * has set it to something in particular, we can randomize it now. -- */ -- if (!_res.id) -- _res.id = res_randomid(); -- -- __UCLIBC_MUTEX_UNLOCK(__resolv_lock); -- -- __res_vinit(&_res, 1); -- __res_sync = res_sync_func; -- -- return 0; --} --libc_hidden_def(res_init) -- - /* - * Set up default settings. If the configuration file exist, the values - * there will have precedence. Otherwise, the server address is set to diff --git a/toolchain/uClibc/patches-0.9.33.2/136-inet_make_res_init_thread_safe.patch b/toolchain/uClibc/patches-0.9.33.2/136-inet_make_res_init_thread_safe.patch deleted file mode 100644 index 06278898f9..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/136-inet_make_res_init_thread_safe.patch +++ /dev/null @@ -1,53 +0,0 @@ ---- a/libc/inet/resolv.c -+++ b/libc/inet/resolv.c -@@ -3432,6 +3432,7 @@ static void res_sync_func(void) - */ - } - -+/* has to be called under __resolv_lock */ - static int - __res_vinit(res_state rp, int preinit) - { -@@ -3440,7 +3441,6 @@ __res_vinit(res_state rp, int preinit) - int m = 0; - #endif - -- __UCLIBC_MUTEX_LOCK(__resolv_lock); - __close_nameservers(); - __open_nameservers(); - -@@ -3532,7 +3532,6 @@ __res_vinit(res_state rp, int preinit) - - rp->options |= RES_INIT; - -- __UCLIBC_MUTEX_UNLOCK(__resolv_lock); - return 0; - } - -@@ -3582,11 +3581,11 @@ res_init(void) - if (!_res.id) - _res.id = res_randomid(); - -- __UCLIBC_MUTEX_UNLOCK(__resolv_lock); -- - __res_vinit(&_res, 1); - __res_sync = res_sync_func; - -+ __UCLIBC_MUTEX_UNLOCK(__resolv_lock); -+ - return 0; - } - libc_hidden_def(res_init) -@@ -3687,7 +3686,11 @@ struct __res_state *__resp = &_res; - int - res_ninit(res_state statp) - { -- return __res_vinit(statp, 0); -+ int ret; -+ __UCLIBC_MUTEX_LOCK(__resolv_lock); -+ ret = __res_vinit(statp, 0); -+ __UCLIBC_MUTEX_UNLOCK(__resolv_lock); -+ return ret; - } - - #endif /* L_res_init */ diff --git a/toolchain/uClibc/patches-0.9.33.2/137-inet_fix_threaded_res_init.patch b/toolchain/uClibc/patches-0.9.33.2/137-inet_fix_threaded_res_init.patch deleted file mode 100644 index ce8448ab49..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/137-inet_fix_threaded_res_init.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/libc/inet/resolv.c -+++ b/libc/inet/resolv.c -@@ -3581,6 +3581,7 @@ res_init(void) - if (!_res.id) - _res.id = res_randomid(); - -+ __res_sync = NULL; - __res_vinit(&_res, 1); - __res_sync = res_sync_func; - diff --git a/toolchain/uClibc/patches-0.9.33.2/150-vasprintf_size_reduce.patch b/toolchain/uClibc/patches-0.9.33.2/150-vasprintf_size_reduce.patch deleted file mode 100644 index 7853c1afa0..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/150-vasprintf_size_reduce.patch +++ /dev/null @@ -1,37 +0,0 @@ -Reduce the initial buffer size for open_memstream (used by vasprintf), -as most strings are usually smaller than that. -Realloc the buffer after finishing the string to further reduce size. - -Signed-off-by: Felix Fietkau <nbd@openwrt.org> - ---- a/libc/stdio/vasprintf.c -+++ b/libc/stdio/vasprintf.c -@@ -39,6 +39,8 @@ int vasprintf(char **__restrict buf, con - if (rv < 0) { - free(*buf); - *buf = NULL; -+ } else { -+ *buf = realloc(*buf, rv + 1); - } - } - ---- a/libc/stdio/open_memstream.c -+++ b/libc/stdio/open_memstream.c -@@ -17,6 +17,8 @@ - - #define COOKIE ((__oms_cookie *) cookie) - -+#define MEMSTREAM_BUFSIZ 256 -+ - typedef struct { - char *buf; - size_t len; -@@ -134,7 +136,7 @@ FILE *open_memstream(char **__restrict b - register FILE *fp; - - if ((cookie = malloc(sizeof(__oms_cookie))) != NULL) { -- if ((cookie->buf = malloc(cookie->len = BUFSIZ)) == NULL) { -+ if ((cookie->buf = malloc(cookie->len = MEMSTREAM_BUFSIZ)) == NULL) { - goto EXIT_cookie; - } - *cookie->buf = 0; /* Set nul terminator for buffer. */ diff --git a/toolchain/uClibc/patches-0.9.33.2/170-math_finite.patch b/toolchain/uClibc/patches-0.9.33.2/170-math_finite.patch deleted file mode 100644 index b0ae3337b9..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/170-math_finite.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- a/include/math.h -+++ b/include/math.h -@@ -195,7 +195,7 @@ extern int signgam; - - - /* ISO C99 defines some generic macros which work on any data type. */ --#ifdef __USE_ISOC99 -+#if defined(__USE_ISOC99) || defined(__USE_BSD) - - /* Get the architecture specific values describing the floating-point - evaluation. The following symbols will get defined: -@@ -315,6 +315,11 @@ enum - - #endif /* Use ISO C99. */ - -+/* BSD compat */ -+#define finite(x) __finite(x) -+#define finitef(x) __finitef(x) -+#define finitel(x) __finitel(x) -+ - #ifdef __USE_MISC - /* Support for various different standard error handling behaviors. */ - typedef enum diff --git a/toolchain/uClibc/patches-0.9.33.2/180-pthread_cleanup_fix.patch b/toolchain/uClibc/patches-0.9.33.2/180-pthread_cleanup_fix.patch deleted file mode 100644 index ae36018792..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/180-pthread_cleanup_fix.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- a/libpthread/nptl/cleanup_defer_compat.c -+++ b/libpthread/nptl/cleanup_defer_compat.c -@@ -22,7 +22,7 @@ - - void - attribute_protected --_pthread_cleanup_push_defer ( -+__pthread_cleanup_push_defer ( - struct _pthread_cleanup_buffer *buffer, - void (*routine) (void *), - void *arg) -@@ -57,12 +57,12 @@ _pthread_cleanup_push_defer ( - - THREAD_SETMEM (self, cleanup, buffer); - } --strong_alias (_pthread_cleanup_push_defer, __pthread_cleanup_push_defer) -+strong_alias (__pthread_cleanup_push_defer, _pthread_cleanup_push_defer) - - - void - attribute_protected --_pthread_cleanup_pop_restore ( -+__pthread_cleanup_pop_restore ( - struct _pthread_cleanup_buffer *buffer, - int execute) - { -@@ -97,4 +97,4 @@ _pthread_cleanup_pop_restore ( - if (execute) - buffer->__routine (buffer->__arg); - } --strong_alias (_pthread_cleanup_pop_restore, __pthread_cleanup_pop_restore) -+strong_alias (__pthread_cleanup_pop_restore, _pthread_cleanup_pop_restore) ---- a/libpthread/nptl/init.c -+++ b/libpthread/nptl/init.c -@@ -112,8 +112,8 @@ static const struct pthread_functions pt - .ptr___pthread_key_create = __pthread_key_create_internal, - .ptr___pthread_getspecific = __pthread_getspecific_internal, - .ptr___pthread_setspecific = __pthread_setspecific_internal, -- .ptr__pthread_cleanup_push_defer = _pthread_cleanup_push_defer, -- .ptr__pthread_cleanup_pop_restore = _pthread_cleanup_pop_restore, -+ .ptr__pthread_cleanup_push_defer = __pthread_cleanup_push_defer, -+ .ptr__pthread_cleanup_pop_restore = __pthread_cleanup_pop_restore, - .ptr_nthreads = &__nptl_nthreads, - .ptr___pthread_unwind = &__pthread_unwind, - .ptr__nptl_deallocate_tsd = __nptl_deallocate_tsd, diff --git a/toolchain/uClibc/patches-0.9.33.2/190-nptl_use_arch_default_stack_limit.patch b/toolchain/uClibc/patches-0.9.33.2/190-nptl_use_arch_default_stack_limit.patch deleted file mode 100644 index b7f5c82e05..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/190-nptl_use_arch_default_stack_limit.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/libpthread/nptl/init.c -+++ b/libpthread/nptl/init.c -@@ -402,6 +402,10 @@ __pthread_initialize_minimal_internal (v - Use the minimal size acceptable. */ - limit.rlim_cur = PTHREAD_STACK_MIN; - -+ /* Do not exceed architecture specific default */ -+ if (limit.rlim_cur > ARCH_STACK_DEFAULT_SIZE) -+ limit.rlim_cur = ARCH_STACK_DEFAULT_SIZE; -+ - /* Make sure it meets the minimum size that allocate_stack - (allocatestack.c) will demand, which depends on the page size. */ - const uintptr_t pagesz = sysconf (_SC_PAGESIZE); diff --git a/toolchain/uClibc/patches-0.9.33.2/200-no_forced_unwind.patch b/toolchain/uClibc/patches-0.9.33.2/200-no_forced_unwind.patch deleted file mode 100644 index d6869e2de6..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/200-no_forced_unwind.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/Rules.mak -+++ b/Rules.mak -@@ -707,7 +707,6 @@ endif - ifeq ($(UCLIBC_HAS_THREADS),y) - ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y) - PTNAME := nptl -- CFLAGS += -DHAVE_FORCED_UNWIND - else - ifeq ($(LINUXTHREADS_OLD),y) - PTNAME := linuxthreads.old diff --git a/toolchain/uClibc/patches-0.9.33.2/210-mips_use_pic_crt1.patch b/toolchain/uClibc/patches-0.9.33.2/210-mips_use_pic_crt1.patch deleted file mode 100644 index 2ca10d47cc..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/210-mips_use_pic_crt1.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/libc/sysdeps/linux/mips/Makefile.arch -+++ b/libc/sysdeps/linux/mips/Makefile.arch -@@ -20,6 +20,8 @@ ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y) - SSRC += vfork.S clone.S - endif - -+CFLAGS-crt1.S += $(PICFLAG) -+ - ASFLAGS-syscall_error.S += -D_LIBC_REENTRANT - - ARCH_HEADERS := sgidefs.h diff --git a/toolchain/uClibc/patches-0.9.33.2/350-use-fputs_unlocked.patch b/toolchain/uClibc/patches-0.9.33.2/350-use-fputs_unlocked.patch deleted file mode 100644 index 58b03ec7d9..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/350-use-fputs_unlocked.patch +++ /dev/null @@ -1,19 +0,0 @@ -commit 3e3ae40f053b22fbb9bef50067d6edad4c358c4c -Author: Mirko Vogt <dev@nanl.de> -Date: Tue May 24 14:36:42 2011 +0200 - - use 'fputws_unlocked(S,F)' instead of 'fputws(S,F)' - - this eliminates a source of reproduceable freezes - ---- a/libc/stdio/_vfprintf.c -+++ b/libc/stdio/_vfprintf.c -@@ -1229,7 +1229,7 @@ static size_t _fp_out_narrow(FILE *fp, i - #define STRLEN wcslen - #define _PPFS_init _ppwfs_init - /* Pulls in fseek: */ --#define OUTPUT(F,S) fputws(S,F) -+#define OUTPUT(F,S) fputws_unlocked(S,F) - /* TODO: #define OUTPUT(F,S) _wstdio_fwrite((S),wcslen(S),(F)) */ - #define _outnwcs(stream, wstring, len) _wstdio_fwrite((const wchar_t *)(wstring), len, stream) - #define FP_OUT _fp_out_wide diff --git a/toolchain/uClibc/patches-0.9.33.2/410-llvm_workaround.patch b/toolchain/uClibc/patches-0.9.33.2/410-llvm_workaround.patch deleted file mode 100644 index 7ae394325b..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/410-llvm_workaround.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/libc/stdio/_stdio.c -+++ b/libc/stdio/_stdio.c -@@ -124,7 +124,7 @@ static FILE _stdio_streams[] = { - __FLAG_NBF|__FLAG_WRITEONLY, \ - 2, \ - NULL, \ -- NULL, \ -+ 0, \ - 0 ) - }; - diff --git a/toolchain/uClibc/patches-0.9.33.2/450-powerpc_copysignl.patch b/toolchain/uClibc/patches-0.9.33.2/450-powerpc_copysignl.patch deleted file mode 100644 index ad8d6824bb..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/450-powerpc_copysignl.patch +++ /dev/null @@ -1,103 +0,0 @@ ---- a/libc/sysdeps/linux/powerpc/Makefile.arch -+++ b/libc/sysdeps/linux/powerpc/Makefile.arch -@@ -5,7 +5,7 @@ - # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. - # - --CSRC := __syscall_error.c pread_write.c ioctl.c -+CSRC := __syscall_error.c pread_write.c ioctl.c copysignl.c - - ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y) - CSRC += posix_fadvise.c posix_fadvise64.c ---- /dev/null -+++ b/libc/sysdeps/linux/powerpc/copysignl.c -@@ -0,0 +1,89 @@ -+/* s_copysignl.c -- long double version of s_copysign.c. -+ * Conversion to long double by Ulrich Drepper, -+ * Cygnus Support, drepper@cygnus.com. -+ */ -+ -+/* -+ * ==================================================== -+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. -+ * -+ * Developed at SunPro, a Sun Microsystems, Inc. business. -+ * Permission to use, copy, modify, and distribute this -+ * software is freely granted, provided that this notice -+ * is preserved. -+ * ==================================================== -+ */ -+ -+/* -+ * copysignl(long double x, long double y) -+ * copysignl(x,y) returns a value with the magnitude of x and -+ * with the sign bit of y. -+ */ -+ -+#include <endian.h> -+#include <stdint.h> -+ -+#if __FLOAT_WORD_ORDER == BIG_ENDIAN -+ -+typedef union -+{ -+ long double value; -+ struct -+ { -+ int sign_exponent:16; -+ unsigned int empty:16; -+ uint32_t msw; -+ uint32_t lsw; -+ } parts; -+} ieee_long_double_shape_type; -+ -+#endif -+ -+#if __FLOAT_WORD_ORDER == LITTLE_ENDIAN -+ -+typedef union -+{ -+ long double value; -+ struct -+ { -+ uint32_t lsw; -+ uint32_t msw; -+ int sign_exponent:16; -+ unsigned int empty:16; -+ } parts; -+} ieee_long_double_shape_type; -+ -+#endif -+ -+/* Get int from the exponent of a long double. */ -+ -+#define GET_LDOUBLE_EXP(exp,d) \ -+do { \ -+ ieee_long_double_shape_type ge_u; \ -+ ge_u.value = (d); \ -+ (exp) = ge_u.parts.sign_exponent; \ -+} while (0) -+ -+/* Set exponent of a long double from an int. */ -+ -+#define SET_LDOUBLE_EXP(d,exp) \ -+do { \ -+ ieee_long_double_shape_type se_u; \ -+ se_u.value = (d); \ -+ se_u.parts.sign_exponent = (exp); \ -+ (d) = se_u.value; \ -+} while (0) -+ -+long double copysignl(long double x, long double y); -+libc_hidden_proto(copysignl); -+ -+long double copysignl(long double x, long double y) -+{ -+ uint32_t es1,es2; -+ GET_LDOUBLE_EXP(es1,x); -+ GET_LDOUBLE_EXP(es2,y); -+ SET_LDOUBLE_EXP(x,(es1&0x7fff)|(es2&0x8000)); -+ return x; -+} -+ -+libc_hidden_def(copysignl); diff --git a/toolchain/uClibc/patches-0.9.33.2/460-powerpc_ptrace_h.patch b/toolchain/uClibc/patches-0.9.33.2/460-powerpc_ptrace_h.patch deleted file mode 100644 index c48b68244b..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/460-powerpc_ptrace_h.patch +++ /dev/null @@ -1,96 +0,0 @@ ---- a/libc/sysdeps/linux/powerpc/sys/ptrace.h -+++ b/libc/sysdeps/linux/powerpc/sys/ptrace.h -@@ -1,5 +1,5 @@ - /* `ptrace' debugger support interface. Linux version. -- Copyright (C) 2001 Free Software Foundation, Inc. -+ Copyright (C) 2001, 2006, 2007, 2011 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -13,9 +13,8 @@ - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, write to the Free -- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -- 02111-1307 USA. */ -+ License along with the GNU C Library; if not, see -+ <http://www.gnu.org/licenses/>. */ - - #ifndef _SYS_PTRACE_H - #define _SYS_PTRACE_H 1 -@@ -79,8 +78,73 @@ enum __ptrace_request - #define PT_DETACH PTRACE_DETACH - - /* Continue and stop at the next (return from) syscall. */ -- PTRACE_SYSCALL = 24 -+ PTRACE_SYSCALL = 24, - #define PT_SYSCALL PTRACE_SYSCALL -+ -+ /* Set ptrace filter options. */ -+ PTRACE_SETOPTIONS = 0x4200, -+#define PT_SETOPTIONS PTRACE_SETOPTIONS -+ -+ /* Get last ptrace message. */ -+ PTRACE_GETEVENTMSG = 0x4201, -+#define PT_GETEVENTMSG PTRACE_GETEVENTMSG -+ -+ /* Get siginfo for process. */ -+ PTRACE_GETSIGINFO = 0x4202, -+#define PT_GETSIGINFO PTRACE_GETSIGINFO -+ -+ /* Set new siginfo for process. */ -+ PTRACE_SETSIGINFO = 0x4203, -+#define PT_SETSIGINFO PTRACE_SETSIGINFO -+ -+ /* Get register content. */ -+ PTRACE_GETREGSET = 0x4204, -+#define PTRACE_GETREGSET PTRACE_GETREGSET -+ -+ /* Set register content. */ -+ PTRACE_SETREGSET = 0x4205, -+#define PTRACE_SETREGSET PTRACE_SETREGSET -+ -+ /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect -+ signal or group stop state. */ -+ PTRACE_SEIZE = 0x4206, -+#define PTRACE_SEIZE PTRACE_SEIZE -+ -+ /* Trap seized tracee. */ -+ PTRACE_INTERRUPT = 0x4207, -+#define PTRACE_INTERRUPT PTRACE_INTERRUPT -+ -+ /* Wait for next group event. */ -+ PTRACE_LISTEN = 0x4208 -+}; -+ -+ -+/* Flag for PTRACE_LISTEN. */ -+enum __ptrace_flags -+{ -+ PTRACE_SEIZE_DEVEL = 0x80000000 -+}; -+ -+/* Options set using PTRACE_SETOPTIONS. */ -+enum __ptrace_setoptions { -+ PTRACE_O_TRACESYSGOOD = 0x00000001, -+ PTRACE_O_TRACEFORK = 0x00000002, -+ PTRACE_O_TRACEVFORK = 0x00000004, -+ PTRACE_O_TRACECLONE = 0x00000008, -+ PTRACE_O_TRACEEXEC = 0x00000010, -+ PTRACE_O_TRACEVFORKDONE = 0x00000020, -+ PTRACE_O_TRACEEXIT = 0x00000040, -+ PTRACE_O_MASK = 0x0000007f -+}; -+ -+/* Wait extended result codes for the above trace options. */ -+enum __ptrace_eventcodes { -+ PTRACE_EVENT_FORK = 1, -+ PTRACE_EVENT_VFORK = 2, -+ PTRACE_EVENT_CLONE = 3, -+ PTRACE_EVENT_EXEC = 4, -+ PTRACE_EVENT_VFORK_DONE = 5, -+ PTRACE_EVENT_EXIT = 6 - }; - - /* Perform process tracing functions. REQUEST is one of the values diff --git a/toolchain/uClibc/patches-0.9.33.2/470-powerpc_syscall6.patch b/toolchain/uClibc/patches-0.9.33.2/470-powerpc_syscall6.patch deleted file mode 100644 index 9511dcc199..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/470-powerpc_syscall6.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/libc/sysdeps/linux/powerpc/syscall.S -+++ b/libc/sysdeps/linux/powerpc/syscall.S -@@ -30,6 +30,7 @@ syscall: - mr 5,6 - mr 6,7 - mr 7,8 -+ mr 8,9 - sc - bnslr; - diff --git a/toolchain/uClibc/patches-0.9.33.2/480-powerpc_rel24_support.patch b/toolchain/uClibc/patches-0.9.33.2/480-powerpc_rel24_support.patch deleted file mode 100644 index 19c2b2c8a2..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/480-powerpc_rel24_support.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- a/ldso/ldso/powerpc/elfinterp.c -+++ b/ldso/ldso/powerpc/elfinterp.c -@@ -297,22 +297,17 @@ _dl_do_reloc (struct elf_resolve *tpnt,s - break; - #endif - case R_PPC_REL24: --#if 0 - { - Elf32_Sword delta = finaladdr - (Elf32_Word)reloc_addr; - if (unlikely(delta<<6>>6 != delta)) { - _dl_dprintf(2, "%s: symbol '%s' R_PPC_REL24 is out of range.\n\t" - "Compile shared libraries with -fPIC!\n", - _dl_progname, symname); -- _dl_exit(1); -+ return -1; - } - *reloc_addr = (*reloc_addr & 0xfc000003) | (delta & 0x3fffffc); - break; - } --#else -- _dl_dprintf(2,"R_PPC_REL24: Compile shared libraries with -fPIC!\n"); -- return -1; --#endif - case R_PPC_NONE: - goto out_nocode; /* No code code modified */ - default: diff --git a/toolchain/uClibc/patches-0.9.33.2/500-eventfd.patch b/toolchain/uClibc/patches-0.9.33.2/500-eventfd.patch deleted file mode 100644 index 374052c5b5..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/500-eventfd.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 7810e4f8027b5c4c8ceec6fefec4eb779362ebb5 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Sun, 10 Jun 2012 16:36:23 +0000 -Subject: eventfd: Implement eventfd2 and fix eventfd - -eventfd: evntfd assumes to take two arguments instead it -should be one evntfd expects two therefore implement both syscalls with -correct parameters - -Thanks Eugene Rudoy for reporting it and also providing the patch - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- ---- a/libc/sysdeps/linux/common/eventfd.c -+++ b/libc/sysdeps/linux/common/eventfd.c -@@ -7,12 +7,24 @@ - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. - */ - -+#include <errno.h> - #include <sys/syscall.h> - #include <sys/eventfd.h> - - /* - * eventfd() - */ --#ifdef __NR_eventfd --_syscall2(int, eventfd, int, count, int, flags) -+#if defined __NR_eventfd || defined __NR_eventfd2 -+int eventfd (int count, int flags) -+{ -+#if defined __NR_eventfd2 -+ return INLINE_SYSCALL (eventfd2, 2, count, flags); -+#elif defined __NR_eventfd -+ if (flags != 0) { -+ __set_errno (EINVAL); -+ return -1; -+ } -+ return INLINE_SYSCALL (eventfd, 1, count); -+#endif -+} - #endif ---- a/libc/sysdeps/linux/common/stubs.c -+++ b/libc/sysdeps/linux/common/stubs.c -@@ -93,7 +93,7 @@ make_stub(epoll_ctl) - make_stub(epoll_wait) - #endif - --#if !defined __NR_eventfd && defined __UCLIBC_LINUX_SPECIFIC__ -+#if !defined __NR_eventfd && !defined __NR_eventfd2 && defined __UCLIBC_LINUX_SPECIFIC__ - make_stub(eventfd) - #endif - diff --git a/toolchain/uClibc/patches-0.9.33.2/600-mips64_abi_selection.patch b/toolchain/uClibc/patches-0.9.33.2/600-mips64_abi_selection.patch deleted file mode 100644 index beca17ca47..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/600-mips64_abi_selection.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 603af30d6992e94ac30a66b953264076f4f2fd71 Mon Sep 17 00:00:00 2001 -From: Markos Chandras <markos.chandras@imgtec.com> -Date: Thu, 11 Jul 2013 16:59:16 +0000 -Subject: Rules.mak: MIPS64: Select correct interpreter - -gcc (eg 4.7.3) hardcodes the MIPS64 interpreters like this: -(see gcc/config/linux.h and gcc/config/mips/linux64.h) - -o32: UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0" -n32: UCLIBC_DYNAMIC_LINKERN32 "/lib32/ld-uClibc.so.0" -n64: UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0" - -The existing check for MIPS64 in uClibc is wrong because it does -not respect the selected ABI - -We fix this by explicitely checking the selected ABI instead of the -selected MIPS variant. - -Signed-off-by: Markos Chandras <markos.chandras@imgtec.com> -Cc: Anthony G. Basile <blueness@gentoo.org> -Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> ---- - ---- a/Rules.mak -+++ b/Rules.mak -@@ -118,13 +118,19 @@ export MAJOR_VERSION MINOR_VERSION SUBLE - LIBC := libc - SHARED_LIBNAME := $(LIBC).so.$(ABI_VERSION) - UBACKTRACE_DSO := libubacktrace.so.$(ABI_VERSION) --ifneq ($(findstring $(TARGET_ARCH) , hppa64 ia64 mips64 powerpc64 s390x sparc64 x86_64 ),) -+ -+UCLIBC_LDSO_NAME := ld-uClibc -+ARCH_NATIVE_BIT := 32 -+ifneq ($(findstring $(TARGET_ARCH),hppa64 ia64 powerpc64 s390x sparc64 x86_64),) - UCLIBC_LDSO_NAME := ld64-uClibc - ARCH_NATIVE_BIT := 64 - else --UCLIBC_LDSO_NAME := ld-uClibc --ARCH_NATIVE_BIT := 32 -+ifeq ($(CONFIG_MIPS_N64_ABI),y) -+UCLIBC_LDSO_NAME := ld64-uClibc -+ARCH_NATIVE_BIT := 64 - endif -+endif -+ - UCLIBC_LDSO := $(UCLIBC_LDSO_NAME).so.$(ABI_VERSION) - NONSHARED_LIBNAME := uclibc_nonshared.a - libc := $(top_builddir)lib/$(SHARED_LIBNAME) diff --git a/toolchain/uClibc/patches-0.9.33.2/610-mips64_syscall_fix.patch b/toolchain/uClibc/patches-0.9.33.2/610-mips64_syscall_fix.patch deleted file mode 100644 index 46d1f5cd18..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/610-mips64_syscall_fix.patch +++ /dev/null @@ -1,285 +0,0 @@ -commit e5cde2eb0ed7df9416fdd6070af07c8448c72a30 -Author: Steve Ellcey <sellcey@mips.com> -Date: Wed Feb 12 11:01:35 2014 -0800 - - mips: Remove duplicate macro definitions - - The INLINE_SYSCALL, INTERNAL_SYSCALL*, and internal_syscall* macros - are defined for MIPS in both libc/sysdeps/linux/mips/sysdep.h and - libc/sysdeps/linux/mips/bits/syscalls.h. The macros are the same - in both cases except that syscalls.h defines internal_syscalls[567] - the same for N32 and N64 ABIs and has a different definition for O32. - I believe that is correct. The sysdep.h header uses the O32 versions - for N32 and has different definitions for N64. I think that is wrong - and that N32 and N64 should share the same definition (modulo the - type 'long' vs. 'long long' for the arguments. This setup (from - sysdep.h) now agrees with what glibc has. - - I am not positive about which header (sysdep.h vs syscalls.h) is - really the right one to have these definitions in but using sysdep.h - seems to work for all my builds. - - Signed-off-by: Steve Ellcey <sellcey@mips.com> - Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> - ---- a/libc/sysdeps/linux/mips/sysdep.h -+++ b/libc/sysdeps/linux/mips/sysdep.h -@@ -133,258 +133,6 @@ L(syse1): - - #else /* ! __ASSEMBLER__ */ - --/* Define a macro which expands into the inline wrapper code for a system -- call. */ --#undef INLINE_SYSCALL --#define INLINE_SYSCALL(name, nr, args...) \ -- ({ INTERNAL_SYSCALL_DECL(err); \ -- long result_var = INTERNAL_SYSCALL (name, err, nr, args); \ -- if ( INTERNAL_SYSCALL_ERROR_P (result_var, err) ) \ -- { \ -- __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, err)); \ -- result_var = -1L; \ -- } \ -- result_var; }) -- --#undef INTERNAL_SYSCALL_DECL --#define INTERNAL_SYSCALL_DECL(err) long err -- --#undef INTERNAL_SYSCALL_ERROR_P --#define INTERNAL_SYSCALL_ERROR_P(val, err) ((long) (err)) -- --#undef INTERNAL_SYSCALL_ERRNO --#define INTERNAL_SYSCALL_ERRNO(val, err) (val) -- --#undef INTERNAL_SYSCALL --#define INTERNAL_SYSCALL(name, err, nr, args...) \ -- internal_syscall##nr (, "li\t$2, %2\t\t\t# " #name "\n\t", \ -- "i" (SYS_ify (name)), err, args) -- --#undef INTERNAL_SYSCALL_NCS --#define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \ -- internal_syscall##nr (= number, , "r" (__v0), err, args) --#undef internal_syscall0 --#define internal_syscall0(ncs_init, cs_init, input, err, dummy...) \ --({ \ -- long _sys_result; \ -- \ -- { \ -- register long __v0 __asm__("$2") ncs_init; \ -- register long __a3 __asm__("$7"); \ -- __asm__ __volatile__ ( \ -- ".set\tnoreorder\n\t" \ -- cs_init \ -- "syscall\n\t" \ -- ".set reorder" \ -- : "=r" (__v0), "=r" (__a3) \ -- : input \ -- : __SYSCALL_CLOBBERS); \ -- err = __a3; \ -- _sys_result = __v0; \ -- } \ -- _sys_result; \ --}) -- --#undef internal_syscall1 --#define internal_syscall1(ncs_init, cs_init, input, err, arg1) \ --({ \ -- long _sys_result; \ -- \ -- { \ -- register long __v0 __asm__("$2") ncs_init; \ -- register long __a0 __asm__("$4") = (long) arg1; \ -- register long __a3 __asm__("$7"); \ -- __asm__ __volatile__ ( \ -- ".set\tnoreorder\n\t" \ -- cs_init \ -- "syscall\n\t" \ -- ".set reorder" \ -- : "=r" (__v0), "=r" (__a3) \ -- : input, "r" (__a0) \ -- : __SYSCALL_CLOBBERS); \ -- err = __a3; \ -- _sys_result = __v0; \ -- } \ -- _sys_result; \ --}) -- --#undef internal_syscall2 --#define internal_syscall2(ncs_init, cs_init, input, err, arg1, arg2) \ --({ \ -- long _sys_result; \ -- \ -- { \ -- register long __v0 __asm__("$2") ncs_init; \ -- register long __a0 __asm__("$4") = (long) arg1; \ -- register long __a1 __asm__("$5") = (long) arg2; \ -- register long __a3 __asm__("$7"); \ -- __asm__ __volatile__ ( \ -- ".set\tnoreorder\n\t" \ -- cs_init \ -- "syscall\n\t" \ -- ".set\treorder" \ -- : "=r" (__v0), "=r" (__a3) \ -- : input, "r" (__a0), "r" (__a1) \ -- : __SYSCALL_CLOBBERS); \ -- err = __a3; \ -- _sys_result = __v0; \ -- } \ -- _sys_result; \ --}) -- --#undef internal_syscall3 --#define internal_syscall3(ncs_init, cs_init, input, err, arg1, arg2, arg3)\ --({ \ -- long _sys_result; \ -- \ -- { \ -- register long __v0 __asm__("$2") ncs_init; \ -- register long __a0 __asm__("$4") = (long) arg1; \ -- register long __a1 __asm__("$5") = (long) arg2; \ -- register long __a2 __asm__("$6") = (long) arg3; \ -- register long __a3 __asm__("$7"); \ -- __asm__ __volatile__ ( \ -- ".set\tnoreorder\n\t" \ -- cs_init \ -- "syscall\n\t" \ -- ".set\treorder" \ -- : "=r" (__v0), "=r" (__a3) \ -- : input, "r" (__a0), "r" (__a1), "r" (__a2) \ -- : __SYSCALL_CLOBBERS); \ -- err = __a3; \ -- _sys_result = __v0; \ -- } \ -- _sys_result; \ --}) -- --#undef internal_syscall4 --#define internal_syscall4(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4)\ --({ \ -- long _sys_result; \ -- \ -- { \ -- register long __v0 __asm__("$2") ncs_init; \ -- register long __a0 __asm__("$4") = (long) arg1; \ -- register long __a1 __asm__("$5") = (long) arg2; \ -- register long __a2 __asm__("$6") = (long) arg3; \ -- register long __a3 __asm__("$7") = (long) arg4; \ -- __asm__ __volatile__ ( \ -- ".set\tnoreorder\n\t" \ -- cs_init \ -- "syscall\n\t" \ -- ".set\treorder" \ -- : "=r" (__v0), "+r" (__a3) \ -- : input, "r" (__a0), "r" (__a1), "r" (__a2) \ -- : __SYSCALL_CLOBBERS); \ -- err = __a3; \ -- _sys_result = __v0; \ -- } \ -- _sys_result; \ --}) -- --/* We need to use a frame pointer for the functions in which we -- adjust $sp around the syscall, or debug information and unwind -- information will be $sp relative and thus wrong during the syscall. As -- of GCC 3.4.3, this is sufficient. */ --#define FORCE_FRAME_POINTER alloca (4) -- --#undef internal_syscall5 --#define internal_syscall5(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5)\ --({ \ -- long _sys_result; \ -- \ -- FORCE_FRAME_POINTER; \ -- { \ -- register long __v0 __asm__("$2") ncs_init; \ -- register long __a0 __asm__("$4") = (long) arg1; \ -- register long __a1 __asm__("$5") = (long) arg2; \ -- register long __a2 __asm__("$6") = (long) arg3; \ -- register long __a3 __asm__("$7") = (long) arg4; \ -- __asm__ __volatile__ ( \ -- ".set\tnoreorder\n\t" \ -- "subu\t$29, 32\n\t" \ -- "sw\t%6, 16($29)\n\t" \ -- cs_init \ -- "syscall\n\t" \ -- "addiu\t$29, 32\n\t" \ -- ".set\treorder" \ -- : "=r" (__v0), "+r" (__a3) \ -- : input, "r" (__a0), "r" (__a1), "r" (__a2), \ -- "r" ((long)arg5) \ -- : __SYSCALL_CLOBBERS); \ -- err = __a3; \ -- _sys_result = __v0; \ -- } \ -- _sys_result; \ --}) -- --#undef internal_syscall6 --#define internal_syscall6(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5, arg6)\ --({ \ -- long _sys_result; \ -- \ -- FORCE_FRAME_POINTER; \ -- { \ -- register long __v0 __asm__("$2") ncs_init; \ -- register long __a0 __asm__("$4") = (long) arg1; \ -- register long __a1 __asm__("$5") = (long) arg2; \ -- register long __a2 __asm__("$6") = (long) arg3; \ -- register long __a3 __asm__("$7") = (long) arg4; \ -- __asm__ __volatile__ ( \ -- ".set\tnoreorder\n\t" \ -- "subu\t$29, 32\n\t" \ -- "sw\t%6, 16($29)\n\t" \ -- "sw\t%7, 20($29)\n\t" \ -- cs_init \ -- "syscall\n\t" \ -- "addiu\t$29, 32\n\t" \ -- ".set\treorder" \ -- : "=r" (__v0), "+r" (__a3) \ -- : input, "r" (__a0), "r" (__a1), "r" (__a2), \ -- "r" ((long)arg5), "r" ((long)arg6) \ -- : __SYSCALL_CLOBBERS); \ -- err = __a3; \ -- _sys_result = __v0; \ -- } \ -- _sys_result; \ --}) -- --#undef internal_syscall7 --#define internal_syscall7(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5, arg6, arg7)\ --({ \ -- long _sys_result; \ -- \ -- FORCE_FRAME_POINTER; \ -- { \ -- register long __v0 __asm__("$2") ncs_init; \ -- register long __a0 __asm__("$4") = (long) arg1; \ -- register long __a1 __asm__("$5") = (long) arg2; \ -- register long __a2 __asm__("$6") = (long) arg3; \ -- register long __a3 __asm__("$7") = (long) arg4; \ -- __asm__ __volatile__ ( \ -- ".set\tnoreorder\n\t" \ -- "subu\t$29, 32\n\t" \ -- "sw\t%6, 16($29)\n\t" \ -- "sw\t%7, 20($29)\n\t" \ -- "sw\t%8, 24($29)\n\t" \ -- cs_init \ -- "syscall\n\t" \ -- "addiu\t$29, 32\n\t" \ -- ".set\treorder" \ -- : "=r" (__v0), "+r" (__a3) \ -- : input, "r" (__a0), "r" (__a1), "r" (__a2), \ -- "r" ((long)arg5), "r" ((long)arg6), "r" ((long)arg7) \ -- : __SYSCALL_CLOBBERS); \ -- err = __a3; \ -- _sys_result = __v0; \ -- } \ -- _sys_result; \ --}) -- --#undef __SYSCALL_CLOBBERS --#define __SYSCALL_CLOBBERS "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", \ -- "$14", "$15", "$24", "$25", "memory" -- - /* Pointer mangling is not yet supported for MIPS. */ - #define PTR_MANGLE(var) (void) (var) - #define PTR_DEMANGLE(var) (void) (var) diff --git a/toolchain/uClibc/patches-0.9.33.2/611-mips_syscall_error_argument.patch b/toolchain/uClibc/patches-0.9.33.2/611-mips_syscall_error_argument.patch deleted file mode 100644 index 87ef8bae87..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/611-mips_syscall_error_argument.patch +++ /dev/null @@ -1,99 +0,0 @@ -commit 2952c70804b48bb5c87eea21df5e401969dc4ec1 -Author: Kevin Cernekee <cernekee@gmail.com> -Date: Tue Jun 5 15:05:20 2012 -0700 - - MIPS: Use $a0 instead of $v0 for __syscall_error() argument - - $a0 is saved across _dl_runtime_resolve(); $v0 is not. Unfortunately, - __syscall_error() uses $v0 for its argument, not $a0 as is the MIPS ABI - standard. This means that if lazy binding was used for __syscall_error(), - the errno value in $v0 could get corrupted. - - The problem can be easily seen in testcases where syscalls in librt fail; - when librt tries to call __syscall_error() in libc, the argument gets - lost and errno gets set to a bogus value: - - # ./tst-mqueue1 ; echo $? - mq_receive on O_WRONLY mqd_t did not fail with EBADF: Unknown error 2004684208 - 1 - # ./tst-mqueue2 ; echo $? - mq_timedreceive with too small msg_len did not fail with EMSGSIZE: Unknown error 1997360560 - 1 - # ./tst-mqueue4 ; echo $? - mq_timedsend did not fail with ETIMEDOUT: Unknown error 2008747440 - 1 - - When _dl_runtime_resolve() was taken out of the equation, the same test - cases passed: - - # LD_BIND_NOW=y ./tst-mqueue1 ; echo $? - 0 - # LD_BIND_NOW=y ./tst-mqueue2 ; echo $? - 0 - # LD_BIND_NOW=y ./tst-mqueue4 ; echo $? - 0 - - Changing __syscall_error() to look at $a0 instead of $v0 fixed the - problem. - - (Note that there is also a "__syscall_error.c" file which presumably - uses the standard C calling conventions, but I do not think it is used - on MIPS.) - - Signed-off-by: Kevin Cernekee <cernekee@gmail.com> - Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> - -commit 3c58d95d918c7e2fda374c37a52f81b34b81e4ca -Author: Kevin Cernekee <cernekee@gmail.com> -Date: Tue Jun 5 15:05:19 2012 -0700 - - MIPS: Convert __syscall_error() callers to use $a0 for argument - - Some callers passed the first argument in $v0, while others used $a0. - Change the callers to use $a0 consistently. - - Signed-off-by: Kevin Cernekee <cernekee@gmail.com> - Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> - ---- a/libc/sysdeps/linux/mips/vfork.S -+++ b/libc/sysdeps/linux/mips/vfork.S -@@ -84,6 +84,7 @@ NESTED(__vfork,FRAMESZ,sp) - - /* Something bad happened -- no child created. */ - L(error): -+ move a0, v0 - #ifdef __PIC__ - PTR_LA t9, __syscall_error - RESTORE_GP64 ---- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h -+++ b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h -@@ -31,7 +31,7 @@ - # undef PSEUDO - # define PSEUDO(name, syscall_name, args) \ - .align 2; \ -- 99: \ -+ 99: move a0, v0; \ - PTR_LA t9,__syscall_error; \ - /* manual cpreturn. */ \ - REG_L gp, STKOFF_GP(sp); \ ---- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/vfork.S -+++ b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/vfork.S -@@ -80,6 +80,7 @@ NESTED(__vfork,FRAMESZ,sp) - - /* Something bad happened -- no child created. */ - L(error): -+ move a0, v0 - #ifdef __PIC__ - PTR_LA t9, __syscall_error - RESTORE_GP64 ---- a/libc/sysdeps/linux/mips/syscall_error.S -+++ b/libc/sysdeps/linux/mips/syscall_error.S -@@ -43,7 +43,7 @@ ENTRY(__syscall_error) - #ifdef __PIC__ - SAVE_GP(GPOFF) - #endif -- REG_S v0, V0OFF(sp) -+ REG_S a0, V0OFF(sp) - REG_S ra, RAOFF(sp) - - /* Find our per-thread errno address */ diff --git a/toolchain/uClibc/patches-0.9.33.2/612-mips64_relocation_fix.patch b/toolchain/uClibc/patches-0.9.33.2/612-mips64_relocation_fix.patch deleted file mode 100644 index 7edeee17d0..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/612-mips64_relocation_fix.patch +++ /dev/null @@ -1,29 +0,0 @@ -commit 052bcf13afb067cafac5e7f4fc21fbad2b34b11f -Author: Waldemar Brodkorb <wbx@openadk.org> -Date: Wed Nov 27 09:55:51 2013 +0100 - - Fix for SIGBUS error on MIPS64 with N64 ABI - - When accessing errno, a per thread variable, from _stdio_init - a SIGBUS error happens. This change fixes the wrong relocation - and debug output. - - Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> - Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> - ---- a/ldso/ldso/mips/elfinterp.c -+++ b/ldso/ldso/mips/elfinterp.c -@@ -259,11 +259,11 @@ int _dl_parse_relocation_information(str - case R_MIPS_TLS_TPREL32: - case R_MIPS_TLS_TPREL64: - CHECK_STATIC_TLS((struct link_map *)tls_tpnt); -- *(ElfW(Word) *)reloc_addr += -+ *(ElfW(Addr) *)reloc_addr += - TLS_TPREL_VALUE (tls_tpnt, symbol_addr); - #ifdef __SUPPORT_LD_DEBUG__ - _dl_dprintf(2, "TLS_TPREL : %s, %x, %x\n", -- symname, old_val, *((unsigned int *)reloc_addr)); -+ symname, old_val, *((unsigned long *)reloc_addr)); - #endif - break; - } diff --git a/toolchain/uClibc/patches-0.9.33.2/613-mips64_more_relocation_fixes.patch b/toolchain/uClibc/patches-0.9.33.2/613-mips64_more_relocation_fixes.patch deleted file mode 100644 index e2efa23823..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/613-mips64_more_relocation_fixes.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- a/ldso/ldso/mips/elfinterp.c -+++ b/ldso/ldso/mips/elfinterp.c -@@ -239,7 +239,7 @@ int _dl_parse_relocation_information(str - case R_MIPS_TLS_DTPMOD64: - case R_MIPS_TLS_DTPMOD32: - if (tls_tpnt) -- *(ElfW(Word) *)reloc_addr = tls_tpnt->l_tls_modid; -+ *(ElfW(Addr) *)reloc_addr = tls_tpnt->l_tls_modid; - #ifdef __SUPPORT_LD_DEBUG__ - _dl_dprintf(2, "TLS_DTPMOD : %s, %d, %d\n", - symname, old_val, *((unsigned int *)reloc_addr)); -@@ -248,7 +248,7 @@ int _dl_parse_relocation_information(str - - case R_MIPS_TLS_DTPREL64: - case R_MIPS_TLS_DTPREL32: -- *(ElfW(Word) *)reloc_addr += -+ *(ElfW(Addr) *)reloc_addr += - TLS_DTPREL_VALUE (symbol_addr); - #ifdef __SUPPORT_LD_DEBUG__ - _dl_dprintf(2, "TLS_DTPREL : %s, %x, %x\n", diff --git a/toolchain/uClibc/patches-0.9.33.2/614-mips64_fix_setjmp_longjmp.patch b/toolchain/uClibc/patches-0.9.33.2/614-mips64_fix_setjmp_longjmp.patch deleted file mode 100644 index 170613091b..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/614-mips64_fix_setjmp_longjmp.patch +++ /dev/null @@ -1,99 +0,0 @@ -commit 70a04a287a2875c82e6822c36e071afba5b63a62 -Author: Waldemar Brodkorb <wbx@openadk.org> -Date: Wed Jan 29 18:58:56 2014 +0100 - - libc: mips: Fix setjmp/longjmp for MIPS64 N64 ABI - - When booting a Linux system with qemu-system-mips64 the execution - of $(pwd) in the ash shell triggers a segmentation fault. Ash uses - setjmp/longjmp for exception handling. - - After looking at the glibc implementation, - I found some differences, with this patch tries to resolve. - Now the system boots up fine and no segmentation faults occur. - - The global pointer should be restored and the types for the - register values should be wide enough. - - See: - http://www.cygwin.com/ml/libc-alpha/2003-03/msg00363.html - - Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> - Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> - ---- a/libc/sysdeps/linux/mips/bits/setjmp.h -+++ b/libc/sysdeps/linux/mips/bits/setjmp.h -@@ -26,13 +26,19 @@ - - #include <sgidefs.h> - -+#if _MIPS_SIM == _MIPS_SIM_ABI32 -+#define ptrsize void * -+#else -+#define ptrsize long long -+#endif -+ - typedef struct - { - /* Program counter. */ -- void * __pc; -+ ptrsize __pc; - - /* Stack pointer. */ -- void * __sp; -+ ptrsize __sp; - - /* Callee-saved registers s0 through s7. */ - #if _MIPS_SIM == _MIPS_SIM_ABI32 -@@ -42,10 +48,10 @@ typedef struct - #endif - - /* The frame pointer. */ -- void * __fp; -+ ptrsize __fp; - - /* The global pointer. */ -- void * __gp; -+ ptrsize __gp; - - /* Floating point status register. */ - int __fpc_csr; ---- a/libc/sysdeps/linux/mips/setjmp.S -+++ b/libc/sysdeps/linux/mips/setjmp.S -@@ -53,6 +53,7 @@ __sigsetjmp: - PTR_LA t9, __sigsetjmp_aux - #if _MIPS_SIM != _MIPS_SIM_ABI32 - .cpreturn -+ move a4, gp - #endif - jr t9 - #else ---- a/libc/sysdeps/linux/mips/setjmp_aux.c -+++ b/libc/sysdeps/linux/mips/setjmp_aux.c -@@ -31,7 +31,7 @@ extern int __sigjmp_save (sigjmp_buf, in - - int - #if _MIPS_SIM == _MIPS_SIM_ABI64 --__sigsetjmp_aux (jmp_buf env, int savemask, long sp, long fp) -+__sigsetjmp_aux (jmp_buf env, int savemask, long long sp, long long fp, long long gp) - #else /* O32 || N32 */ - __sigsetjmp_aux (jmp_buf env, int savemask, int sp, int fp) - #endif /* O32 || N32 */ -@@ -65,14 +65,14 @@ __sigsetjmp_aux (jmp_buf env, int savema - #endif - - /* .. and the stack pointer; */ -- env[0].__jmpbuf[0].__sp = (void *) sp; -+ env[0].__jmpbuf[0].__sp = (ptrsize) sp; - - /* .. and the FP; it'll be in s8. */ -- env[0].__jmpbuf[0].__fp = (void *) fp; -+ env[0].__jmpbuf[0].__fp = (ptrsize) fp; - - /* .. and the GP; */ - #if _MIPS_SIM == _MIPS_SIM_ABI64 -- __asm__ __volatile__ ("sd $gp, %0" : : "m" (env[0].__jmpbuf[0].__gp)); -+ env[0].__jmpbuf[0].__gp = (ptrsize) gp; - #else - __asm__ __volatile__ ("sw $gp, %0" : : "m" (env[0].__jmpbuf[0].__gp)); - #endif diff --git a/toolchain/uClibc/patches-0.9.33.2/615-mips_fix_sigev_pad_size.patch b/toolchain/uClibc/patches-0.9.33.2/615-mips_fix_sigev_pad_size.patch deleted file mode 100644 index f75092f343..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/615-mips_fix_sigev_pad_size.patch +++ /dev/null @@ -1,58 +0,0 @@ -commit b97b4b698b023f75b54f987859c856ab4861ea00 -Author: Vicente Olivert Riera <Vincent.Riera@imgtec.com> -Date: Thu Jan 2 15:02:12 2014 +0000 - - siginfo.h: __SIGEV_PAD_SIZE takes __WORDSIZE into account - - Make __SIGEV_PAD_SIZE to take __WORDSIZE into account for alpha, mips - and ia64 arches. - - Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com> - Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> - ---- a/libc/sysdeps/linux/alpha/bits/siginfo.h -+++ b/libc/sysdeps/linux/alpha/bits/siginfo.h -@@ -258,7 +258,11 @@ enum - - /* Structure to transport application-defined values with signals. */ - # define __SIGEV_MAX_SIZE 64 --# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4) -+# if __WORDSIZE == 64 -+# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4) -+# else -+# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3) -+# endif - - typedef struct sigevent - { ---- a/libc/sysdeps/linux/ia64/bits/siginfo.h -+++ b/libc/sysdeps/linux/ia64/bits/siginfo.h -@@ -298,7 +298,11 @@ enum - - /* Structure to transport application-defined values with signals. */ - # define __SIGEV_MAX_SIZE 64 --# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4) -+# if __WORDSIZE == 64 -+# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4) -+# else -+# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3) -+# endif - - typedef struct sigevent - { ---- a/libc/sysdeps/linux/mips/bits/siginfo.h -+++ b/libc/sysdeps/linux/mips/bits/siginfo.h -@@ -265,8 +265,11 @@ enum - - /* Structure to transport application-defined values with signals. */ - # define __SIGEV_MAX_SIZE 64 --# define __SIGEV_HEAD_SIZE (sizeof(long) + 2*sizeof(int)) --# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE - __SIGEV_HEAD_SIZE) / sizeof (int)) -+# if __WORDSIZE == 64 -+# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4) -+# else -+# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3) -+# endif - - /* Forward declaration of the `pthread_attr_t' type. */ - struct __pthread_attr_s; diff --git a/toolchain/uClibc/patches-0.9.33.2/616-mips_fix_stat_time.patch b/toolchain/uClibc/patches-0.9.33.2/616-mips_fix_stat_time.patch deleted file mode 100644 index 1559857a44..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/616-mips_fix_stat_time.patch +++ /dev/null @@ -1,123 +0,0 @@ ---- a/libc/sysdeps/linux/common/xstatconv.c -+++ b/libc/sysdeps/linux/common/xstatconv.c -@@ -39,9 +39,12 @@ void __xstat_conv(struct kernel_stat *kb - buf->st_size = kbuf->st_size; - buf->st_blksize = kbuf->st_blksize; - buf->st_blocks = kbuf->st_blocks; -- buf->st_atim = kbuf->st_atim; -- buf->st_mtim = kbuf->st_mtim; -- buf->st_ctim = kbuf->st_ctim; -+ buf->st_atim.tv_sec = kbuf->st_atim.tv_sec; -+ buf->st_atim.tv_nsec = kbuf->st_atim.tv_nsec; -+ buf->st_mtim.tv_sec = kbuf->st_mtim.tv_sec; -+ buf->st_mtim.tv_nsec = kbuf->st_mtim.tv_nsec; -+ buf->st_ctim.tv_sec = kbuf->st_ctim.tv_sec; -+ buf->st_ctim.tv_nsec = kbuf->st_ctim.tv_nsec; - } - - void __xstat32_conv(struct kernel_stat64 *kbuf, struct stat *buf) -@@ -58,9 +61,12 @@ void __xstat32_conv(struct kernel_stat64 - buf->st_size = kbuf->st_size; - buf->st_blksize = kbuf->st_blksize; - buf->st_blocks = kbuf->st_blocks; -- buf->st_atim = kbuf->st_atim; -- buf->st_mtim = kbuf->st_mtim; -- buf->st_ctim = kbuf->st_ctim; -+ buf->st_atim.tv_sec = kbuf->st_atim.tv_sec; -+ buf->st_atim.tv_nsec = kbuf->st_atim.tv_nsec; -+ buf->st_mtim.tv_sec = kbuf->st_mtim.tv_sec; -+ buf->st_mtim.tv_nsec = kbuf->st_mtim.tv_nsec; -+ buf->st_ctim.tv_sec = kbuf->st_ctim.tv_sec; -+ buf->st_ctim.tv_nsec = kbuf->st_ctim.tv_nsec; - } - - #ifdef __UCLIBC_HAS_LFS__ -@@ -82,9 +88,12 @@ void __xstat64_conv(struct kernel_stat64 - buf->st_size = kbuf->st_size; - buf->st_blksize = kbuf->st_blksize; - buf->st_blocks = kbuf->st_blocks; -- buf->st_atim = kbuf->st_atim; -- buf->st_mtim = kbuf->st_mtim; -- buf->st_ctim = kbuf->st_ctim; -+ buf->st_atim.tv_sec = kbuf->st_atim.tv_sec; -+ buf->st_atim.tv_nsec = kbuf->st_atim.tv_nsec; -+ buf->st_mtim.tv_sec = kbuf->st_mtim.tv_sec; -+ buf->st_mtim.tv_nsec = kbuf->st_mtim.tv_nsec; -+ buf->st_ctim.tv_sec = kbuf->st_ctim.tv_sec; -+ buf->st_ctim.tv_nsec = kbuf->st_ctim.tv_nsec; - } - - #endif /* __UCLIBC_HAS_LFS__ */ ---- a/libc/sysdeps/linux/mips/bits/kernel_stat.h -+++ b/libc/sysdeps/linux/mips/bits/kernel_stat.h -@@ -8,6 +8,18 @@ - #include <sgidefs.h> - - #if _MIPS_SIM == _MIPS_SIM_ABI64 -+typedef struct { -+ unsigned int tv_sec; -+ unsigned int tv_nsec; -+} __ktimespec_t; -+#else -+typedef struct { -+ time_t tv_sec; -+ unsigned long tv_nsec; -+} __ktimespec_t; -+#endif -+ -+#if _MIPS_SIM == _MIPS_SIM_ABI64 - /* The memory layout is the same as of struct stat64 of the 32-bit kernel. */ - struct kernel_stat { - __kernel_dev_t st_dev; -@@ -20,9 +32,9 @@ struct kernel_stat { - __kernel_dev_t st_rdev; - unsigned int st_pad2[3]; - __kernel_off_t st_size; -- struct timespec st_atim; -- struct timespec st_mtim; -- struct timespec st_ctim; -+ __ktimespec_t st_atim; -+ __ktimespec_t st_mtim; -+ __ktimespec_t st_ctim; - unsigned int st_blksize; - unsigned int reserved3; - unsigned long st_blocks; -@@ -41,9 +53,9 @@ struct kernel_stat { - unsigned int st_rdev; - unsigned int st_pad2[3]; - unsigned long long st_size; -- struct timespec st_atim; -- struct timespec st_mtim; -- struct timespec st_ctim; -+ __ktimespec_t st_atim; -+ __ktimespec_t st_mtim; -+ __ktimespec_t st_ctim; - unsigned int st_blksize; - unsigned int reserved3; - unsigned long long st_blocks; -@@ -62,9 +74,9 @@ struct kernel_stat { - long st_pad2[2]; - __kernel_off_t st_size; - long st_pad3; -- struct timespec st_atim; -- struct timespec st_mtim; -- struct timespec st_ctim; -+ __ktimespec_t st_atim; -+ __ktimespec_t st_mtim; -+ __ktimespec_t st_ctim; - long st_blksize; - long st_blocks; - long st_pad4[14]; -@@ -81,9 +93,9 @@ struct kernel_stat64 { - unsigned long st_rdev; - unsigned long st_pad1[3]; /* Reserved for st_rdev expansion */ - long long st_size; -- struct timespec st_atim; -- struct timespec st_mtim; -- struct timespec st_ctim; -+ __ktimespec_t st_atim; -+ __ktimespec_t st_mtim; -+ __ktimespec_t st_ctim; - unsigned long st_blksize; - unsigned long st_pad2; - long long st_blocks; diff --git a/toolchain/uClibc/patches-0.9.33.2/617-mips_fix_setjmp_ptrsize.patch b/toolchain/uClibc/patches-0.9.33.2/617-mips_fix_setjmp_ptrsize.patch deleted file mode 100644 index 628d4b02d5..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/617-mips_fix_setjmp_ptrsize.patch +++ /dev/null @@ -1,58 +0,0 @@ ---- a/libc/sysdeps/linux/mips/bits/setjmp.h -+++ b/libc/sysdeps/linux/mips/bits/setjmp.h -@@ -27,18 +27,18 @@ - #include <sgidefs.h> - - #if _MIPS_SIM == _MIPS_SIM_ABI32 --#define ptrsize void * -+#define __setjmp_ptr void * - #else --#define ptrsize long long -+#define __setjmp_ptr long long - #endif - - typedef struct - { - /* Program counter. */ -- ptrsize __pc; -+ __setjmp_ptr __pc; - - /* Stack pointer. */ -- ptrsize __sp; -+ __setjmp_ptr __sp; - - /* Callee-saved registers s0 through s7. */ - #if _MIPS_SIM == _MIPS_SIM_ABI32 -@@ -48,10 +48,10 @@ typedef struct - #endif - - /* The frame pointer. */ -- ptrsize __fp; -+ __setjmp_ptr __fp; - - /* The global pointer. */ -- ptrsize __gp; -+ __setjmp_ptr __gp; - - /* Floating point status register. */ - int __fpc_csr; ---- a/libc/sysdeps/linux/mips/setjmp_aux.c -+++ b/libc/sysdeps/linux/mips/setjmp_aux.c -@@ -65,14 +65,14 @@ __sigsetjmp_aux (jmp_buf env, int savema - #endif - - /* .. and the stack pointer; */ -- env[0].__jmpbuf[0].__sp = (ptrsize) sp; -+ env[0].__jmpbuf[0].__sp = (__setjmp_ptr) sp; - - /* .. and the FP; it'll be in s8. */ -- env[0].__jmpbuf[0].__fp = (ptrsize) fp; -+ env[0].__jmpbuf[0].__fp = (__setjmp_ptr) fp; - - /* .. and the GP; */ - #if _MIPS_SIM == _MIPS_SIM_ABI64 -- env[0].__jmpbuf[0].__gp = (ptrsize) gp; -+ env[0].__jmpbuf[0].__gp = (__setjmp_ptr) gp; - #else - __asm__ __volatile__ ("sw $gp, %0" : : "m" (env[0].__jmpbuf[0].__gp)); - #endif diff --git a/toolchain/uClibc/patches-0.9.33.2/618-mips64_fix_syscall_error.patch b/toolchain/uClibc/patches-0.9.33.2/618-mips64_fix_syscall_error.patch deleted file mode 100644 index 67611fdebc..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/618-mips64_fix_syscall_error.patch +++ /dev/null @@ -1,36 +0,0 @@ ---- a/libc/sysdeps/linux/mips/sysdep.h -+++ b/libc/sysdeps/linux/mips/sysdep.h -@@ -96,7 +96,8 @@ - backwards into the previous fn. */ - - #ifdef __PIC__ --#define PSEUDO(name, syscall_name, args) \ -+# if _MIPS_SIM == _ABIO32 -+# define PSEUDO(name, syscall_name, args) \ - .align 2; \ - 99: move a0, v0; \ - la t9,__syscall_error; \ -@@ -109,6 +110,23 @@ - .set reorder; \ - bne a3, zero, 99b; \ - L(syse1): -+# else -+# define PSEUDO(name, syscall_name, args) \ -+ .align 2; \ -+ 99: \ -+ .set noat; \ -+ .cpsetup t9, $1, name; \ -+ .set at; \ -+ move a0, v0; \ -+ dla t9,__syscall_error; \ -+ .cpreturn; \ -+ jr t9; \ -+ ENTRY(name) \ -+ li v0, SYS_ify(syscall_name); \ -+ syscall; \ -+ bne a3, zero, 99b; \ -+L(syse1): -+# endif - #else - #define PSEUDO(name, syscall_name, args) \ - .set noreorder; \ diff --git a/toolchain/uClibc/patches-0.9.33.2/619-mips64_fix_sysdep_cancel.patch b/toolchain/uClibc/patches-0.9.33.2/619-mips64_fix_sysdep_cancel.patch deleted file mode 100644 index d590359a48..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/619-mips64_fix_sysdep_cancel.patch +++ /dev/null @@ -1,195 +0,0 @@ ---- a/extra/Configs/Config.in -+++ b/extra/Configs/Config.in -@@ -235,6 +235,7 @@ config TARGET_SUBARCH - default "i486" if CONFIG_486 - default "i586" if CONFIG_586 || CONFIG_586MMX - default "i686" if TARGET_ARCH = "i386" -+ default "mips64" if CONFIG_MIPS_N64_ABI - default "" - - source "extra/Configs/Config.in.arch" ---- /dev/null -+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h -@@ -0,0 +1,182 @@ -+/* Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library. If not, see -+ <http://www.gnu.org/licenses/>. */ -+ -+#include <sysdep.h> -+#include <tls.h> -+#ifndef __ASSEMBLER__ -+# include <pthreadP.h> -+#endif -+#include <sys/asm.h> -+ -+/* Gas will put the initial save of $gp into the CIE, because it appears to -+ happen before any instructions. So we use cfi_same_value instead of -+ cfi_restore. */ -+ -+#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt -+ -+#ifdef __PIC__ -+# undef PSEUDO -+# define PSEUDO(name, syscall_name, args) \ -+ .align 2; \ -+ L(pseudo_start): \ -+ cfi_startproc; \ -+ cfi_adjust_cfa_offset (STKSPACE); \ -+ cfi_rel_offset (gp, STKOFF_GP); \ -+ 99: move a0, v0; \ -+ PTR_LA t9,__syscall_error; \ -+ /* manual cpreturn */ \ -+ REG_L gp, STKOFF_GP(sp); \ -+ cfi_same_value (gp); \ -+ RESTORESTK; \ -+ jr t9; \ -+ .type __##syscall_name##_nocancel, @function; \ -+ .globl __##syscall_name##_nocancel; \ -+ __##syscall_name##_nocancel: \ -+ SAVESTK; \ -+ .cpsetup t9, STKOFF_GP, name; \ -+ cfi_rel_offset (gp, STKOFF_GP); \ -+ li v0, SYS_ify(syscall_name); \ -+ syscall; \ -+ bne a3, zero, SYSCALL_ERROR_LABEL; \ -+ /* manual cpreturn */ \ -+ REG_L gp, STKOFF_GP(sp); \ -+ cfi_same_value (gp); \ -+ RESTORESTK; \ -+ ret; \ -+ .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \ -+ ENTRY (name) \ -+ SAVESTK; \ -+ .cpsetup t9, STKOFF_GP, name; \ -+ cfi_rel_offset (gp, STKOFF_GP); \ -+ SINGLE_THREAD_P(v1); \ -+ bne zero, v1, L(pseudo_cancel); \ -+ .set noreorder; \ -+ li v0, SYS_ify(syscall_name); \ -+ syscall; \ -+ .set reorder; \ -+ bne a3, zero, SYSCALL_ERROR_LABEL; \ -+ /* manual cpreturn */ \ -+ REG_L gp, STKOFF_GP(sp); \ -+ cfi_same_value (gp); \ -+ RESTORESTK; \ -+ ret; \ -+ L(pseudo_cancel): \ -+ cfi_adjust_cfa_offset (STKSPACE); \ -+ cfi_rel_offset (gp, STKOFF_GP); \ -+ REG_S ra, STKOFF_RA(sp); \ -+ cfi_rel_offset (ra, STKOFF_RA); \ -+ PUSHARGS_##args; /* save syscall args */ \ -+ CENABLE; \ -+ REG_S v0, STKOFF_SVMSK(sp); /* save mask */ \ -+ POPARGS_##args; /* restore syscall args */ \ -+ .set noreorder; \ -+ li v0, SYS_ify (syscall_name); \ -+ syscall; \ -+ .set reorder; \ -+ REG_S v0, STKOFF_SC_V0(sp); /* save syscall result */ \ -+ REG_S a3, STKOFF_SC_ERR(sp); /* save syscall error flag */ \ -+ REG_L a0, STKOFF_SVMSK(sp); /* pass mask as arg1 */ \ -+ CDISABLE; \ -+ REG_L a3, STKOFF_SC_ERR(sp); /* restore syscall error flag */ \ -+ REG_L ra, STKOFF_RA(sp); /* restore return address */ \ -+ REG_L v0, STKOFF_SC_V0(sp); /* restore syscall result */ \ -+ bne a3, zero, SYSCALL_ERROR_LABEL; \ -+ /* manual cpreturn */ \ -+ REG_L gp, STKOFF_GP(sp); \ -+ cfi_same_value (gp); \ -+ RESTORESTK; \ -+ L(pseudo_end): -+ -+ -+# undef PSEUDO_END -+# define PSEUDO_END(sym) cfi_endproc; .end sym; .size sym,.-sym -+ -+#endif -+ -+# define PUSHARGS_0 /* nothing to do */ -+# define PUSHARGS_1 PUSHARGS_0 REG_S a0, STKOFF_A0(sp); cfi_rel_offset (a0, STKOFF_A0); -+# define PUSHARGS_2 PUSHARGS_1 REG_S a1, STKOFF_A1(sp); cfi_rel_offset (a1, STKOFF_A1); -+# define PUSHARGS_3 PUSHARGS_2 REG_S a2, STKOFF_A2(sp); cfi_rel_offset (a2, STKOFF_A2); -+# define PUSHARGS_4 PUSHARGS_3 REG_S a3, STKOFF_A3(sp); cfi_rel_offset (a3, STKOFF_A3); -+# define PUSHARGS_5 PUSHARGS_4 REG_S a4, STKOFF_A4(sp); cfi_rel_offset (a3, STKOFF_A4); -+# define PUSHARGS_6 PUSHARGS_5 REG_S a5, STKOFF_A5(sp); cfi_rel_offset (a3, STKOFF_A5); -+ -+# define POPARGS_0 /* nothing to do */ -+# define POPARGS_1 POPARGS_0 REG_L a0, STKOFF_A0(sp); -+# define POPARGS_2 POPARGS_1 REG_L a1, STKOFF_A1(sp); -+# define POPARGS_3 POPARGS_2 REG_L a2, STKOFF_A2(sp); -+# define POPARGS_4 POPARGS_3 REG_L a3, STKOFF_A3(sp); -+# define POPARGS_5 POPARGS_4 REG_L a4, STKOFF_A4(sp); -+# define POPARGS_6 POPARGS_5 REG_L a5, STKOFF_A5(sp); -+ -+/* Save an even number of slots. Should be 0 if an even number of slots -+ are used below, or SZREG if an odd number are used. */ -+# define STK_PAD SZREG -+ -+/* Place values that we are more likely to use later in this sequence, i.e. -+ closer to the SP at function entry. If you do that, the are more -+ likely to already be in your d-cache. */ -+# define STKOFF_A5 (STK_PAD) -+# define STKOFF_A4 (STKOFF_A5 + SZREG) -+# define STKOFF_A3 (STKOFF_A4 + SZREG) -+# define STKOFF_A2 (STKOFF_A3 + SZREG) /* MT and more args. */ -+# define STKOFF_A1 (STKOFF_A2 + SZREG) /* MT and 2 args. */ -+# define STKOFF_A0 (STKOFF_A1 + SZREG) /* MT and 1 arg. */ -+# define STKOFF_RA (STKOFF_A0 + SZREG) /* Used if MT. */ -+# define STKOFF_SC_V0 (STKOFF_RA + SZREG) /* Used if MT. */ -+# define STKOFF_SC_ERR (STKOFF_SC_V0 + SZREG) /* Used if MT. */ -+# define STKOFF_SVMSK (STKOFF_SC_ERR + SZREG) /* Used if MT. */ -+# define STKOFF_GP (STKOFF_SVMSK + SZREG) /* Always used. */ -+ -+# define STKSPACE (STKOFF_GP + SZREG) -+# define SAVESTK PTR_SUBU sp, STKSPACE; cfi_adjust_cfa_offset(STKSPACE) -+# define RESTORESTK PTR_ADDU sp, STKSPACE; cfi_adjust_cfa_offset(-STKSPACE) -+ -+# ifdef IS_IN_libpthread -+# define CENABLE PTR_LA t9, __pthread_enable_asynccancel; jalr t9 -+# define CDISABLE PTR_LA t9, __pthread_disable_asynccancel; jalr t9 -+# elif defined IS_IN_librt -+# define CENABLE PTR_LA t9, __librt_enable_asynccancel; jalr t9 -+# define CDISABLE PTR_LA t9, __librt_disable_asynccancel; jalr t9 -+# else -+# define CENABLE PTR_LA t9, __libc_enable_asynccancel; jalr t9 -+# define CDISABLE PTR_LA t9, __libc_disable_asynccancel; jalr t9 -+# endif -+ -+# ifndef __ASSEMBLER__ -+# define SINGLE_THREAD_P \ -+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ -+ header.multiple_threads) \ -+ == 0, 1) -+# else -+# define SINGLE_THREAD_P(reg) \ -+ READ_THREAD_POINTER(reg); \ -+ lw reg, MULTIPLE_THREADS_OFFSET(reg) -+#endif -+ -+#elif !defined __ASSEMBLER__ -+ -+# define SINGLE_THREAD_P 1 -+# define NO_CANCELLATION 1 -+ -+#endif -+ -+#ifndef __ASSEMBLER__ -+# define RTLD_SINGLE_THREAD_P \ -+ __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ -+ header.multiple_threads) == 0, 1) -+#endif diff --git a/toolchain/uClibc/patches-0.9.33.2/960-remove_eabi_oabi_selection.patch b/toolchain/uClibc/patches-0.9.33.2/960-remove_eabi_oabi_selection.patch deleted file mode 100644 index 19ac24695b..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/960-remove_eabi_oabi_selection.patch +++ /dev/null @@ -1,32 +0,0 @@ -Rely on the compiler to be properly setup for the default ABI. - -When installing-headers, there are two cases: -- NPTL: no issue, a cross-compiler is already expected -- LinuxThreads: no issue, EABI/OABI has no impact on installed headers. - -Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> -Cc: Khem Raj <raj.khem@gmail.com> -Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> -Cc: Carmelo AMOROSO <carmelo.amoroso@st.com> ---- - ---- a/extra/Configs/Config.arm -+++ b/extra/Configs/Config.arm -@@ -12,17 +12,6 @@ config FORCE_OPTIONS_FOR_ARCH - default y - select ARCH_ANY_ENDIAN - --config CONFIG_ARM_EABI -- bool "Build for EABI" -- help -- If you say 'y' here, functions and constants required by the -- ARM EABI will be built into the library. You should say 'y' -- if your compiler uses the ARM EABI, in which case you will also -- need a kernel supporting the EABI system call interface. -- -- If you say 'n' here, then the library will be built for the -- old Linux ABI. -- - config COMPILE_IN_THUMB_MODE - bool "Build using Thumb mode" - select USE_BX diff --git a/toolchain/uClibc/patches-0.9.33.2/970-add___kernel_long_and___kernel_ulong.patch b/toolchain/uClibc/patches-0.9.33.2/970-add___kernel_long_and___kernel_ulong.patch deleted file mode 100644 index d790664ba4..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/970-add___kernel_long_and___kernel_ulong.patch +++ /dev/null @@ -1,320 +0,0 @@ -From 6a76edddaa62ff06f178143b582167734cb55c18 Mon Sep 17 00:00:00 2001 -From: Chris Packham <chris.packham@alliedtelesis.co.nz> -Date: Mon, 01 Oct 2012 05:12:54 +0000 -Subject: libc/sysdeps: add __kernel_long and __kernel_ulong - -Linux 3.4 added __kernel_long_t and __kernel_ulong_t and various -exported header files were updated to use these new types. Add the -definitions for __kernel_long_t and __kernel_ulong_t to the relevant -kernel_types.h headers. - -This change was automated with the following scriptlet - - git grep --name-only 'typedef.*__kernel_old_dev_t' \ - | xargs sed -i '/typedef.*__kernel_old_dev_t/ a\ - typedef long\t\t__kernel_long_t;\ - typedef unsigned long\t__kernel_ulong_t;' - -Whitespace in arm, avr32, hppa, sparc was then manually fixed up. - -Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> --- -Here's a cleaned up patch which should get the whitespace right. I'm a -bit iffy about the sparc changes they make sense to me but it's not a -platform I have access to. - -I can break this up per arch or per maintainer if requested. - - libc/sysdeps/linux/alpha/bits/kernel_types.h | 2 ++ - libc/sysdeps/linux/arm/bits/kernel_types.h | 2 ++ - libc/sysdeps/linux/avr32/bits/kernel_types.h | 2 ++ - libc/sysdeps/linux/bfin/bits/kernel_types.h | 2 ++ - libc/sysdeps/linux/c6x/bits/kernel_types.h | 2 ++ - libc/sysdeps/linux/cris/bits/kernel_types.h | 2 ++ - libc/sysdeps/linux/e1/bits/kernel_types.h | 2 ++ - libc/sysdeps/linux/h8300/bits/kernel_types.h | 2 ++ - libc/sysdeps/linux/hppa/bits/kernel_types.h | 2 ++ - libc/sysdeps/linux/i386/bits/kernel_types.h | 2 ++ - libc/sysdeps/linux/ia64/bits/kernel_types.h | 2 ++ - libc/sysdeps/linux/m68k/bits/kernel_types.h | 2 ++ - libc/sysdeps/linux/microblaze/bits/kernel_types.h | 2 ++ - libc/sysdeps/linux/mips/bits/kernel_types.h | 4 ++++ - libc/sysdeps/linux/nios2/bits/kernel_types.h | 2 ++ - libc/sysdeps/linux/powerpc/bits/kernel_types.h | 4 ++++ - libc/sysdeps/linux/sh/bits/kernel_types.h | 2 ++ - libc/sysdeps/linux/sh64/bits/kernel_types.h | 2 ++ - libc/sysdeps/linux/sparc/bits/kernel_types.h | 4 ++++ - libc/sysdeps/linux/v850/bits/kernel_types.h | 2 ++ - libc/sysdeps/linux/x86_64/bits/kernel_types.h | 2 ++ - libc/sysdeps/linux/xtensa/bits/kernel_types.h | 2 ++ - 22 files changed, 50 insertions(+) -Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> ---- ---- a/libc/sysdeps/linux/alpha/bits/kernel_types.h -+++ b/libc/sysdeps/linux/alpha/bits/kernel_types.h -@@ -33,6 +33,8 @@ typedef __kernel_gid_t __kernel_old_gid_ - typedef __kernel_uid_t __kernel_uid32_t; - typedef __kernel_gid_t __kernel_gid32_t; - typedef __kernel_dev_t __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - - typedef struct { - int val[2]; ---- a/libc/sysdeps/linux/arm/bits/kernel_types.h -+++ b/libc/sysdeps/linux/arm/bits/kernel_types.h -@@ -32,6 +32,8 @@ typedef unsigned short __kernel_old_uid - typedef unsigned short __kernel_old_gid_t; - typedef long long __kernel_loff_t; - typedef __kernel_dev_t __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - - typedef struct { - #ifdef __USE_ALL ---- a/libc/sysdeps/linux/avr32/bits/kernel_types.h -+++ b/libc/sysdeps/linux/avr32/bits/kernel_types.h -@@ -39,6 +39,8 @@ typedef unsigned int __kernel_gid32_t; - typedef unsigned short __kernel_old_uid_t; - typedef unsigned short __kernel_old_gid_t; - typedef unsigned short __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - - #ifdef __GNUC__ - typedef long long __kernel_loff_t; ---- a/libc/sysdeps/linux/bfin/bits/kernel_types.h -+++ b/libc/sysdeps/linux/bfin/bits/kernel_types.h -@@ -32,6 +32,8 @@ typedef unsigned short __kernel_old_uid_ - typedef unsigned short __kernel_old_gid_t; - typedef long long __kernel_loff_t; - typedef __kernel_dev_t __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - - typedef struct { - #ifdef __USE_ALL ---- a/libc/sysdeps/linux/c6x/bits/kernel_types.h -+++ b/libc/sysdeps/linux/c6x/bits/kernel_types.h -@@ -22,6 +22,8 @@ typedef unsigned int __kernel_gid32_t; - typedef unsigned int __kernel_old_uid_t; - typedef unsigned int __kernel_old_gid_t; - typedef unsigned int __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - typedef unsigned int __kernel_size_t; - typedef int __kernel_ssize_t; - typedef int __kernel_ptrdiff_t; ---- a/libc/sysdeps/linux/cris/bits/kernel_types.h -+++ b/libc/sysdeps/linux/cris/bits/kernel_types.h -@@ -28,6 +28,8 @@ typedef unsigned int __kernel_gid32_t - typedef unsigned short __kernel_old_uid_t; - typedef unsigned short __kernel_old_gid_t; - typedef __kernel_dev_t __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - - #ifdef __GNUC__ - typedef long long __kernel_loff_t; ---- a/libc/sysdeps/linux/e1/bits/kernel_types.h -+++ b/libc/sysdeps/linux/e1/bits/kernel_types.h -@@ -31,6 +31,8 @@ typedef unsigned int __kernel_gid32_t; - typedef unsigned short __kernel_old_uid_t; - typedef unsigned short __kernel_old_gid_t; - typedef __kernel_dev_t __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - typedef long long __kernel_loff_t; - - /* ---- a/libc/sysdeps/linux/h8300/bits/kernel_types.h -+++ b/libc/sysdeps/linux/h8300/bits/kernel_types.h -@@ -32,6 +32,8 @@ typedef unsigned short __kernel_old_uid_ - typedef unsigned short __kernel_old_gid_t; - typedef long long __kernel_loff_t; - typedef __kernel_dev_t __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - - typedef struct { - #ifdef __USE_ALL ---- a/libc/sysdeps/linux/hppa/bits/kernel_types.h -+++ b/libc/sysdeps/linux/hppa/bits/kernel_types.h -@@ -45,6 +45,8 @@ typedef long long __kernel_off64_t; - typedef unsigned long long __kernel_ino64_t; - - typedef unsigned int __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - - typedef struct { - #ifdef __USE_ALL ---- a/libc/sysdeps/linux/i386/bits/kernel_types.h -+++ b/libc/sysdeps/linux/i386/bits/kernel_types.h -@@ -40,6 +40,8 @@ typedef unsigned int __kernel_gid32_t; - typedef unsigned short __kernel_old_uid_t; - typedef unsigned short __kernel_old_gid_t; - typedef __kernel_dev_t __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - typedef long long __kernel_loff_t; - - typedef struct { ---- a/libc/sysdeps/linux/ia64/bits/kernel_types.h -+++ b/libc/sysdeps/linux/ia64/bits/kernel_types.h -@@ -52,5 +52,7 @@ typedef __kernel_gid_t __kernel_gid32_t; - - typedef unsigned int __kernel_dev_t; - typedef unsigned int __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - - #endif /* _ASM_IA64_POSIX_TYPES_H */ ---- a/libc/sysdeps/linux/m68k/bits/kernel_types.h -+++ b/libc/sysdeps/linux/m68k/bits/kernel_types.h -@@ -32,6 +32,8 @@ typedef unsigned short __kernel_old_uid_ - typedef unsigned short __kernel_old_gid_t; - typedef long long __kernel_loff_t; - typedef __kernel_dev_t __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - - typedef struct { - #ifdef __USE_ALL ---- a/libc/sysdeps/linux/microblaze/bits/kernel_types.h -+++ b/libc/sysdeps/linux/microblaze/bits/kernel_types.h -@@ -44,6 +44,8 @@ typedef unsigned int __kernel_gid32_t; - typedef unsigned int __kernel_old_uid_t; - typedef unsigned int __kernel_old_gid_t; - typedef unsigned int __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - - #ifdef __GNUC__ - typedef long long __kernel_loff_t; ---- a/libc/sysdeps/linux/mips/bits/kernel_types.h -+++ b/libc/sysdeps/linux/mips/bits/kernel_types.h -@@ -32,6 +32,8 @@ typedef int __kernel_gid32_t; - typedef __kernel_uid_t __kernel_old_uid_t; - typedef __kernel_gid_t __kernel_old_gid_t; - typedef __kernel_dev_t __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - typedef long long __kernel_loff_t; - #else - typedef unsigned int __kernel_dev_t; -@@ -68,6 +70,8 @@ typedef int __kernel_gid32_t; - typedef __kernel_uid_t __kernel_old_uid_t; - typedef __kernel_gid_t __kernel_old_gid_t; - typedef __kernel_dev_t __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - typedef long long __kernel_loff_t; - #endif - ---- a/libc/sysdeps/linux/nios2/bits/kernel_types.h -+++ b/libc/sysdeps/linux/nios2/bits/kernel_types.h -@@ -31,6 +31,8 @@ typedef unsigned int __kernel_gid32_t; - typedef unsigned short __kernel_old_uid_t; - typedef unsigned short __kernel_old_gid_t; - typedef unsigned short __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - typedef long long __kernel_loff_t; - - typedef struct { ---- a/libc/sysdeps/linux/powerpc/bits/kernel_types.h -+++ b/libc/sysdeps/linux/powerpc/bits/kernel_types.h -@@ -36,6 +36,8 @@ typedef unsigned int __kernel_gid32_t; - typedef unsigned int __kernel_old_uid_t; - typedef unsigned int __kernel_old_gid_t; - typedef __kernel_dev_t __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - #else - typedef unsigned int __kernel_dev_t; - typedef unsigned int __kernel_ino_t; -@@ -61,6 +63,8 @@ typedef unsigned int __kernel_gid32_t; - typedef unsigned int __kernel_old_uid_t; - typedef unsigned int __kernel_old_gid_t; - typedef __kernel_dev_t __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - typedef long long __kernel_loff_t; - #endif - ---- a/libc/sysdeps/linux/sh/bits/kernel_types.h -+++ b/libc/sysdeps/linux/sh/bits/kernel_types.h -@@ -32,6 +32,8 @@ typedef unsigned int __kernel_gid32_t; - typedef unsigned short __kernel_old_uid_t; - typedef unsigned short __kernel_old_gid_t; - typedef __kernel_dev_t __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - typedef long long __kernel_loff_t; - - typedef struct { ---- a/libc/sysdeps/linux/sh64/bits/kernel_types.h -+++ b/libc/sysdeps/linux/sh64/bits/kernel_types.h -@@ -43,6 +43,8 @@ typedef unsigned int __kernel_gid32_t - typedef unsigned short __kernel_old_uid_t; - typedef unsigned short __kernel_old_gid_t; - typedef __kernel_dev_t __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - typedef long long __kernel_loff_t; - - typedef struct { ---- a/libc/sysdeps/linux/sparc/bits/kernel_types.h -+++ b/libc/sysdeps/linux/sparc/bits/kernel_types.h -@@ -32,6 +32,8 @@ typedef unsigned short __kernel_g - typedef __kernel_uid_t __kernel_old_uid_t; - typedef __kernel_gid_t __kernel_old_gid_t; - typedef __kernel_dev_t __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - typedef __kernel_uid_t __kernel_uid32_t; - typedef __kernel_gid_t __kernel_gid32_t; - typedef int __kernel_suseconds_t; -@@ -62,6 +64,8 @@ typedef unsigned int __kernel_gid - typedef unsigned short __kernel_old_uid_t; - typedef unsigned short __kernel_old_gid_t; - typedef __kernel_dev_t __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - typedef long long __kernel_loff_t; - #endif - ---- a/libc/sysdeps/linux/v850/bits/kernel_types.h -+++ b/libc/sysdeps/linux/v850/bits/kernel_types.h -@@ -41,6 +41,8 @@ typedef unsigned int __kernel_gid32_t; - typedef unsigned short __kernel_old_uid_t; - typedef unsigned short __kernel_old_gid_t; - typedef __kernel_dev_t __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - - typedef struct { - #ifdef __USE_ALL ---- a/libc/sysdeps/linux/x86_64/bits/kernel_types.h -+++ b/libc/sysdeps/linux/x86_64/bits/kernel_types.h -@@ -40,6 +40,8 @@ typedef unsigned int __kernel_gid32_t; - typedef unsigned short __kernel_old_uid_t; - typedef unsigned short __kernel_old_gid_t; - typedef __kernel_dev_t __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - typedef long long __kernel_loff_t; - - typedef struct { ---- a/libc/sysdeps/linux/xtensa/bits/kernel_types.h -+++ b/libc/sysdeps/linux/xtensa/bits/kernel_types.h -@@ -33,6 +33,8 @@ typedef unsigned int __kernel_gid32_t; - typedef unsigned short __kernel_old_uid_t; - typedef unsigned short __kernel_old_gid_t; - typedef unsigned short __kernel_old_dev_t; -+typedef long __kernel_long_t; -+typedef unsigned long __kernel_ulong_t; - typedef long long __kernel_loff_t; - - /* Beginning in 2.6 kernels, which is the first version that includes the diff --git a/toolchain/uClibc/patches-0.9.33.2/981-fix_setting_arch_native_bit.patch b/toolchain/uClibc/patches-0.9.33.2/981-fix_setting_arch_native_bit.patch deleted file mode 100644 index 4c7dd46891..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/981-fix_setting_arch_native_bit.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 7e509aae23665b9a79f6c9b4c24d1d8a55bd3582 Mon Sep 17 00:00:00 2001 -From: Gustavo Zacarias <gustavo@zacarias.com.ar> -Date: Wed, 24 Jul 2013 15:30:35 +0000 -Subject: Rules.mak: Fix setting arch native bit - -fix breakage from 603af30d - -Removing the whitespace from findstring for 64 bit architectures has -bad consequences since powerpc would be a match in powerpc64 and sparc -would also be a match in sparc64. -That doesn't make them 64 bits in reality causing general breakage. - -Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> -Reviewed-by: Markos Chandras <markos.chandras@imgtec.com> -Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> ---- - ---- a/Rules.mak -+++ b/Rules.mak -@@ -121,7 +121,7 @@ UBACKTRACE_DSO := libubacktrace.so.$(ABI - - UCLIBC_LDSO_NAME := ld-uClibc - ARCH_NATIVE_BIT := 32 --ifneq ($(findstring $(TARGET_ARCH),hppa64 ia64 powerpc64 s390x sparc64 x86_64),) -+ifneq ($(findstring $(TARGET_ARCH) , hppa64 ia64 powerpc64 s390x sparc64 x86_64 ),) - UCLIBC_LDSO_NAME := ld64-uClibc - ARCH_NATIVE_BIT := 64 - else diff --git a/toolchain/uClibc/patches-0.9.33.2/990-no-stack-cache.patch b/toolchain/uClibc/patches-0.9.33.2/990-no-stack-cache.patch deleted file mode 100644 index 8f0b511ea6..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/990-no-stack-cache.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/libpthread/nptl/allocatestack.c -+++ b/libpthread/nptl/allocatestack.c -@@ -100,7 +100,7 @@ - /* Cache handling for not-yet free stacks. */ - - /* Maximum size in kB of cache. */ --static size_t stack_cache_maxsize = 40 * 1024 * 1024; /* 40MiBi by default. */ -+static size_t stack_cache_maxsize = 0; /* embedded systems don't have enough ram for dirty stack caches */ - static size_t stack_cache_actsize; - - /* Mutex protecting this variable. */ diff --git a/toolchain/uClibc/patches-0.9.33.2/991-gen_wctype.patch b/toolchain/uClibc/patches-0.9.33.2/991-gen_wctype.patch deleted file mode 100644 index e85d6d4522..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/991-gen_wctype.patch +++ /dev/null @@ -1,183 +0,0 @@ ---- a/extra/locale/gen_wctype.c -+++ b/extra/locale/gen_wctype.c -@@ -227,11 +227,12 @@ int main(int argc, char **argv) - ++verbose; - continue; - } -- if (!setlocale(LC_CTYPE, *argv)) { -+ /* setlocale might be just a stub */ -+ /* if (!setlocale(LC_CTYPE, *argv)) { - verbose_msg("setlocale(LC_CTYPE,%s) failed! Skipping this locale...\n", *argv); - continue; - } -- -+ */ - if (!(totitle = wctrans("totitle"))) { - verbose_msg("no totitle transformation.\n"); - } -@@ -306,43 +307,43 @@ int main(int argc, char **argv) - #endif - #if 0 - if (c < 256) { -- unsigned int glibc; -+ unsigned int curr_stdclib; - -- glibc = 0; -- if (isalnum(c)) ++glibc; glibc <<= 1; -- if (isalpha(c)) ++glibc; glibc <<= 1; -- if (isblank(c)) ++glibc; glibc <<= 1; -- if (iscntrl(c)) ++glibc; glibc <<= 1; -- if (isdigit(c)) ++glibc; glibc <<= 1; -- if (isgraph(c)) ++glibc; glibc <<= 1; -- if (islower(c)) ++glibc; glibc <<= 1; -- if (isprint(c)) ++glibc; glibc <<= 1; -- if (ispunct(c)) ++glibc; glibc <<= 1; -- if (isspace(c)) ++glibc; glibc <<= 1; -- if (isupper(c)) ++glibc; glibc <<= 1; -- if (isxdigit(c)) ++glibc; -- verbose_msg("%#8x : ctype %#4x\n", c, glibc); -+ curr_stdclib = 0; -+ if (isalnum(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (isalpha(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (isblank(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iscntrl(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (isdigit(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (isgraph(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (islower(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (isprint(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (ispunct(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (isspace(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (isupper(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (isxdigit(c)) ++curr_stdclib; -+ verbose_msg("%#8x : ctype %#4x\n", c, curr_stdclib); - } - #endif - #if 1 - /* Paranoid checking... */ - { -- unsigned int glibc; -+ unsigned int curr_stdclib; - unsigned int mine; - -- glibc = 0; -- if (iswalnum(c)) ++glibc; glibc <<= 1; -- if (iswalpha(c)) ++glibc; glibc <<= 1; -- if (iswblank(c)) ++glibc; glibc <<= 1; -- if (iswcntrl(c)) ++glibc; glibc <<= 1; -- if (iswdigit(c)) ++glibc; glibc <<= 1; -- if (iswgraph(c)) ++glibc; glibc <<= 1; -- if (iswlower(c)) ++glibc; glibc <<= 1; -- if (iswprint(c)) ++glibc; glibc <<= 1; -- if (iswpunct(c)) ++glibc; glibc <<= 1; -- if (iswspace(c)) ++glibc; glibc <<= 1; -- if (iswupper(c)) ++glibc; glibc <<= 1; -- if (iswxdigit(c)) ++glibc; -+ curr_stdclib = 0; -+ if (iswalnum(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswalpha(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswblank(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswcntrl(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswdigit(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswgraph(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswlower(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswprint(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswpunct(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswspace(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswupper(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswxdigit(c)) ++curr_stdclib; - - mine = 0; - if (mywalnum(d,c)) ++mine; mine <<= 1; -@@ -358,15 +359,15 @@ int main(int argc, char **argv) - if (mywupper(d,c)) ++mine; mine <<= 1; - if (mywxdigit(d,c)) ++mine; - -- if (glibc != mine) { -- verbose_msg("%#8x : glibc %#4x != %#4x mine %u\n", c, glibc, mine, d); -+ if (curr_stdclib != mine) { -+ verbose_msg("%#8x : curr_stdclib %#4x != %#4x mine %u\n", c, curr_stdclib, mine, d); - return EXIT_FAILURE; - } - #if 0 - if (iswctype(c,is_comb) || iswctype(c,is_comb3)) { - /* if (!iswpunct(c)) { */ - verbose_msg("%#8x : %d %d %#4x\n", -- c, iswctype(c,is_comb),iswctype(c,is_comb3), glibc); -+ c, iswctype(c,is_comb),iswctype(c,is_comb3), curr_stdclib); - /* } */ - } - #endif -@@ -553,7 +554,7 @@ int main(int argc, char **argv) - for (c = 0; c <= 0x10ffffUL; c++) - #endif - { -- unsigned int glibc; -+ unsigned int curr_stdclib; - unsigned int mine; - unsigned int upper, lower; - -@@ -568,19 +569,19 @@ int main(int argc, char **argv) - } - #endif - #endif -- glibc = 0; -- if (iswalnum(c)) ++glibc; glibc <<= 1; -- if (iswalpha(c)) ++glibc; glibc <<= 1; -- if (iswblank(c)) ++glibc; glibc <<= 1; -- if (iswcntrl(c)) ++glibc; glibc <<= 1; -- if (iswdigit(c)) ++glibc; glibc <<= 1; -- if (iswgraph(c)) ++glibc; glibc <<= 1; -- if (iswlower(c)) ++glibc; glibc <<= 1; -- if (iswprint(c)) ++glibc; glibc <<= 1; -- if (iswpunct(c)) ++glibc; glibc <<= 1; -- if (iswspace(c)) ++glibc; glibc <<= 1; -- if (iswupper(c)) ++glibc; glibc <<= 1; -- if (iswxdigit(c)) ++glibc; -+ curr_stdclib = 0; -+ if (iswalnum(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswalpha(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswblank(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswcntrl(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswdigit(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswgraph(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswlower(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswprint(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswpunct(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswspace(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswupper(c)) ++curr_stdclib; curr_stdclib <<= 1; -+ if (iswxdigit(c)) ++curr_stdclib; - - { - unsigned int u; -@@ -630,8 +631,8 @@ int main(int argc, char **argv) - if (mywupper(d,c)) ++mine; mine <<= 1; - if (mywxdigit(d,c)) ++mine; - -- if (glibc != mine) { -- verbose_msg("%#8x : glibc %#4x != %#4x mine %d\n", c, glibc, mine, d); -+ if (curr_stdclib != mine) { -+ verbose_msg("%#8x : curr_stdclib %#4x != %#4x mine %d\n", c, curr_stdclib, mine, d); - if (c < 0x30000UL) { - verbose_msg("sc=%#x u=%#x n=%#x i0=%#x i1=%#x\n", sc, u, n, i0, i1); - } -@@ -655,17 +656,17 @@ int main(int argc, char **argv) - } - - if (towupper(c) != upper) { -- verbose_msg("%#8x : towupper glibc %#4x != %#4x mine\n", -+ verbose_msg("%#8x : towupper curr_stdclib %#4x != %#4x mine\n", - c, towupper(c), upper); - } - - if (towlower(c) != lower) { -- verbose_msg("%#8x : towlower glibc %#4x != %#4x mine i0 = %d\n", -+ verbose_msg("%#8x : towlower curr_stdclib %#4x != %#4x mine i0 = %d\n", - c, towlower(c), lower, i0); - } - - if (totitle && ((tt = towctrans(c, totitle)) != upper)) { -- verbose_msg("%#8x : totitle glibc %#4lx != %#4x mine i0 = %d\n", -+ verbose_msg("%#8x : totitle curr_stdclib %#4lx != %#4x mine i0 = %d\n", - c, tt, upper, i0); - } - } diff --git a/toolchain/uClibc/patches-0.9.33.2/995-add-sigsys-to-siginfo_t-union.patch b/toolchain/uClibc/patches-0.9.33.2/995-add-sigsys-to-siginfo_t-union.patch deleted file mode 100644 index 4894a56138..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/995-add-sigsys-to-siginfo_t-union.patch +++ /dev/null @@ -1,145 +0,0 @@ -Index: uClibc/libc/sysdeps/linux/common/bits/siginfo.h -=================================================================== ---- uClibc.orig/libc/sysdeps/linux/common/bits/siginfo.h -+++ uClibc/libc/sysdeps/linux/common/bits/siginfo.h -@@ -104,6 +104,14 @@ typedef struct siginfo - long int si_band; /* Band event for SIGPOLL. */ - int si_fd; - } _sigpoll; -+ -+ /* SIGSYS. */ -+ struct -+ { -+ void *_call_addr; /* Calling user insn. */ -+ int _syscall; /* Triggering system call number. */ -+ unsigned int _arch; /* AUDIT_ARCH_* of syscall. */ -+ } _sigsys; - } _sifields; - } siginfo_t; - -@@ -122,6 +130,9 @@ typedef struct siginfo - # define si_addr _sifields._sigfault.si_addr - # define si_band _sifields._sigpoll.si_band - # define si_fd _sifields._sigpoll.si_fd -+# define si_call_addr _sifields._sigsys._call_addr -+# define si_syscall _sifields._sigsys._syscall -+# define si_arch _sifields._sigsys._arch - - - /* Values for `si_code'. Positive values are reserved for kernel-generated -Index: uClibc/libc/sysdeps/linux/alpha/bits/siginfo.h -=================================================================== ---- uClibc.orig/libc/sysdeps/linux/alpha/bits/siginfo.h -+++ uClibc/libc/sysdeps/linux/alpha/bits/siginfo.h -@@ -98,6 +98,14 @@ typedef struct siginfo - int si_band; /* Band event for SIGPOLL. */ - int si_fd; - } _sigpoll; -+ -+ /* SIGSYS. */ -+ struct -+ { -+ void *_call_addr; /* Calling user insn. */ -+ int _syscall; /* Triggering system call number. */ -+ unsigned int _arch; /* AUDIT_ARCH_* of syscall. */ -+ } _sigsys; - } _sifields; - } siginfo_t; - -@@ -116,6 +124,9 @@ typedef struct siginfo - # define si_addr _sifields._sigfault.si_addr - # define si_band _sifields._sigpoll.si_band - # define si_fd _sifields._sigpoll.si_fd -+# define si_call_addr _sifields._sigsys._call_addr -+# define si_syscall _sifields._sigsys._syscall -+# define si_arch _sifields._sigsys._arch - - - /* Values for `si_code'. Positive values are reserved for kernel-generated -Index: uClibc/libc/sysdeps/linux/ia64/bits/siginfo.h -=================================================================== ---- uClibc.orig/libc/sysdeps/linux/ia64/bits/siginfo.h -+++ uClibc/libc/sysdeps/linux/ia64/bits/siginfo.h -@@ -103,6 +103,14 @@ typedef struct siginfo - long int si_band; /* Band event for SIGPOLL. */ - int si_fd; - } _sigpoll; -+ -+ /* SIGSYS. */ -+ struct -+ { -+ void *_call_addr; /* Calling user insn. */ -+ int _syscall; /* Triggering system call number. */ -+ unsigned int _arch; /* AUDIT_ARCH_* of syscall. */ -+ } _sigsys; - } _sifields; - } siginfo_t; - -@@ -121,6 +129,9 @@ typedef struct siginfo - # define si_addr _sifields._sigfault.si_addr - # define si_band _sifields._sigpoll.si_band - # define si_fd _sifields._sigpoll.si_fd -+# define si_call_addr _sifields._sigsys._call_addr -+# define si_syscall _sifields._sigsys._syscall -+# define si_arch _sifields._sigsys._arch - - # ifdef __USE_GNU - # define si_imm _sifields._sigfault._si_imm -Index: uClibc/libc/sysdeps/linux/mips/bits/siginfo.h -=================================================================== ---- uClibc.orig/libc/sysdeps/linux/mips/bits/siginfo.h -+++ uClibc/libc/sysdeps/linux/mips/bits/siginfo.h -@@ -107,6 +107,14 @@ typedef struct siginfo - __uid_t si_uid; /* Real user ID of sending process. */ - sigval_t si_sigval; /* Signal value. */ - } _rt; -+ -+ /* SIGSYS. */ -+ struct -+ { -+ void *_call_addr; /* Calling user insn. */ -+ int _syscall; /* Triggering system call number. */ -+ unsigned int _arch; /* AUDIT_ARCH_* of syscall. */ -+ } _sigsys; - } _sifields; - } siginfo_t; - -@@ -123,6 +131,9 @@ typedef struct siginfo - # define si_addr _sifields._sigfault.si_addr - # define si_band _sifields._sigpoll.si_band - # define si_fd _sifields._sigpoll.si_fd -+# define si_call_addr _sifields._sigsys._call_addr -+# define si_syscall _sifields._sigsys._syscall -+# define si_arch _sifields._sigsys._arch - - - /* Values for `si_code'. Positive values are reserved for kernel-generated -Index: uClibc/libc/sysdeps/linux/sparc/bits/siginfo.h -=================================================================== ---- uClibc.orig/libc/sysdeps/linux/sparc/bits/siginfo.h -+++ uClibc/libc/sysdeps/linux/sparc/bits/siginfo.h -@@ -105,6 +105,14 @@ typedef struct siginfo - int si_band; /* Band event for SIGPOLL. */ - int si_fd; - } _sigpoll; -+ -+ /* SIGSYS. */ -+ struct -+ { -+ void *_call_addr; /* Calling user insn. */ -+ int _syscall; /* Triggering system call number. */ -+ unsigned int _arch; /* AUDIT_ARCH_* of syscall. */ -+ } _sigsys; - } _sifields; - } siginfo_t; - -@@ -124,6 +132,9 @@ typedef struct siginfo - # define si_trapno _sifields._sigfault.si_trapno - # define si_band _sifields._sigpoll.si_band - # define si_fd _sifields._sigpoll.si_fd -+# define si_call_addr _sifields._sigsys._call_addr -+# define si_syscall _sifields._sigsys._syscall -+# define si_arch _sifields._sigsys._arch - - - /* Values for `si_code'. Positive values are reserved for kernel-generated diff --git a/toolchain/uClibc/patches-0.9.33.2/999-eventfd_use_bits_scheme.patch b/toolchain/uClibc/patches-0.9.33.2/999-eventfd_use_bits_scheme.patch deleted file mode 100644 index 0551290710..0000000000 --- a/toolchain/uClibc/patches-0.9.33.2/999-eventfd_use_bits_scheme.patch +++ /dev/null @@ -1,248 +0,0 @@ -From fd355bc1dbcb794ae1abf0fad1459e28d8567ba0 Mon Sep 17 00:00:00 2001 -From: Hiroaki KAWAI <kawai@stratosphere.co.jp> -Date: Fri, 19 Apr 2013 01:09:35 +0000 -Subject: eventfd.h: Use new "bits/" scheme for arch-specific flags - -As in timerfd.h, eventfd.h needs arch-specific definition files. -alpha, mips and sparc needs separate file, all the other arch -will use common definition. - -This problem is already fixed in glibc. - -Also sanitize and provide bits for hppa. -Make sure not to install the new bits/eventfd unless eventfd support is -enabled. - -Signed-off-by: Hiroaki KAWAI <kawai@stratosphere.co.jp> -Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> ---- ---- a/Makefile.in -+++ b/Makefile.in -@@ -272,6 +272,7 @@ HEADERS_RM-$(UCLIBC_HAS_XATTR) - HEADERS_RM-$(UCLIBC_HAS_XLOCALE) += xlocale.h - HEADERS_RM-$(UCLIBC_LINUX_SPECIFIC) += sys/eventfd.h sys/fsuid.h \ - bits/inotify.h \ -+ bits/eventfd.h \ - sys/inotify.h \ - sys/kdaemon.h \ - sys/perm.h \ ---- /dev/null -+++ b/libc/sysdeps/linux/alpha/bits/eventfd.h -@@ -0,0 +1,31 @@ -+/* Copyright (C) 2007-2013 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ <http://www.gnu.org/licenses/>. */ -+ -+#ifndef _SYS_EVENTFD_H -+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead." -+#endif -+ -+/* Flags for eventfd. */ -+enum -+ { -+ EFD_SEMAPHORE = 000000001, -+#define EFD_SEMAPHORE EFD_SEMAPHORE -+ EFD_CLOEXEC = 010000000, -+#define EFD_CLOEXEC EFD_CLOEXEC -+ EFD_NONBLOCK = 000000004 -+#define EFD_NONBLOCK EFD_NONBLOCK -+ }; ---- /dev/null -+++ b/libc/sysdeps/linux/common/bits/eventfd.h -@@ -0,0 +1,31 @@ -+/* Copyright (C) 2007-2013 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ <http://www.gnu.org/licenses/>. */ -+ -+#ifndef _SYS_EVENTFD_H -+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead." -+#endif -+ -+/* Flags for eventfd. */ -+enum -+ { -+ EFD_SEMAPHORE = 00000001, -+#define EFD_SEMAPHORE EFD_SEMAPHORE -+ EFD_CLOEXEC = 02000000, -+#define EFD_CLOEXEC EFD_CLOEXEC -+ EFD_NONBLOCK = 00004000 -+#define EFD_NONBLOCK EFD_NONBLOCK -+ }; ---- a/libc/sysdeps/linux/common/sys/eventfd.h -+++ b/libc/sysdeps/linux/common/sys/eventfd.h -@@ -1,4 +1,4 @@ --/* Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc. -+/* Copyright (C) 2007-2013 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -21,21 +21,12 @@ - - #include <stdint.h> - -+/* Get the platform-dependent flags. */ -+#include <bits/eventfd.h> - - /* Type for event counter. */ - typedef uint64_t eventfd_t; - --/* Flags for signalfd. */ --enum -- { -- EFD_SEMAPHORE = 1, --#define EFD_SEMAPHORE EFD_SEMAPHORE -- EFD_CLOEXEC = 02000000, --#define EFD_CLOEXEC EFD_CLOEXEC -- EFD_NONBLOCK = 04000 --#define EFD_NONBLOCK EFD_NONBLOCK -- }; -- - - __BEGIN_DECLS - -@@ -43,6 +34,16 @@ __BEGIN_DECLS - value to COUNT. */ - extern int eventfd (int __count, int __flags) __THROW; - -+#if 0 /* not (yet) implemented in uClibc */ -+ -+/* Read event counter and possibly wait for events. */ -+extern int eventfd_read (int __fd, eventfd_t *__value); -+ -+/* Increment event counter. */ -+extern int eventfd_write (int __fd, eventfd_t __value); -+ -+#endif -+ - __END_DECLS - - #endif /* sys/eventfd.h */ ---- /dev/null -+++ b/libc/sysdeps/linux/hppa/bits/eventfd.h -@@ -0,0 +1,32 @@ -+/* Copyright (C) 2007-2013 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library. If not, see -+ <http://www.gnu.org/licenses/>. */ -+ -+#ifndef _SYS_EVENTFD_H -+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead." -+#endif -+ -+/* Flags for signalfd. */ -+enum -+ { -+ EFD_SEMAPHORE = 000000001, -+#define EFD_SEMAPHORE EFD_SEMAPHORE -+ EFD_CLOEXEC = 010000000, -+#define EFD_CLOEXEC EFD_CLOEXEC -+/* the below value looks suspicious, should be 000200004 for consistency */ -+ EFD_NONBLOCK = 00200004 /* HPUX has separate NDELAY & NONBLOCK */ -+#define EFD_NONBLOCK EFD_NONBLOCK -+ }; ---- /dev/null -+++ b/libc/sysdeps/linux/mips/bits/eventfd.h -@@ -0,0 +1,31 @@ -+/* Copyright (C) 2007-2013 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ <http://www.gnu.org/licenses/>. */ -+ -+#ifndef _SYS_EVENTFD_H -+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead." -+#endif -+ -+/* Flags for eventfd. */ -+enum -+ { -+ EFD_SEMAPHORE = 00000001, -+#define EFD_SEMAPHORE EFD_SEMAPHORE -+ EFD_CLOEXEC = 02000000, -+#define EFD_CLOEXEC EFD_CLOEXEC -+ EFD_NONBLOCK = 00000200 -+#define EFD_NONBLOCK EFD_NONBLOCK -+ }; ---- /dev/null -+++ b/libc/sysdeps/linux/sparc/bits/eventfd.h -@@ -0,0 +1,31 @@ -+/* Copyright (C) 2007-2013 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ <http://www.gnu.org/licenses/>. */ -+ -+#ifndef _SYS_EVENTFD_H -+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead." -+#endif -+ -+/* Flags for eventfd. */ -+enum -+ { -+ EFD_SEMAPHORE = 1, -+#define EFD_SEMAPHORE EFD_SEMAPHORE -+ EFD_CLOEXEC = 0x400000, -+#define EFD_CLOEXEC EFD_CLOEXEC -+ EFD_NONBLOCK = 0x004000 -+#define EFD_NONBLOCK EFD_NONBLOCK -+ }; |