uClibc: remove 0.9.30, 0.9.31

SVN-Revision: 25542
v19.07.3_mercusys_ac12_duma
Felix Fietkau 13 years ago
parent 47310844bc
commit 72ca180fd7

@ -7,12 +7,6 @@ choice
help
Select the version of uClibc you wish to use.
config UCLIBC_VERSION_0_9_30_1
bool "uClibc 0.9.30.1"
config UCLIBC_VERSION_0_9_31
bool "uClibc 0.9.31"
config UCLIBC_VERSION_0_9_32
bool "uClibc 0.9.32-git"

@ -1,7 +1,5 @@
config UCLIBC_VERSION
string
depends on USE_UCLIBC
default "0.9.30.1" if UCLIBC_VERSION_0_9_30_1
default "0.9.31" if UCLIBC_VERSION_0_9_31
default "0.9.32" if UCLIBC_VERSION_0_9_32
default "0.9.32"

@ -24,8 +24,6 @@ endif
PATCH_DIR:=./patches-$(PKG_VERSION)
CONFIG_DIR:=./config-$(PKG_VERSION)
PKG_MD5SUM_0.9.30.1 = 1a4b84e5536ad8170563ffa88c34679c
PKG_MD5SUM_0.9.31 = 52fb8a494758630c8d3ddd7f1e0daafd
PKG_MD5SUM=$(PKG_MD5SUM_$(PKG_VERSION))
HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME)-$(PKG_VERSION)

@ -1,25 +0,0 @@
ARCH_ANY_ENDIAN=y
ARCH_LITTLE_ENDIAN=y
ARCH_WANTS_LITTLE_ENDIAN=y
# CONFIG_ARM10T is not set
# CONFIG_ARM1136JF_S is not set
# CONFIG_ARM1176JZF_S is not set
# CONFIG_ARM1176JZ_S is not set
# CONFIG_ARM610 is not set
# CONFIG_ARM710 is not set
# CONFIG_ARM720T is not set
# CONFIG_ARM7TDMI is not set
# CONFIG_ARM920T is not set
# CONFIG_ARM922T is not set
# CONFIG_ARM926T is not set
# CONFIG_ARM_CORTEX_M1 is not set
# CONFIG_ARM_CORTEX_M3 is not set
# CONFIG_ARM_EABI is not set
# CONFIG_ARM_IWMMXT is not set
CONFIG_ARM_OABI=y
# CONFIG_ARM_SA110 is not set
# CONFIG_ARM_SA1100 is not set
CONFIG_ARM_XSCALE=y
# CONFIG_GENERIC_ARM is not set
TARGET_ARCH="arm"
TARGET_arm=y

@ -1,26 +0,0 @@
ARCH_ANY_ENDIAN=y
ARCH_LITTLE_ENDIAN=y
ARCH_WANTS_LITTLE_ENDIAN=y
# CONFIG_ARM10T is not set
# CONFIG_ARM1136JF_S is not set
# CONFIG_ARM1176JZF_S is not set
# CONFIG_ARM1176JZ_S is not set
# CONFIG_ARM610 is not set
# CONFIG_ARM710 is not set
# CONFIG_ARM720T is not set
# CONFIG_ARM7TDMI is not set
CONFIG_ARM920T=y
# CONFIG_ARM922T is not set
# CONFIG_ARM926T is not set
# CONFIG_ARM_CORTEX_M1 is not set
# CONFIG_ARM_CORTEX_M3 is not set
# CONFIG_ARM_EABI is not set
# CONFIG_ARM_IWMMXT is not set
CONFIG_ARM_OABI=y
# CONFIG_ARM_SA110 is not set
# CONFIG_ARM_SA1100 is not set
# CONFIG_ARM_XSCALE is not set
# CONFIG_GENERIC_ARM is not set
TARGET_ARCH="arm"
TARGET_arm=y
# USE_BX is not set

@ -1,25 +0,0 @@
ARCH_ANY_ENDIAN=y
ARCH_LITTLE_ENDIAN=y
ARCH_WANTS_LITTLE_ENDIAN=y
# CONFIG_ARM10T is not set
# CONFIG_ARM1136JF_S is not set
CONFIG_ARM1176JZF_S=y
# CONFIG_ARM1176JZ_S is not set
# CONFIG_ARM610 is not set
# CONFIG_ARM710 is not set
# CONFIG_ARM720T is not set
# CONFIG_ARM7TDMI is not set
# CONFIG_ARM920T is not set
# CONFIG_ARM922T is not set
# CONFIG_ARM926T is not set
# CONFIG_ARM_CORTEX_M1 is not set
# CONFIG_ARM_CORTEX_M3 is not set
# CONFIG_ARM_EABI is not set
# CONFIG_ARM_IWMMXT is not set
CONFIG_ARM_OABI=y
# CONFIG_ARM_SA110 is not set
# CONFIG_ARM_SA1100 is not set
# CONFIG_ARM_XSCALE is not set
# CONFIG_GENERIC_ARM is not set
TARGET_ARCH="arm"
TARGET_arm=y

@ -1,26 +0,0 @@
ARCH_ANY_ENDIAN=y
ARCH_LITTLE_ENDIAN=y
ARCH_WANTS_LITTLE_ENDIAN=y
# CONFIG_ARM10T is not set
# CONFIG_ARM1136JF_S is not set
# CONFIG_ARM1176JZF_S is not set
# CONFIG_ARM1176JZ_S is not set
# CONFIG_ARM610 is not set
# CONFIG_ARM710 is not set
# CONFIG_ARM720T is not set
# CONFIG_ARM7TDMI is not set
CONFIG_ARM920T=y
# CONFIG_ARM922T is not set
# CONFIG_ARM926T is not set
# CONFIG_ARM_CORTEX_M1 is not set
# CONFIG_ARM_CORTEX_M3 is not set
# CONFIG_ARM_EABI is not set
# CONFIG_ARM_IWMMXT is not set
CONFIG_ARM_OABI=y
# CONFIG_ARM_SA110 is not set
# CONFIG_ARM_SA1100 is not set
# CONFIG_ARM_XSCALE is not set
# CONFIG_GENERIC_ARM is not set
TARGET_ARCH="arm"
TARGET_arm=y
# USE_BX is not set

@ -1,25 +0,0 @@
ARCH_ANY_ENDIAN=y
ARCH_BIG_ENDIAN=y
ARCH_WANTS_BIG_ENDIAN=y
# CONFIG_ARM10T is not set
# CONFIG_ARM1136JF_S is not set
# CONFIG_ARM1176JZF_S is not set
# CONFIG_ARM1176JZ_S is not set
# CONFIG_ARM610 is not set
# CONFIG_ARM710 is not set
# CONFIG_ARM720T is not set
# CONFIG_ARM7TDMI is not set
# CONFIG_ARM920T is not set
# CONFIG_ARM922T is not set
# CONFIG_ARM926T is not set
# CONFIG_ARM_CORTEX_M1 is not set
# CONFIG_ARM_CORTEX_M3 is not set
# CONFIG_ARM_EABI is not set
# CONFIG_ARM_IWMMXT is not set
CONFIG_ARM_OABI=y
# CONFIG_ARM_SA110 is not set
# CONFIG_ARM_SA1100 is not set
CONFIG_ARM_XSCALE=y
# CONFIG_GENERIC_ARM is not set
TARGET_ARCH="arm"
TARGET_arm=y

@ -1,10 +0,0 @@
ARCH_BIG_ENDIAN=y
CONFIG_AVR32_AP7=y
FORCE_SHAREABLE_TEXT_SEGMENTS=y
LINKRELAX=y
TARGET_ARCH="avr32"
TARGET_avr32=y
UCLIBC_HAS_FPU=y
# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set
# UCLIBC_HAS_STRING_ARCH_OPT is not set
UNIX98PTY_ONLY=y

@ -1,179 +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
# EXTRA_WARNINGS is not set
FORCE_OPTIONS_FOR_ARCH=y
# FORCE_SHAREABLE_TEXT_SEGMENTS 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_LDD_SUPPORT=y
# LDSO_PRELOAD_FILE_SUPPORT is not set
LDSO_RUNPATH=y
LINUXTHREADS_OLD=y
# MALLOC is not set
MALLOC_GLIBC_COMPAT=y
# MALLOC_SIMPLE is not set
MALLOC_STANDARD=y
# PTHREADS_DEBUG_SUPPORT is not set
RUNTIME_PREFIX="/"
SHARED_LIB_LOADER_PREFIX="/lib"
# 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_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_ubicom32 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 is not set
# UCLIBC_HAS_ARC4RANDOM is not set
UCLIBC_HAS_BSD_ERR=y
UCLIBC_HAS_BSD_RES_CLOSE=y
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_FENV is not set
UCLIBC_HAS_FLOATS=y
UCLIBC_HAS_FNMATCH=y
UCLIBC_HAS_FNMATCH_OLD=y
UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
# UCLIBC_HAS_FPU is not set
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_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_LOCALE is not set
UCLIBC_HAS_NETWORK_SUPPORT=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_RPC is not set
UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
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_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_WCHAR=y
UCLIBC_HAS_WORDEXP=y
# UCLIBC_HAS_XATTR is not set
UCLIBC_HAS___PROGNAME=y
# UCLIBC_LINUX_MODULE_24 is not set
UCLIBC_LINUX_SPECIFIC=y
# UCLIBC_MALLOC_DEBUGGING is not set
# UCLIBC_MJN3_ONLY is not set
# UCLIBC_NTP_LEGACY is not set
UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
UCLIBC_PWD_BUFFER_SIZE=256
# UCLIBC_STATIC_LDCONFIG is not set
UCLIBC_SUPPORT_AI_ADDRCONFIG=y
UCLIBC_SUSV3_LEGACY=y
UCLIBC_SUSV3_LEGACY_MACROS=y
# UCLIBC_SV4_DEPRECATED is not set
UCLIBC_TZ_FILE_PATH="/etc/TZ"
UCLIBC_USE_NETLINK=y
# UNIX98PTY_ONLY is not set
USE_BX=y
WARNINGS="-Wall"

@ -1,6 +0,0 @@
ARCH_LITTLE_ENDIAN=y
CONFIG_CRIS=y
# CONFIG_CRISV32 is not set
TARGET_ARCH="cris"
TARGET_cris=y
UCLIBC_HAS_FPU=y

@ -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

@ -1,22 +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
UCLIBC_HAS_LONG_DOUBLE_MATH=y

@ -1,22 +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
UCLIBC_HAS_LONG_DOUBLE_MATH=y

@ -1,5 +0,0 @@
ARCH_BIG_ENDIAN=y
TARGET_ARCH="m68k"
TARGET_SUBARCH=""
TARGET_m68k=y
UCLIBC_HAS_LONG_DOUBLE_MATH=y

@ -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

@ -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

@ -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

@ -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

@ -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=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
UCLIBC_LINUX_MODULE_24=y

@ -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

@ -1,7 +0,0 @@
ARCH_BIG_ENDIAN=y
CONFIG_CLASSIC=y
# CONFIG_E500 is not set
TARGET_ARCH="powerpc"
TARGET_SUBARCH="classic"
TARGET_powerpc=y
UCLIBC_HAS_LONG_DOUBLE_MATH=y

@ -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

@ -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

@ -1,35 +0,0 @@
ARCH_BIG_ENDIAN=y
ARCH_HAS_NO_MMU=y
COMPAT_ATEXIT=y
# CONFIG_UC_UBICOM32_V3 is not set
CONFIG_UC_UBICOM32_V4=y
# DOSTRIP is not set
EXCLUDE_BRK=y
FORCE_SHAREABLE_TEXT_SEGMENTS=y
LDSO_PRELOAD_FILE_SUPPORT=y
MALLOC=y
# MALLOC_STANDARD is not set
PTHREADS_DEBUG_SUPPORT=y
SUPPORT_LD_DEBUG=y
TARGET_ARCH="ubicom32"
TARGET_ubicom32=y
# UCLIBC_FORMAT_ELF is not set
UCLIBC_FORMAT_FDPIC_ELF=y
# UCLIBC_FORMAT_FLAT is not set
# UCLIBC_FORMAT_FLAT_SEP_DATA is not set
# UCLIBC_FORMAT_SHARED_FLAT is not set
UCLIBC_HAS_ADVANCED_REALTIME=y
UCLIBC_HAS_FOPEN_LARGEFILE_MODE=y
UCLIBC_HAS_FPU=y
# UCLIBC_HAS_GETPT is not set
UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL=y
UCLIBC_HAS_PROFILING=y
UCLIBC_HAS_REENTRANT_RPC=y
UCLIBC_HAS_STUBS=y
UCLIBC_HAS_XATTR=y
UCLIBC_NTP_LEGACY=y
UCLIBC_STATIC_LDCONFIG=y
UCLIBC_SV4_DEPRECATED=y
UCLIBC_UCLINUX_BROKEN_MUNMAP=y
UNIX98PTY_ONLY=y

@ -1,7 +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
UCLIBC_HAS_LONG_DOUBLE_MATH=y

@ -1,25 +0,0 @@
ARCH_ANY_ENDIAN=y
ARCH_LITTLE_ENDIAN=y
ARCH_WANTS_LITTLE_ENDIAN=y
# CONFIG_ARM10T is not set
# CONFIG_ARM1136JF_S is not set
# CONFIG_ARM1176JZF_S is not set
# CONFIG_ARM1176JZ_S is not set
# CONFIG_ARM610 is not set
# CONFIG_ARM710 is not set
# CONFIG_ARM720T is not set
# CONFIG_ARM7TDMI is not set
# CONFIG_ARM920T is not set
# CONFIG_ARM922T is not set
# CONFIG_ARM926T is not set
# CONFIG_ARM_CORTEX_M1 is not set
# CONFIG_ARM_CORTEX_M3 is not set
# CONFIG_ARM_EABI is not set
# CONFIG_ARM_IWMMXT is not set
CONFIG_ARM_OABI=y
# CONFIG_ARM_SA110 is not set
# CONFIG_ARM_SA1100 is not set
CONFIG_ARM_XSCALE=y
# CONFIG_GENERIC_ARM is not set
TARGET_ARCH="arm"
TARGET_arm=y

@ -1,26 +0,0 @@
ARCH_ANY_ENDIAN=y
ARCH_LITTLE_ENDIAN=y
ARCH_WANTS_LITTLE_ENDIAN=y
# CONFIG_ARM10T is not set
# CONFIG_ARM1136JF_S is not set
# CONFIG_ARM1176JZF_S is not set
# CONFIG_ARM1176JZ_S is not set
# CONFIG_ARM610 is not set
# CONFIG_ARM710 is not set
# CONFIG_ARM720T is not set
# CONFIG_ARM7TDMI is not set
CONFIG_ARM920T=y
# CONFIG_ARM922T is not set
# CONFIG_ARM926T is not set
# CONFIG_ARM_CORTEX_M1 is not set
# CONFIG_ARM_CORTEX_M3 is not set
# CONFIG_ARM_EABI is not set
# CONFIG_ARM_IWMMXT is not set
CONFIG_ARM_OABI=y
# CONFIG_ARM_SA110 is not set
# CONFIG_ARM_SA1100 is not set
# CONFIG_ARM_XSCALE is not set
# CONFIG_GENERIC_ARM is not set
TARGET_ARCH="arm"
TARGET_arm=y
# USE_BX is not set

@ -1,25 +0,0 @@
ARCH_ANY_ENDIAN=y
ARCH_LITTLE_ENDIAN=y
ARCH_WANTS_LITTLE_ENDIAN=y
# CONFIG_ARM10T is not set
# CONFIG_ARM1136JF_S is not set
CONFIG_ARM1176JZF_S=y
# CONFIG_ARM1176JZ_S is not set
# CONFIG_ARM610 is not set
# CONFIG_ARM710 is not set
# CONFIG_ARM720T is not set
# CONFIG_ARM7TDMI is not set
# CONFIG_ARM920T is not set
# CONFIG_ARM922T is not set
# CONFIG_ARM926T is not set
# CONFIG_ARM_CORTEX_M1 is not set
# CONFIG_ARM_CORTEX_M3 is not set
# CONFIG_ARM_EABI is not set
# CONFIG_ARM_IWMMXT is not set
CONFIG_ARM_OABI=y
# CONFIG_ARM_SA110 is not set
# CONFIG_ARM_SA1100 is not set
# CONFIG_ARM_XSCALE is not set
# CONFIG_GENERIC_ARM is not set
TARGET_ARCH="arm"
TARGET_arm=y

@ -1,26 +0,0 @@
ARCH_ANY_ENDIAN=y
ARCH_LITTLE_ENDIAN=y
ARCH_WANTS_LITTLE_ENDIAN=y
# CONFIG_ARM10T is not set
# CONFIG_ARM1136JF_S is not set
# CONFIG_ARM1176JZF_S is not set
# CONFIG_ARM1176JZ_S is not set
# CONFIG_ARM610 is not set
# CONFIG_ARM710 is not set
# CONFIG_ARM720T is not set
# CONFIG_ARM7TDMI is not set
CONFIG_ARM920T=y
# CONFIG_ARM922T is not set
# CONFIG_ARM926T is not set
# CONFIG_ARM_CORTEX_M1 is not set
# CONFIG_ARM_CORTEX_M3 is not set
# CONFIG_ARM_EABI is not set
# CONFIG_ARM_IWMMXT is not set
CONFIG_ARM_OABI=y
# CONFIG_ARM_SA110 is not set
# CONFIG_ARM_SA1100 is not set
# CONFIG_ARM_XSCALE is not set
# CONFIG_GENERIC_ARM is not set
TARGET_ARCH="arm"
TARGET_arm=y
# USE_BX is not set

@ -1,25 +0,0 @@
ARCH_ANY_ENDIAN=y
ARCH_BIG_ENDIAN=y
ARCH_WANTS_BIG_ENDIAN=y
# CONFIG_ARM10T is not set
# CONFIG_ARM1136JF_S is not set
# CONFIG_ARM1176JZF_S is not set
# CONFIG_ARM1176JZ_S is not set
# CONFIG_ARM610 is not set
# CONFIG_ARM710 is not set
# CONFIG_ARM720T is not set
# CONFIG_ARM7TDMI is not set
# CONFIG_ARM920T is not set
# CONFIG_ARM922T is not set
# CONFIG_ARM926T is not set
# CONFIG_ARM_CORTEX_M1 is not set
# CONFIG_ARM_CORTEX_M3 is not set
# CONFIG_ARM_EABI is not set
# CONFIG_ARM_IWMMXT is not set
CONFIG_ARM_OABI=y
# CONFIG_ARM_SA110 is not set
# CONFIG_ARM_SA1100 is not set
CONFIG_ARM_XSCALE=y
# CONFIG_GENERIC_ARM is not set
TARGET_ARCH="arm"
TARGET_arm=y

@ -1,10 +0,0 @@
ARCH_BIG_ENDIAN=y
CONFIG_AVR32_AP7=y
FORCE_SHAREABLE_TEXT_SEGMENTS=y
LINKRELAX=y
TARGET_ARCH="avr32"
TARGET_avr32=y
UCLIBC_HAS_FPU=y
# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set
# UCLIBC_HAS_STRING_ARCH_OPT is not set
UNIX98PTY_ONLY=y

@ -1,190 +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_LDD_SUPPORT=y
# LDSO_PRELOAD_FILE_SUPPORT is not set
LDSO_RUNPATH=y
# LDSO_SEARCH_INTERP_PATH is not set
# LINUXTHREADS_NEW is not set
LINUXTHREADS_OLD=y
# MALLOC is not set
MALLOC_GLIBC_COMPAT=y
# MALLOC_SIMPLE is not set
MALLOC_STANDARD=y
MULTILIB_DIR="lib"
# PTHREADS_DEBUG_SUPPORT is not set
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_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_ubicom32 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 is not set
# 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_EXCLUSIVE_MODE=y
# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
# UCLIBC_HAS_FPU is not set
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_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_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_RPC is not set
UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
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_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_WCHAR=y
UCLIBC_HAS_WORDEXP=y
# UCLIBC_HAS_XATTR is not set
UCLIBC_HAS___PROGNAME=y
# UCLIBC_LINUX_MODULE_24 is not set
UCLIBC_LINUX_SPECIFIC=y
# UCLIBC_MALLOC_DEBUGGING is not set
# UCLIBC_MJN3_ONLY is not set
# UCLIBC_NTP_LEGACY is not set
UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
UCLIBC_PWD_BUFFER_SIZE=256
# UCLIBC_STATIC_LDCONFIG 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_USE_NETLINK=y
# UNIX98PTY_ONLY is not set
USE_BX=y
WARNINGS="-Wall"

@ -1,6 +0,0 @@
ARCH_LITTLE_ENDIAN=y
CONFIG_CRIS=y
# CONFIG_CRISV32 is not set
TARGET_ARCH="cris"
TARGET_cris=y
UCLIBC_HAS_FPU=y

@ -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

@ -1,22 +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
UCLIBC_HAS_LONG_DOUBLE_MATH=y

@ -1,22 +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
UCLIBC_HAS_LONG_DOUBLE_MATH=y

@ -1,5 +0,0 @@
ARCH_BIG_ENDIAN=y
TARGET_ARCH="m68k"
TARGET_SUBARCH=""
TARGET_m68k=y
UCLIBC_HAS_LONG_DOUBLE_MATH=y

@ -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

@ -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

@ -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

@ -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

@ -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=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
UCLIBC_LINUX_MODULE_24=y

@ -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

@ -1,7 +0,0 @@
ARCH_BIG_ENDIAN=y
CONFIG_CLASSIC=y
# CONFIG_E500 is not set
TARGET_ARCH="powerpc"
TARGET_SUBARCH="classic"
TARGET_powerpc=y
UCLIBC_HAS_LONG_DOUBLE_MATH=y

@ -1,7 +0,0 @@
ARCH_BIG_ENDIAN=y
# CONFIG_CLASSIC is not set
CONFIG_E500=y
TARGET_ARCH="powerpc"
TARGET_SUBARCH="classic"
TARGET_powerpc=y
UCLIBC_HAS_LONG_DOUBLE_MATH=y

@ -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

@ -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

@ -1,35 +0,0 @@
ARCH_BIG_ENDIAN=y
ARCH_HAS_NO_MMU=y
COMPAT_ATEXIT=y
# CONFIG_UC_UBICOM32_V3 is not set
CONFIG_UC_UBICOM32_V4=y
# DOSTRIP is not set
EXCLUDE_BRK=y
FORCE_SHAREABLE_TEXT_SEGMENTS=y
LDSO_PRELOAD_FILE_SUPPORT=y
MALLOC=y
# MALLOC_STANDARD is not set
PTHREADS_DEBUG_SUPPORT=y
SUPPORT_LD_DEBUG=y
TARGET_ARCH="ubicom32"
TARGET_ubicom32=y
# UCLIBC_FORMAT_ELF is not set
UCLIBC_FORMAT_FDPIC_ELF=y
# UCLIBC_FORMAT_FLAT is not set
# UCLIBC_FORMAT_FLAT_SEP_DATA is not set
# UCLIBC_FORMAT_SHARED_FLAT is not set
UCLIBC_HAS_ADVANCED_REALTIME=y
UCLIBC_HAS_FOPEN_LARGEFILE_MODE=y
UCLIBC_HAS_FPU=y
# UCLIBC_HAS_GETPT is not set
UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL=y
UCLIBC_HAS_PROFILING=y
UCLIBC_HAS_REENTRANT_RPC=y
UCLIBC_HAS_STUBS=y
UCLIBC_HAS_XATTR=y
UCLIBC_NTP_LEGACY=y
UCLIBC_STATIC_LDCONFIG=y
UCLIBC_SV4_DEPRECATED=y
UCLIBC_UCLINUX_BROKEN_MUNMAP=y
UNIX98PTY_ONLY=y

@ -1,7 +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
UCLIBC_HAS_LONG_DOUBLE_MATH=y

@ -1,51 +0,0 @@
--- ./include/string.h.orig 2008-06-08 22:38:53.000000000 +0200
+++ ./include/string.h 2009-01-02 16:09:03.000000000 +0100
@@ -355,18 +355,40 @@
/* 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.

@ -1,14 +0,0 @@
Index: uClibc-0.9.29/include/sys/timex.h
===================================================================
--- uClibc-0.9.29.orig/include/sys/timex.h 2007-12-30 17:34:21.983513096 +0100
+++ uClibc-0.9.29/include/sys/timex.h 2007-12-30 17:34:32.180094169 +0100
@@ -116,7 +116,8 @@
__BEGIN_DECLS
-extern int __adjtimex (struct timex *__ntx) __THROW;
+#undef __adjtimex
+#define __adjtimex adjtimex
extern int adjtimex (struct timex *__ntx) __THROW;
extern int ntp_gettime (struct ntptimeval *__ntv) __THROW;

@ -1,10 +0,0 @@
--- a/libc/unistd/daemon.c
+++ b/libc/unistd/daemon.c
@@ -54,7 +54,6 @@
libc_hidden_proto(dup2)
libc_hidden_proto(setsid)
libc_hidden_proto(chdir)
-libc_hidden_proto(fork)
int daemon( int nochdir, int noclose )
{

@ -1,11 +0,0 @@
--- a/libc/sysdeps/linux/common/bits/mathcalls.h
+++ b/libc/sysdeps/linux/common/bits/mathcalls.h
@@ -229,7 +229,7 @@
/* Return nonzero if VALUE is not a number. */
-__MATHDECL_PRIV (int,__isnan,, (_Mdouble_ __value), (__const__));
+__MATHDECL_PRIV (int,isnan,, (_Mdouble_ __value), (__const__));
#if defined __USE_MISC || defined __USE_XOPEN
/* Return nonzero if VALUE is not a number. */

@ -1,474 +0,0 @@
Index: uClibc-0.9.30.1/libm/ldouble_wrappers.c
===================================================================
--- uClibc-0.9.30.1/libm/ldouble_wrappers.c (revision 25552)
+++ uClibc-0.9.30.1/libm/ldouble_wrappers.c (working copy)
@@ -13,6 +13,16 @@
#include "math.h"
#include <complex.h>
+#if defined __NO_LONG_DOUBLE_MATH
+# define int_WRAPPER_C99(func) /* not needed */
+# else
+# define int_WRAPPER_C99(func) \
+int func##l(long double x) \
+{ \
+ return func((double) x); \
+} \
+libm_hidden_def(func##l)
+#endif
/* Implement the following, as defined by SuSv3 */
#if 0
@@ -543,46 +553,28 @@ long double truncl (long double x)
#endif
-#ifdef __DO_C99_MATH__
+#if defined __DO_C99_MATH__
#ifdef L_fpclassifyl
-int __fpclassifyl (long double x)
-{
- return __fpclassify ( (double) x );
-}
-libm_hidden_def(__fpclassifyl)
+int_WRAPPER_C99(__fpclassify)
#endif
#ifdef L_finitel
-int __finitel (long double x)
-{
- return __finite ( (double)x );
-}
-libm_hidden_def(__finitel)
+int_WRAPPER_C99(__finite)
#endif
#ifdef L_signbitl
-int __signbitl (long double x)
-{
- return __signbitl ( (double)x );
-}
-libm_hidden_def(__signbitl)
+int_WRAPPER_C99(__signbit)
#endif
#ifdef L_isnanl
-int __isnanl (long double x)
-{
- return __isnan ( (double)x );
-}
-libm_hidden_def(__isnanl)
+int_WRAPPER_C99(__isnan)
#endif
#ifdef L_isinfl
-int __isinfl (long double x)
-{
- return __isinf ( (double)x );
-}
-libm_hidden_def(__isinfl)
+int_WRAPPER_C99(__isinf)
#endif
-#endif
+#endif /* DO_C99_MATH */
+
+#undef int_WRAPPER_C99
Index: uClibc-0.9.30.1/libm/nan.c
===================================================================
--- uClibc-0.9.30.1/libm/nan.c (revision 25552)
+++ uClibc-0.9.30.1/libm/nan.c (working copy)
@@ -45,7 +45,7 @@ float nanf (const char *tagp)
}
libm_hidden_def(nanf)
-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
+#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __NO_LONG_DOUBLE_MATH
libm_hidden_proto(nanl)
long double nanl (const char *tagp)
{
Index: uClibc-0.9.30.1/include/math.h
===================================================================
--- uClibc-0.9.30.1/include/math.h (revision 25552)
+++ uClibc-0.9.30.1/include/math.h (working copy)
@@ -118,7 +118,7 @@ __BEGIN_DECLS
# undef __MATH_PRECNAME
# if (__STDC__ - 0 || __GNUC__ - 0) \
- && (defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ || defined __LDBL_COMPAT)
+ && (!defined __NO_LONG_DOUBLE_MATH || defined __LDBL_COMPAT)
# ifdef __LDBL_COMPAT
# ifdef __USE_ISOC99
@@ -230,7 +230,7 @@ enum
};
/* Return number of classification appropriate for X. */
-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# ifdef __NO_LONG_DOUBLE_MATH
# define fpclassify(x) \
(sizeof (x) == sizeof (float) ? __fpclassifyf (x) : __fpclassify (x))
# else
@@ -242,7 +242,7 @@ enum
# endif
/* Return nonzero value if sign of X is negative. */
-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# ifdef __NO_LONG_DOUBLE_MATH
# define signbit(x) \
(sizeof (x) == sizeof (float) ? __signbitf (x) : __signbit (x))
# else
@@ -254,7 +254,7 @@ enum
# endif
/* Return nonzero value if X is not +-Inf or NaN. */
-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# ifdef __NO_LONG_DOUBLE_MATH
# define isfinite(x) \
(sizeof (x) == sizeof (float) ? __finitef (x) : __finite (x))
# else
@@ -270,7 +270,7 @@ enum
/* Return nonzero value if X is a NaN. We could use `fpclassify' but
we already have this functions `__isnan' and it is faster. */
-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# ifdef __NO_LONG_DOUBLE_MATH
# define isnan(x) \
(sizeof (x) == sizeof (float) ? __isnanf (x) : __isnan (x))
# else
@@ -282,7 +282,7 @@ enum
# endif
/* Return nonzero value is X is positive or negative infinity. */
-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# ifdef __NO_LONG_DOUBLE_MATH
# define isinf(x) \
(sizeof (x) == sizeof (float) ? __isinff (x) : __isinf (x))
# else
Index: uClibc-0.9.30.1/include/tgmath.h
===================================================================
--- uClibc-0.9.30.1/include/tgmath.h (revision 25552)
+++ uClibc-0.9.30.1/include/tgmath.h (working copy)
@@ -36,7 +36,7 @@
#if __GNUC_PREREQ (2, 7)
-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# ifdef __NO_LONG_DOUBLE_MATH
# define __tgml(fct) fct
# else
# define __tgml(fct) fct ## l
Index: uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/wordsize.h
===================================================================
--- uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/wordsize.h (revision 25552)
+++ uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/wordsize.h (working copy)
@@ -7,13 +7,13 @@
# define __WORDSIZE 32
#endif
-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __LONG_DOUBLE_MATH_OPTIONAL
+#if !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL
/* Signal the glibc ABI didn't used to have a `long double'.
The changes all the `long double' function variants to be redirects
to the double functions. */
# define __LONG_DOUBLE_MATH_OPTIONAL 1
# ifndef __LONG_DOUBLE_128__
-# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# define __NO_LONG_DOUBLE_MATH 1
# endif
#endif
Index: uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/mathdef.h
===================================================================
--- uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/mathdef.h (revision 25552)
+++ uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/mathdef.h (working copy)
@@ -65,11 +65,13 @@ typedef double double_t;
#endif /* ISO C99 */
-#ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__
+#ifndef __NO_LONG_DOUBLE_MATH
#include <bits/wordsize.h>
/* Signal that we do not really have a `long double'. The disables the
declaration of all the `long double' function variants. */
# if __WORDSIZE == 32
-# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# define __NO_LONG_DOUBLE_MATH 1
+# elif !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# define __NO_LONG_DOUBLE_MATH 1
# endif /* __WORDSIZE == 32 */
-#endif /* __UCLIBC_HAS_LONG_DOUBLE_MATH__ */
+#endif /* __NO_LONG_DOUBLE_MATH */
Index: uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/mathdef.h
===================================================================
--- uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/mathdef.h (revision 25552)
+++ uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/mathdef.h (working copy)
@@ -34,3 +34,11 @@ typedef double double_t; /* `double' exp
# define FP_ILOGBNAN (2147483647)
#endif /* ISO C99 */
+
+#ifndef __NO_LONG_DOUBLE_MATH
+/* Signal that we do not really have a `long double'. This disables the
+ declaration of all the `long double' function variants. */
+/* XXX The FPA does support this but the patterns in GCC are currently
+ turned off. */
+# define __NO_LONG_DOUBLE_MATH 1
+#endif
Index: uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/mathdef.h
===================================================================
--- uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/mathdef.h (revision 25552)
+++ uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/mathdef.h (working copy)
@@ -36,3 +36,7 @@ typedef long double double_t; /* `double
# define FP_ILOGBNAN (2147483647)
#endif /* ISO C99 */
+
+#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# define __NO_LONG_DOUBLE_MATH 1
+#endif
Index: uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/wordsize.h
===================================================================
--- uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/wordsize.h (revision 25552)
+++ uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/wordsize.h (working copy)
@@ -18,13 +18,13 @@
#define __WORDSIZE 64
-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __LONG_DOUBLE_MATH_OPTIONAL
+#if !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL
/* Signal that we didn't used to have a `long double'. The changes all
the `long double' function variants to be redirects to the double
functions. */
# define __LONG_DOUBLE_MATH_OPTIONAL 1
# ifndef __LONG_DOUBLE_128__
-# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# define __NO_LONG_DOUBLE_MATH 1
# endif
#endif
Index: uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/mathdef.h
===================================================================
--- uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/mathdef.h (revision 25552)
+++ uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/mathdef.h (working copy)
@@ -78,3 +78,7 @@ typedef double double_t;
# endif /* GNUC before 3.4 */
#endif /* COMPLEX_H */
+
+#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# define __NO_LONG_DOUBLE_MATH 1
+#endif
Index: uClibc-0.9.30.1/libc/sysdeps/linux/common/bits/mathdef.h
===================================================================
--- uClibc-0.9.30.1/libc/sysdeps/linux/common/bits/mathdef.h (revision 25552)
+++ uClibc-0.9.30.1/libc/sysdeps/linux/common/bits/mathdef.h (working copy)
@@ -35,3 +35,9 @@ typedef double double_t; /* `double' exp
# define FP_ILOGBNAN 2147483647
#endif /* ISO C99 */
+
+#ifndef __NO_LONG_DOUBLE_MATH
+/* Signal that we do not really have a `long double'. The disables the
+ declaration of all the `long double' function variants. */
+# define __NO_LONG_DOUBLE_MATH 1
+#endif
Index: uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/mathdef.h
===================================================================
--- uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/mathdef.h (revision 25552)
+++ uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/mathdef.h (working copy)
@@ -44,3 +44,7 @@ typedef long double double_t; /* `double
# define FP_ILOGBNAN (-2147483647 - 1)
#endif /* ISO C99 */
+
+#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# define __NO_LONG_DOUBLE_MATH 1
+#endif
Index: uClibc-0.9.30.1/libc/sysdeps/linux/nios2/bits/mathdef.h
===================================================================
--- uClibc-0.9.30.1/libc/sysdeps/linux/nios2/bits/mathdef.h (revision 25552)
+++ uClibc-0.9.30.1/libc/sysdeps/linux/nios2/bits/mathdef.h (working copy)
@@ -34,3 +34,11 @@ typedef double double_t; /* `double' exp
# define FP_ILOGBNAN (2147483647)
#endif /* ISO C99 */
+
+#ifndef __NO_LONG_DOUBLE_MATH
+/* Signal that we do not really have a `long double'. This disables the
+ declaration of all the `long double' function variants. */
+/* XXX The FPA does support this but the patterns in GCC are currently
+ turned off. */
+# define __NO_LONG_DOUBLE_MATH 1
+#endif
Index: uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/mathdef.h
===================================================================
--- uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/mathdef.h (revision 25552)
+++ uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/mathdef.h (working copy)
@@ -46,3 +46,7 @@ typedef long double double_t; /* `double
# define FP_ILOGBNAN (-2147483647 - 1)
#endif /* ISO C99 */
+
+#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# define __NO_LONG_DOUBLE_MATH 1
+#endif
Index: uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/mathdef.h
===================================================================
--- uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/mathdef.h (revision 25552)
+++ uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/mathdef.h (working copy)
@@ -36,8 +36,8 @@ typedef double double_t; /* `double' exp
#endif /* ISO C99 */
-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
+#ifndef __NO_LONG_DOUBLE_MATH
/* Signal that we do not really have a `long double'. The disables the
declaration of all the `long double' function variants. */
-# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# define __NO_LONG_DOUBLE_MATH 1
#endif
Index: uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/mathdef.h
===================================================================
--- uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/mathdef.h (revision 25552)
+++ uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/mathdef.h (working copy)
@@ -35,3 +35,7 @@ typedef double double_t; /* `double' exp
# define FP_ILOGBNAN 2147483647
#endif /* ISO C99 */
+
+#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# define __NO_LONG_DOUBLE_MATH 1
+#endif
Index: uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/mathdef.h
===================================================================
--- uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/mathdef.h (revision 25552)
+++ uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/mathdef.h (working copy)
@@ -39,8 +39,10 @@ typedef double double_t; /* `double' exp
#endif /* ISO C99 */
-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && _MIPS_SIM == _ABIO32
+#if ! defined __NO_LONG_DOUBLE_MATH && _MIPS_SIM == _ABIO32
/* Signal that we do not really have a `long double'. This disables the
declaration of all the `long double' function variants. */
-# error defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ and _MIPS_SIM == _ABIO32
+# define __NO_LONG_DOUBLE_MATH 1
+#elif !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# define __NO_LONG_DOUBLE_MATH 1
#endif
Index: uClibc-0.9.30.1/libc/sysdeps/linux/nios/bits/mathdef.h
===================================================================
--- uClibc-0.9.30.1/libc/sysdeps/linux/nios/bits/mathdef.h (revision 25552)
+++ uClibc-0.9.30.1/libc/sysdeps/linux/nios/bits/mathdef.h (working copy)
@@ -34,3 +34,11 @@ typedef double double_t; /* `double' exp
# define FP_ILOGBNAN (2147483647)
#endif /* ISO C99 */
+
+#ifndef __NO_LONG_DOUBLE_MATH
+/* Signal that we do not really have a `long double'. This disables the
+ declaration of all the `long double' function variants. */
+/* XXX The FPA does support this but the patterns in GCC are currently
+ turned off. */
+# define __NO_LONG_DOUBLE_MATH 1
+#endif
Index: uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/wordsize.h
===================================================================
--- uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/wordsize.h (revision 25552)
+++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/wordsize.h (working copy)
@@ -6,7 +6,7 @@
# define __WORDSIZE 32
#endif
-#if 0 /* uClibc: done in mathdefs.h: defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __LONG_DOUBLE_MATH_OPTIONAL*/
+#if 0 /* uClibc: done in mathdefs.h: !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL*/
# if __WORDSIZE == 32
/* Signal that in 32bit ABI we didn't used to have a `long double'.
@@ -14,7 +14,7 @@
to the double functions. */
# define __LONG_DOUBLE_MATH_OPTIONAL 1
# ifndef __LONG_DOUBLE_128__
-# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# define __NO_LONG_DOUBLE_MATH 1
# endif
# endif
#endif
Index: uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathdef.h
===================================================================
--- uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathdef.h (revision 25552)
+++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathdef.h (working copy)
@@ -57,13 +57,15 @@ typedef double double_t;
#endif /* ISO C99 */
-#ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__
+#ifndef __NO_LONG_DOUBLE_MATH
# if __WORDSIZE == 32
/* Signal that in 32bit ABI we do not really have a `long double'.
The disables the declaration of all the `long double' function
variants. */
-# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# define __NO_LONG_DOUBLE_MATH 1
+# elif !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# define __NO_LONG_DOUBLE_MATH 1
# endif
#endif
Index: uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathinline.h
===================================================================
--- uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathinline.h (revision 25552)
+++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathinline.h (working copy)
@@ -37,7 +37,7 @@
# if __WORDSIZE == 32
-# ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# ifndef __NO_LONG_DOUBLE_MATH
# define __unordered_cmp(x, y) \
(__extension__ \
@@ -157,7 +157,7 @@ __NTH (__signbit (double __x))
return __u.__i[0] < 0;
}
-# ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# ifndef __NO_LONG_DOUBLE_MATH
__MATH_INLINE int
__NTH (__signbitl (long double __x))
{
@@ -219,7 +219,7 @@ __NTH (sqrtl (long double __x))
_Qp_sqrt (&__r, &__x);
return __r;
}
-# elif defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# elif !defined __NO_LONG_DOUBLE_MATH
__MATH_INLINE long double
sqrtl (long double __x) __THROW
{
@@ -257,7 +257,7 @@ __ieee754_sqrtl (long double __x)
_Qp_sqrt(&__r, &__x);
return __r;
}
-# elif defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
+# elif !defined __NO_LONG_DOUBLE_MATH
__MATH_INLINE long double
__ieee754_sqrtl (long double __x)
{
Index: uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/mathdef.h
===================================================================
--- uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/mathdef.h (revision 25552)
+++ uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/mathdef.h (working copy)
@@ -61,3 +61,9 @@ typedef double double_t;
# define FP_ILOGBNAN 0x7fffffff
#endif /* ISO C99 */
+
+#ifndef __NO_LONG_DOUBLE_MATH
+/* Signal that we do not really have a `long double'. The disables the
+ declaration of all the `long double' function variants. */
+# define __NO_LONG_DOUBLE_MATH 1
+#endif

@ -1,43 +0,0 @@
Index: uClibc-0.9.30.1/extra/scripts/unifdef.c
===================================================================
--- uClibc-0.9.30.1.orig/extra/scripts/unifdef.c 2008-04-28 01:10:00.000000000 +0200
+++ uClibc-0.9.30.1/extra/scripts/unifdef.c 2009-08-25 15:20:08.000000000 +0200
@@ -206,7 +206,11 @@
static void error(const char *);
static int findsym(const char *);
static void flushline(bool);
-static Linetype getline(void);
+#ifndef __CYGWIN__
+static Linetype __getline(void);
+#else
+static Linetype get_line(void);
+#endif
static Linetype ifeval(const char **);
static void ignoreoff(void);
static void ignoreon(void);
@@ -512,7 +516,11 @@
for (;;) {
linenum++;
- lineval = getline();
+#ifndef __CYGWIN__
+ lineval = __getline();
+#else
+ lineval = get_line();
+#endif
trans_table[ifstate[depth]][lineval]();
debug("process %s -> %s depth %d",
linetype_name[lineval],
@@ -526,7 +534,11 @@
* help from skipcomment().
*/
static Linetype
-getline(void)
+#ifndef __CYGWIN__
+__getline(void)
+#else
+get_line(void)
+#endif
{
const char *cp;
int cursym;

@ -1,23 +0,0 @@
--- a/include/math.h
+++ b/include/math.h
@@ -179,7 +179,7 @@
/* 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:
@@ -299,6 +299,11 @@
#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

@ -1,371 +0,0 @@
Index: uClibc-0.9.30.1/ldso/ldso/arm/dl-sysdep.h
===================================================================
--- uClibc-0.9.30.1/ldso/ldso/arm/dl-sysdep.h (revision 25503)
+++ uClibc-0.9.30.1/ldso/ldso/arm/dl-sysdep.h (working copy)
@@ -15,7 +15,7 @@
GOT_BASE[1] = (unsigned long) MODULE; \
}
-static __inline__ unsigned long arm_modulus(unsigned long m, unsigned long p)
+static __always_inline unsigned long arm_modulus(unsigned long m, unsigned long p)
{
unsigned long i,t,inc;
i=p; t=0;
@@ -72,7 +72,7 @@ unsigned long _dl_linux_resolver(struct
first element of the GOT. We used to use the PIC register to do this
without a constant pool reference, but GCC 4.2 will use a pseudo-register
for the PIC base, so it may not be in r10. */
-static __inline__ Elf32_Addr __attribute__ ((unused))
+static __always_inline Elf32_Addr __attribute__ ((unused))
elf_machine_dynamic (void)
{
Elf32_Addr dynamic;
@@ -104,7 +104,7 @@ elf_machine_dynamic (void)
}
/* Return the run-time load address of the shared object. */
-static __inline__ Elf32_Addr __attribute__ ((unused))
+static __always_inline Elf32_Addr __attribute__ ((unused))
elf_machine_load_address (void)
{
extern void __dl_start __asm__ ("_dl_start");
@@ -128,7 +128,7 @@ elf_machine_load_address (void)
return pcrel_addr - got_addr;
}
-static __inline__ void
+static __always_inline void
elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
Elf32_Word relative_count)
{
Index: uClibc-0.9.30.1/ldso/ldso/powerpc/dl-sysdep.h
===================================================================
--- uClibc-0.9.30.1/ldso/ldso/powerpc/dl-sysdep.h (revision 25503)
+++ uClibc-0.9.30.1/ldso/ldso/powerpc/dl-sysdep.h (working copy)
@@ -90,7 +90,7 @@ void _dl_init_got(unsigned long *lpnt,st
#define ELF_MACHINE_PLTREL_OVERLAP 1
/* Return the value of the GOT pointer. */
-static __inline__ Elf32_Addr * __attribute__ ((const))
+static __always_inline Elf32_Addr * __attribute__ ((const))
ppc_got (void)
{
Elf32_Addr *got;
@@ -109,14 +109,14 @@ ppc_got (void)
/* Return the link-time address of _DYNAMIC, stored as
the first value in the GOT. */
-static __inline__ Elf32_Addr __attribute__ ((const))
+static __always_inline Elf32_Addr __attribute__ ((const))
elf_machine_dynamic (void)
{
return *ppc_got();
}
/* Return the run-time load address of the shared object. */
-static __inline__ Elf32_Addr __attribute__ ((const))
+static __always_inline Elf32_Addr __attribute__ ((const))
elf_machine_load_address (void)
{
Elf32_Addr *branchaddr;
@@ -164,7 +164,7 @@ elf_machine_load_address (void)
return runtime_dynamic - elf_machine_dynamic ();
}
-static __inline__ void
+static __always_inline void
elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
Elf32_Word relative_count)
{
Index: uClibc-0.9.30.1/ldso/ldso/sh64/dl-sysdep.h
===================================================================
--- uClibc-0.9.30.1/ldso/ldso/sh64/dl-sysdep.h (revision 25503)
+++ uClibc-0.9.30.1/ldso/ldso/sh64/dl-sysdep.h (working copy)
@@ -42,7 +42,7 @@ extern unsigned long _dl_linux_resolver(
/* Return the link-time address of _DYNAMIC. Conveniently, this is the
first element of the GOT. This must be inlined in a function which
uses global data. */
-static __inline__ Elf32_Addr elf_machine_dynamic(void)
+static __always_inline Elf32_Addr elf_machine_dynamic(void)
{
register Elf32_Addr *got;
@@ -70,7 +70,7 @@ static __inline__ Elf32_Addr elf_machine
}
/* Return the run-time load address of the shared object. */
-static __inline__ Elf32_Addr elf_machine_load_address(void)
+static __always_inline Elf32_Addr elf_machine_load_address(void)
{
Elf32_Addr addr;
@@ -123,7 +123,7 @@ static __inline__ Elf32_Addr elf_machine
} \
}
-static __inline__ void
+static __always_inline void
elf_machine_relative(Elf32_Addr load_off, const Elf32_Addr rel_addr,
Elf32_Word relative_count)
{
Index: uClibc-0.9.30.1/ldso/ldso/m68k/dl-sysdep.h
===================================================================
--- uClibc-0.9.30.1/ldso/ldso/m68k/dl-sysdep.h (revision 25503)
+++ uClibc-0.9.30.1/ldso/ldso/m68k/dl-sysdep.h (working copy)
@@ -41,7 +41,7 @@ extern unsigned long _dl_linux_resolver
/* Return the link-time address of _DYNAMIC. Conveniently, this is the
first element of the GOT. This must be inlined in a function which
uses global data. */
-static __inline__ Elf32_Addr
+static __always_inline Elf32_Addr
elf_machine_dynamic (void)
{
register Elf32_Addr *got __asm__ ("%a5");
@@ -50,7 +50,7 @@ elf_machine_dynamic (void)
/* Return the run-time load address of the shared object. */
-static __inline__ Elf32_Addr
+static __always_inline Elf32_Addr
elf_machine_load_address (void)
{
Elf32_Addr addr;
@@ -60,7 +60,7 @@ elf_machine_load_address (void)
return addr;
}
-static __inline__ void
+static __always_inline void
elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
Elf32_Word relative_count)
{
Index: uClibc-0.9.30.1/ldso/ldso/i386/dl-sysdep.h
===================================================================
--- uClibc-0.9.30.1/ldso/ldso/i386/dl-sysdep.h (revision 25503)
+++ uClibc-0.9.30.1/ldso/ldso/i386/dl-sysdep.h (working copy)
@@ -42,8 +42,8 @@ extern unsigned long _dl_linux_resolver(
/* Return the link-time address of _DYNAMIC. Conveniently, this is the
first element of the GOT. This must be inlined in a function which
uses global data. */
-static __inline__ Elf32_Addr elf_machine_dynamic (void) attribute_unused;
-static __inline__ Elf32_Addr
+static __always_inline Elf32_Addr elf_machine_dynamic (void) attribute_unused;
+static __always_inline Elf32_Addr
elf_machine_dynamic (void)
{
register Elf32_Addr *got __asm__ ("%ebx");
@@ -52,8 +52,8 @@ elf_machine_dynamic (void)
/* Return the run-time load address of the shared object. */
-static __inline__ Elf32_Addr elf_machine_load_address (void) attribute_unused;
-static __inline__ Elf32_Addr
+static __always_inline Elf32_Addr elf_machine_load_address (void) attribute_unused;
+static __always_inline Elf32_Addr
elf_machine_load_address (void)
{
/* It doesn't matter what variable this is, the reference never makes
@@ -66,7 +66,7 @@ elf_machine_load_address (void)
return addr;
}
-static __inline__ void
+static __always_inline void
elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
Elf32_Word relative_count)
{
Index: uClibc-0.9.30.1/ldso/ldso/cris/dl-sysdep.h
===================================================================
--- uClibc-0.9.30.1/ldso/ldso/cris/dl-sysdep.h (revision 25503)
+++ uClibc-0.9.30.1/ldso/ldso/cris/dl-sysdep.h (working copy)
@@ -39,7 +39,7 @@ extern unsigned long _dl_linux_resolver(
|| ((type) == R_CRIS_GLOB_DAT)) * ELF_RTYPE_CLASS_PLT) \
| (((type) == R_CRIS_COPY) * ELF_RTYPE_CLASS_COPY))
-static __inline__ Elf32_Addr
+static __always_inline Elf32_Addr
elf_machine_dynamic(void)
{
/* Don't just set this to an asm variable "r0" since that's not logical
@@ -61,7 +61,7 @@ elf_machine_dynamic(void)
there's some other symbol we could use, that we don't *have* to force a
GOT entry for. */
-static __inline__ Elf32_Addr
+static __always_inline Elf32_Addr
elf_machine_load_address(void)
{
Elf32_Addr gotaddr_diff;
@@ -95,7 +95,7 @@ elf_machine_load_address(void)
return gotaddr_diff;
}
-static __inline__ void
+static __always_inline void
elf_machine_relative(Elf32_Addr load_off, const Elf32_Addr rel_addr,
Elf32_Word relative_count)
{
Index: uClibc-0.9.30.1/ldso/ldso/xtensa/dl-sysdep.h
===================================================================
--- uClibc-0.9.30.1/ldso/ldso/xtensa/dl-sysdep.h (revision 25503)
+++ uClibc-0.9.30.1/ldso/ldso/xtensa/dl-sysdep.h (working copy)
@@ -87,7 +87,7 @@ extern unsigned long _dl_linux_resolver
(((type) == R_XTENSA_JMP_SLOT) * ELF_RTYPE_CLASS_PLT)
/* Return the link-time address of _DYNAMIC. */
-static __inline__ Elf32_Addr
+static __always_inline Elf32_Addr
elf_machine_dynamic (void)
{
/* This function is only used while bootstrapping the runtime linker.
@@ -97,7 +97,7 @@ elf_machine_dynamic (void)
}
/* Return the run-time load address of the shared object. */
-static __inline__ Elf32_Addr
+static __always_inline Elf32_Addr
elf_machine_load_address (void)
{
Elf32_Addr addr, tmp;
@@ -118,7 +118,7 @@ elf_machine_load_address (void)
return addr - 3;
}
-static __inline__ void
+static __always_inline void
elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
Elf32_Word relative_count)
{
Index: uClibc-0.9.30.1/ldso/ldso/sparc/dl-sysdep.h
===================================================================
--- uClibc-0.9.30.1/ldso/ldso/sparc/dl-sysdep.h (revision 25503)
+++ uClibc-0.9.30.1/ldso/ldso/sparc/dl-sysdep.h (working copy)
@@ -49,7 +49,7 @@ unsigned long _dl_linux_resolver(struct
#ifndef COMPILE_ASM
/* Cheap modulo implementation, taken from arm/ld_sysdep.h. */
-static __inline__ unsigned long
+static __always_inline unsigned long
sparc_mod(unsigned long m, unsigned long p)
{
unsigned long i, t, inc;
@@ -127,7 +127,7 @@ do { register Elf32_Addr pc __asm__("
/* Return the link-time address of _DYNAMIC. Conveniently, this is the
first element of the GOT. This must be inlined in a function which
uses global data. */
-static __inline__ Elf32_Addr
+static __always_inline Elf32_Addr
elf_machine_dynamic (void)
{
register Elf32_Addr *got __asm__ ("%l7");
@@ -138,7 +138,7 @@ elf_machine_dynamic (void)
}
/* Return the run-time load address of the shared object. */
-static __inline__ Elf32_Addr
+static __always_inline Elf32_Addr
elf_machine_load_address (void)
{
register Elf32_Addr *pc __asm__ ("%o7"), *got __asm__ ("%l7");
@@ -157,7 +157,7 @@ elf_machine_load_address (void)
return (Elf32_Addr) got - *got + (pc[2] - pc[3]) * 4 - 4;
}
-static __inline__ void
+static __always_inline void
elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
Elf32_Word relative_count)
{
Index: uClibc-0.9.30.1/ldso/ldso/mips/dl-sysdep.h
===================================================================
--- uClibc-0.9.30.1/ldso/ldso/mips/dl-sysdep.h (revision 25503)
+++ uClibc-0.9.30.1/ldso/ldso/mips/dl-sysdep.h (working copy)
@@ -163,7 +163,7 @@ void _dl_perform_mips_global_got_relocat
#define OFFSET_GP_GOT 0x7ff0
-static __inline__ ElfW(Addr) *
+static __always_inline ElfW(Addr) *
elf_mips_got_from_gpreg (ElfW(Addr) gpreg)
{
/* FIXME: the offset of gp from GOT may be system-dependent. */
@@ -173,7 +173,7 @@ elf_mips_got_from_gpreg (ElfW(Addr) gpre
/* Return the link-time address of _DYNAMIC. Conveniently, this is the
first element of the GOT. This must be inlined in a function which
uses global data. We assume its $gp points to the primary GOT. */
-static __inline__ ElfW(Addr)
+static __always_inline ElfW(Addr)
elf_machine_dynamic (void)
{
register ElfW(Addr) gp __asm__ ("$28");
@@ -192,7 +192,7 @@ elf_machine_dynamic (void)
#endif
/* Return the run-time load address of the shared object. */
-static __inline__ ElfW(Addr)
+static __always_inline ElfW(Addr)
elf_machine_load_address (void)
{
ElfW(Addr) addr;
@@ -208,7 +208,7 @@ elf_machine_load_address (void)
return addr;
}
-static __inline__ void
+static __always_inline void
elf_machine_relative (ElfW(Addr) load_off, const ElfW(Addr) rel_addr,
ElfW(Word) relative_count)
{
Index: uClibc-0.9.30.1/ldso/ldso/sh/dl-sysdep.h
===================================================================
--- uClibc-0.9.30.1/ldso/ldso/sh/dl-sysdep.h (revision 25503)
+++ uClibc-0.9.30.1/ldso/ldso/sh/dl-sysdep.h (working copy)
@@ -25,7 +25,7 @@
struct elf_resolve;
extern unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry);
-static __inline__ unsigned int
+static __always_inline unsigned int
_dl_urem(unsigned int n, unsigned int base)
{
int res;
@@ -100,7 +100,7 @@ _dl_urem(unsigned int n, unsigned int ba
/* Return the link-time address of _DYNAMIC. Conveniently, this is the
first element of the GOT. This must be inlined in a function which
uses global data. */
-static __inline__ Elf32_Addr __attribute__ ((unused))
+static __always_inline Elf32_Addr __attribute__ ((unused))
elf_machine_dynamic (void)
{
register Elf32_Addr *got;
@@ -109,7 +109,7 @@ elf_machine_dynamic (void)
}
/* Return the run-time load address of the shared object. */
-static __inline__ Elf32_Addr __attribute__ ((unused))
+static __always_inline Elf32_Addr __attribute__ ((unused))
elf_machine_load_address (void)
{
Elf32_Addr addr;
@@ -151,7 +151,7 @@ elf_machine_load_address (void)
} \
}
-static __inline__ void
+static __always_inline void
elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
Elf32_Word relative_count)
{
Index: uClibc-0.9.30.1/ldso/ldso/bfin/dl-sysdep.h
===================================================================
--- uClibc-0.9.30.1/ldso/ldso/bfin/dl-sysdep.h (revision 25503)
+++ uClibc-0.9.30.1/ldso/ldso/bfin/dl-sysdep.h (working copy)
@@ -213,7 +213,7 @@ while (0)
#endif
#include <elf.h>
-static __inline__ void
+static __always_inline void
elf_machine_relative (DL_LOADADDR_TYPE load_off, const Elf32_Addr rel_addr,
Elf32_Word relative_count)
{

@ -1,38 +0,0 @@
It will match kernel's sigset_t starting from 0.9.31.
Please try attached patch.
--
vda
--- uClibc.0/libc/sysdeps/linux/common/ppoll.c
+++ uClibc.1/libc/sysdeps/linux/common/ppoll.c
@@ -17,6 +17,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#include <signal.h>
#include <sys/syscall.h>
#include <sys/poll.h>
@@ -26,9 +27,9 @@
# define __NR___libc_ppoll __NR_ppoll
static __always_inline
-_syscall4(int, __libc_ppoll, struct pollfd *, fds,
+_syscall5(int, __libc_ppoll, struct pollfd *, fds,
nfds_t, nfds, const struct timespec *, timeout,
- const __sigset_t *, sigmask)
+ const __sigset_t *, sigmask, size_t, sigsetsize)
int
ppoll (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
@@ -43,7 +44,7 @@
timeout = &tval;
}
- return __libc_ppoll(fds, nfds, timeout, sigmask);
+ return __libc_ppoll(fds, nfds, timeout, sigmask, _NSIG / 8);
}
libc_hidden_def(ppoll)

@ -1,916 +0,0 @@
The gcc-4.4 documentation still suggests that the compiler will automatically
do format checking for the standard format function prototypes, but it is now
also barking warnings suggesting that we add them for this lot too. So added.
Signed-off-by: Ron Lee <ron@debian.org>
---
include/stdio.h | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
Index: uClibc-0.9.30.1/include/stdio.h
===================================================================
--- uClibc-0.9.30.1.orig/include/stdio.h 2008-09-30 14:17:04.000000000 +0200
+++ uClibc-0.9.30.1/include/stdio.h 2009-07-06 21:16:14.000000000 +0200
@@ -325,7 +325,8 @@
extern int printf (__const char *__restrict __format, ...);
/* Write formatted output to S. */
extern int sprintf (char *__restrict __s,
- __const char *__restrict __format, ...) __THROW;
+ __const char *__restrict __format, ...)
+ __THROW __attribute__ ((__format__ (__printf__, 2, 3)));
/* Write formatted output to S from argument list ARG.
@@ -340,7 +341,8 @@
extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
/* Write formatted output to S from argument list ARG. */
extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
- __gnuc_va_list __arg) __THROW;
+ __gnuc_va_list __arg)
+ __THROW __attribute__ ((__format__ (__printf__, 2, 0)));
__END_NAMESPACE_STD
#if defined __USE_BSD || defined __USE_ISOC99 || defined __USE_UNIX98
@@ -391,15 +393,18 @@
This function is a possible cancellation point and therefore not
marked with __THROW. */
extern int fscanf (FILE *__restrict __stream,
- __const char *__restrict __format, ...) __wur;
+ __const char *__restrict __format, ...)
+ __attribute__ ((__format__ (__scanf__, 2, 3))) __wur;
/* Read formatted input from stdin.
This function is a possible cancellation point and therefore not
marked with __THROW. */
-extern int scanf (__const char *__restrict __format, ...) __wur;
+extern int scanf (__const char *__restrict __format, ...)
+ __attribute__ ((__format__ (__scanf__, 1, 2))) __wur;
/* Read formatted input from S. */
extern int sscanf (__const char *__restrict __s,
- __const char *__restrict __format, ...) __THROW;
+ __const char *__restrict __format, ...)
+ __THROW __attribute__ ((__format__ (__scanf__, 2, 3)));
__END_NAMESPACE_STD
#ifdef __USE_ISOC99
gcc-4.4 now barks about this, so appease it.
Signed-off-by: Ron Lee <ron@debian.org>
---
ldso/ldso/arm/dl-sysdep.h | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/ldso/ldso/arm/dl-sysdep.h b/ldso/ldso/arm/dl-sysdep.h
index 5191dd7..75c58b0 100644
--- a/ldso/ldso/arm/dl-sysdep.h
+++ b/ldso/ldso/arm/dl-sysdep.h
@@ -98,11 +98,12 @@ elf_machine_dynamic (void)
return dynamic;
}
+extern void __dl_start __asm__ ("_dl_start");
+
/* Return the run-time load address of the shared object. */
static __always_inline Elf32_Addr __attribute__ ((unused))
elf_machine_load_address (void)
{
- extern void __dl_start __asm__ ("_dl_start");
Elf32_Addr got_addr = (Elf32_Addr) &__dl_start;
Elf32_Addr pcrel_addr;
#if defined __OPTIMIZE__ && !defined __thumb__
usage() is also made static in answer to warnings about no prototype.
In __pthread_manager_event() we also have to drop the return statement,
else gcc will in turn complain about a non-returning function having one.
Signed-off-by: Ron Lee <ron@debian.org>
---
libpthread/linuxthreads.old/manager.c | 4 ++--
utils/ldconfig.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/libpthread/linuxthreads.old/manager.c b/libpthread/linuxthreads.old/manager.c
index 19be92f..0617d7d 100644
--- a/libpthread/linuxthreads.old/manager.c
+++ b/libpthread/linuxthreads.old/manager.c
@@ -248,7 +248,7 @@ int attribute_noreturn __pthread_manager(void *arg)
}
}
-int __pthread_manager_event(void *arg)
+int attribute_noreturn __pthread_manager_event(void *arg)
{
/* If we have special thread_self processing, initialize it. */
#ifdef INIT_THREAD_SELF
@@ -260,7 +260,7 @@ int __pthread_manager_event(void *arg)
/* Free it immediately. */
__pthread_unlock (THREAD_GETMEM((&__pthread_manager_thread), p_lock));
- return __pthread_manager(arg);
+ __pthread_manager(arg);
}
/* Process creation */
diff --git a/utils/ldconfig.c b/utils/ldconfig.c
index c52b170..f6aec5c 100644
--- a/utils/ldconfig.c
+++ b/utils/ldconfig.c
@@ -114,7 +114,7 @@ static void warnx(const char *s, ...)
fprintf(stderr, "\n");
}
-static void err(int errnum, const char *s, ...)
+static void attribute_noreturn err(int errnum, const char *s, ...)
{
va_list p;
@@ -783,7 +783,7 @@ void cache_print(void)
}
#endif
-void usage(void)
+static void attribute_noreturn usage(void)
{
fprintf(stderr,
#ifdef __LDSO_CACHE_SUPPORT__
--
This keeps gcc-4.4 from nagging that they have no prototypes.
Signed-off-by: Ron Lee <ron@debian.org>
---
utils/ldconfig.c | 16 ++++++++--------
utils/ldd.c | 12 ++++++------
utils/readsoname2.c | 2 +-
3 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/utils/ldconfig.c b/utils/ldconfig.c
index f6aec5c..3bd7cee 100644
--- a/utils/ldconfig.c
+++ b/utils/ldconfig.c
@@ -173,8 +173,8 @@ static char *xstrdup(const char *str)
#define readsonameXX readsoname64
#define __ELF_NATIVE_CLASS 64
#include "readsoname2.c"
-char *readsoname(char *name, FILE *infile, int expected_type,
- int *type, int elfclass)
+static char *readsoname(char *name, FILE *infile, int expected_type,
+ int *type, int elfclass)
{
char *res;
@@ -206,8 +206,8 @@ char *readsoname(char *name, FILE *infile, int expected_type,
* If the expected, actual/deduced types missmatch we display a warning
* and use the actual/deduced type.
*/
-char *is_shlib(const char *dir, const char *name, int *type,
- int *islink, int expected_type)
+static char *is_shlib(const char *dir, const char *name, int *type,
+ int *islink, int expected_type)
{
char *good = NULL;
char *cp, *cp2;
@@ -323,7 +323,7 @@ char *is_shlib(const char *dir, const char *name, int *type,
}
/* update the symlink to new library */
-void link_shlib(const char *dir, const char *file, const char *so)
+static void link_shlib(const char *dir, const char *file, const char *so)
{
int change = 1;
char libname[BUFFER_SIZE];
@@ -380,7 +380,7 @@ void link_shlib(const char *dir, const char *file, const char *so)
}
/* figure out which library is greater */
-int libcmp(char *p1, char *p2)
+static int libcmp(char *p1, char *p2)
{
while (*p1) {
if (isdigit(*p1) && isdigit(*p2)) {
@@ -412,7 +412,7 @@ struct lib {
};
/* update all shared library links in a directory */
-void scan_dir(const char *rawname)
+static void scan_dir(const char *rawname)
{
DIR *dir;
const char *name;
@@ -554,7 +554,7 @@ void cache_write(void)
}
#else
/* return the list of system-specific directories */
-char *get_extpath(void)
+static char *get_extpath(void)
{
char *res = NULL, *cp;
FILE *file;
diff --git a/utils/ldd.c b/utils/ldd.c
index 1f1dc25..02b37f1 100644
--- a/utils/ldd.c
+++ b/utils/ldd.c
@@ -214,7 +214,7 @@ static char *elf_find_rpath(ElfW(Ehdr) *ehdr, ElfW(Dyn) *dynamic)
return NULL;
}
-int check_elf_header(ElfW(Ehdr) *const ehdr)
+static int check_elf_header(ElfW(Ehdr) *const ehdr)
{
if (!ehdr || *(uint32_t*)ehdr != ELFMAG_U32
|| ehdr->e_ident[EI_CLASS] != ELFCLASSM
@@ -249,7 +249,7 @@ int check_elf_header(ElfW(Ehdr) *const ehdr)
static caddr_t cache_addr = NULL;
static size_t cache_size = 0;
-int map_cache(void)
+static int map_cache(void)
{
int fd;
struct stat st;
@@ -306,7 +306,7 @@ fail:
return -1;
}
-int unmap_cache(void)
+static int unmap_cache(void)
{
if (cache_addr == NULL || cache_addr == (caddr_t) - 1)
return -1;
@@ -372,8 +372,8 @@ static void search_for_named_library(char *name, char *result,
*result = '\0';
}
-void locate_library_file(ElfW(Ehdr) *ehdr, ElfW(Dyn) *dynamic, int is_suid,
- struct library *lib)
+static void locate_library_file(ElfW(Ehdr) *ehdr, ElfW(Dyn) *dynamic,
+ int is_suid, struct library *lib)
{
char *buf;
char *path;
@@ -608,7 +608,7 @@ static struct library *find_elf_interpreter(ElfW(Ehdr) *ehdr)
/*
#warning "There may be two warnings here about vfork() clobbering, ignore them"
*/
-int find_dependancies(char *filename)
+static int find_dependancies(char *filename)
{
int is_suid = 0;
FILE *thefile;
diff --git a/utils/readsoname2.c b/utils/readsoname2.c
index a74b46a..5cda331 100644
--- a/utils/readsoname2.c
+++ b/utils/readsoname2.c
@@ -1,4 +1,4 @@
-char *readsonameXX(char *name, FILE *infile, int expected_type, int *type)
+static char *readsonameXX(char *name, FILE *infile, int expected_type, int *type)
{
ElfW(Ehdr) *epnt;
ElfW(Phdr) *ppnt;
--
This cuts down on a lot of noise from gcc-4.4
Signed-off-by: Ron Lee <ron@debian.org>
---
libc/misc/elf/dl-support.c | 5 ++---
libc/sysdeps/linux/arm/aeabi_assert.c | 5 ++---
libc/sysdeps/linux/arm/aeabi_atexit.c | 4 ++--
libc/sysdeps/linux/arm/aeabi_errno_addr.c | 4 ++--
libc/sysdeps/linux/arm/aeabi_localeconv.c | 4 ++--
libc/sysdeps/linux/arm/aeabi_memclr.c | 4 ++--
libc/sysdeps/linux/arm/aeabi_memcpy.c | 4 ++--
libc/sysdeps/linux/arm/aeabi_memmove.c | 4 ++--
libc/sysdeps/linux/arm/aeabi_memset.c | 4 ++--
libc/sysdeps/linux/arm/aeabi_unwind_cpp_pr1.c | 15 ++++++---------
libc/sysdeps/linux/arm/find_exidx.c | 4 ++--
.../linuxthreads.old/sysdeps/arm/pt-machine.h | 4 ++--
utils/chroot_realpath.c | 3 +++
13 files changed, 31 insertions(+), 33 deletions(-)
diff --git a/libc/misc/elf/dl-support.c b/libc/misc/elf/dl-support.c
index 3c1d853..4dd155e 100644
--- a/libc/misc/elf/dl-support.c
+++ b/libc/misc/elf/dl-support.c
@@ -17,9 +17,8 @@
ElfW(Phdr) *_dl_phdr;
size_t _dl_phnum;
-void
-internal_function
-_dl_aux_init (ElfW(auxv_t) *av)
+void internal_function _dl_aux_init (ElfW(auxv_t) *av);
+void internal_function _dl_aux_init (ElfW(auxv_t) *av)
{
/* Get the program headers base address from the aux vect */
_dl_phdr = (ElfW(Phdr) *) av[AT_PHDR].a_un.a_val;
diff --git a/libc/sysdeps/linux/arm/aeabi_assert.c b/libc/sysdeps/linux/arm/aeabi_assert.c
index 53943ac..348ca9b 100644
--- a/libc/sysdeps/linux/arm/aeabi_assert.c
+++ b/libc/sysdeps/linux/arm/aeabi_assert.c
@@ -22,9 +22,8 @@
/* libc_hidden_proto(__assert) */
-void
-__aeabi_assert (const char *assertion, const char *file,
- unsigned int line)
+void __aeabi_assert(const char *assertion, const char *file, unsigned int line);
+void __aeabi_assert(const char *assertion, const char *file, unsigned int line)
{
__assert (assertion, file, line, NULL);
}
diff --git a/libc/sysdeps/linux/arm/aeabi_atexit.c b/libc/sysdeps/linux/arm/aeabi_atexit.c
index 4a7a6f1..ebb233b 100644
--- a/libc/sysdeps/linux/arm/aeabi_atexit.c
+++ b/libc/sysdeps/linux/arm/aeabi_atexit.c
@@ -24,8 +24,8 @@ libc_hidden_proto(__cxa_atexit)
/* Register a function to be called by exit or when a shared library
is unloaded. This routine is like __cxa_atexit, but uses the
calling sequence required by the ARM EABI. */
-int
-__aeabi_atexit (void *arg, void (*func) (void *), void *d)
+int __aeabi_atexit (void *arg, void (*func) (void *), void *d);
+int __aeabi_atexit (void *arg, void (*func) (void *), void *d)
{
return __cxa_atexit (func, arg, d);
}
diff --git a/libc/sysdeps/linux/arm/aeabi_errno_addr.c b/libc/sysdeps/linux/arm/aeabi_errno_addr.c
index 09bdc1e..5e262a6 100644
--- a/libc/sysdeps/linux/arm/aeabi_errno_addr.c
+++ b/libc/sysdeps/linux/arm/aeabi_errno_addr.c
@@ -18,8 +18,8 @@
#include <errno.h>
-volatile int *
-__aeabi_errno_addr (void)
+volatile int * __aeabi_errno_addr (void);
+volatile int * __aeabi_errno_addr (void)
{
return &errno;
}
diff --git a/libc/sysdeps/linux/arm/aeabi_localeconv.c b/libc/sysdeps/linux/arm/aeabi_localeconv.c
index 6fa29bb..4c34f57 100644
--- a/libc/sysdeps/linux/arm/aeabi_localeconv.c
+++ b/libc/sysdeps/linux/arm/aeabi_localeconv.c
@@ -20,8 +20,8 @@
/* libc_hidden_proto(localeconv) */
-struct lconv *
-__aeabi_localeconv (void)
+struct lconv * __aeabi_localeconv (void);
+struct lconv * __aeabi_localeconv (void)
{
return localeconv ();
}
diff --git a/libc/sysdeps/linux/arm/aeabi_memclr.c b/libc/sysdeps/linux/arm/aeabi_memclr.c
index c0f9021..9125bac 100644
--- a/libc/sysdeps/linux/arm/aeabi_memclr.c
+++ b/libc/sysdeps/linux/arm/aeabi_memclr.c
@@ -22,8 +22,8 @@
/* Clear memory. Can't alias to bzero because it's not defined in the
same translation unit. */
-void
-__aeabi_memclr (void *dest, size_t n)
+void __aeabi_memclr (void *dest, size_t n);
+void __aeabi_memclr (void *dest, size_t n)
{
memset (dest, 0, n);
}
diff --git a/libc/sysdeps/linux/arm/aeabi_memcpy.c b/libc/sysdeps/linux/arm/aeabi_memcpy.c
index 83eac0b..604c139 100644
--- a/libc/sysdeps/linux/arm/aeabi_memcpy.c
+++ b/libc/sysdeps/linux/arm/aeabi_memcpy.c
@@ -23,8 +23,8 @@
/* Copy memory like memcpy, but no return value required. Can't alias
to memcpy because it's not defined in the same translation
unit. */
-void
-__aeabi_memcpy (void *dest, const void *src, size_t n)
+void __aeabi_memcpy (void *dest, const void *src, size_t n);
+void __aeabi_memcpy (void *dest, const void *src, size_t n)
{
memcpy (dest, src, n);
}
diff --git a/libc/sysdeps/linux/arm/aeabi_memmove.c b/libc/sysdeps/linux/arm/aeabi_memmove.c
index 164d72b..7ecfbb7 100644
--- a/libc/sysdeps/linux/arm/aeabi_memmove.c
+++ b/libc/sysdeps/linux/arm/aeabi_memmove.c
@@ -23,8 +23,8 @@
/* Copy memory like memmove, but no return value required. Can't
alias to memmove because it's not defined in the same translation
unit. */
-void
-__aeabi_memmove (void *dest, const void *src, size_t n)
+void __aeabi_memmove (void *dest, const void *src, size_t n);
+void __aeabi_memmove (void *dest, const void *src, size_t n)
{
memmove (dest, src, n);
}
diff --git a/libc/sysdeps/linux/arm/aeabi_memset.c b/libc/sysdeps/linux/arm/aeabi_memset.c
index f1c366f..a37e21f 100644
--- a/libc/sysdeps/linux/arm/aeabi_memset.c
+++ b/libc/sysdeps/linux/arm/aeabi_memset.c
@@ -22,8 +22,8 @@
/* Set memory like memset, but different argument order and no return
value required. */
-void
-__aeabi_memset (void *dest, size_t n, int c)
+void __aeabi_memset (void *dest, size_t n, int c);
+void __aeabi_memset (void *dest, size_t n, int c)
{
memset (dest, c, n);
}
diff --git a/libc/sysdeps/linux/arm/aeabi_unwind_cpp_pr1.c b/libc/sysdeps/linux/arm/aeabi_unwind_cpp_pr1.c
index e657d38..4544dc7 100644
--- a/libc/sysdeps/linux/arm/aeabi_unwind_cpp_pr1.c
+++ b/libc/sysdeps/linux/arm/aeabi_unwind_cpp_pr1.c
@@ -24,20 +24,17 @@
#include <stdlib.h>
-attribute_hidden
-void
-__aeabi_unwind_cpp_pr0 (void)
+attribute_hidden void __aeabi_unwind_cpp_pr0 (void);
+attribute_hidden void __aeabi_unwind_cpp_pr0 (void)
{
}
-attribute_hidden
-void
-__aeabi_unwind_cpp_pr1 (void)
+attribute_hidden void __aeabi_unwind_cpp_pr1 (void);
+attribute_hidden void __aeabi_unwind_cpp_pr1 (void)
{
}
-attribute_hidden
-void
-__aeabi_unwind_cpp_pr2 (void)
+attribute_hidden void __aeabi_unwind_cpp_pr2 (void);
+attribute_hidden void __aeabi_unwind_cpp_pr2 (void)
{
}
diff --git a/libc/sysdeps/linux/arm/find_exidx.c b/libc/sysdeps/linux/arm/find_exidx.c
index 9e4f401..a16534b 100644
--- a/libc/sysdeps/linux/arm/find_exidx.c
+++ b/libc/sysdeps/linux/arm/find_exidx.c
@@ -65,8 +65,8 @@ find_exidx_callback (struct dl_phdr_info * info, size_t size, void * ptr)
/* Find the exception index table containing PC. */
-_Unwind_Ptr
-__gnu_Unwind_Find_exidx (_Unwind_Ptr pc, int * pcount)
+_Unwind_Ptr __gnu_Unwind_Find_exidx (_Unwind_Ptr pc, int * pcount);
+_Unwind_Ptr __gnu_Unwind_Find_exidx (_Unwind_Ptr pc, int * pcount)
{
struct unw_eh_callback_data data;
diff --git a/libpthread/linuxthreads.old/sysdeps/arm/pt-machine.h b/libpthread/linuxthreads.old/sysdeps/arm/pt-machine.h
index 14eb6f6..583eb68 100644
--- a/libpthread/linuxthreads.old/sysdeps/arm/pt-machine.h
+++ b/libpthread/linuxthreads.old/sysdeps/arm/pt-machine.h
@@ -33,8 +33,8 @@
time; let's hope nobody tries to use one. */
/* Spinlock implementation; required. */
-PT_EI long int
-testandset (int *spinlock)
+PT_EI long int testandset (int *spinlock);
+PT_EI long int testandset (int *spinlock)
{
register unsigned int ret;
diff --git a/utils/chroot_realpath.c b/utils/chroot_realpath.c
index 82ccbf6..d912a06 100644
--- a/utils/chroot_realpath.c
+++ b/utils/chroot_realpath.c
@@ -25,6 +25,9 @@
#define MAX_READLINKS 32
char *chroot_realpath(const char *chroot, const char *path,
+ char resolved_path[]);
+
+char *chroot_realpath(const char *chroot, const char *path,
char resolved_path[])
{
char copy_path[PATH_MAX];
--
Once again all of these reduce the noise from gcc-4.4.
Replaces a few more (USE_TLS && HAVE___THREAD) with USE___THREAD while we need
to mess with them for this anyhow.
Signed-off-by: Ron Lee <ron@debian.org>
---
libc/misc/fnmatch/fnmatch.c | 2 +-
libpthread/linuxthreads.old/cancel.c | 6 +++---
libpthread/linuxthreads.old/libc_pthread_init.c | 4 ++--
libpthread/linuxthreads.old/pthread.c | 2 +-
libpthread/linuxthreads.old/ptlongjmp.c | 4 ++--
libpthread/linuxthreads.old/specific.c | 2 +-
.../linuxthreads.old_db/td_thr_tls_get_addr.c | 2 +-
7 files changed, 11 insertions(+), 11 deletions(-)
Index: uClibc-0.9.30.1/libc/misc/fnmatch/fnmatch.c
===================================================================
--- uClibc-0.9.30.1.orig/libc/misc/fnmatch/fnmatch.c 2008-06-01 22:44:48.000000000 +0200
+++ uClibc-0.9.30.1/libc/misc/fnmatch/fnmatch.c 2009-07-06 21:16:29.000000000 +0200
@@ -17,7 +17,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
-#if HAVE_CONFIG_H
+#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
Index: uClibc-0.9.30.1/libpthread/linuxthreads.old/cancel.c
===================================================================
--- uClibc-0.9.30.1.orig/libpthread/linuxthreads.old/cancel.c 2008-07-23 13:23:36.000000000 +0200
+++ uClibc-0.9.30.1/libpthread/linuxthreads.old/cancel.c 2009-07-06 21:16:29.000000000 +0200
@@ -31,7 +31,7 @@
#ifdef _STACK_GROWS_DOWN
# define FRAME_LEFT(frame, other) ((char *) frame >= (char *) other)
-#elif _STACK_GROWS_UP
+#elif defined _STACK_GROWS_UP
# define FRAME_LEFT(frame, other) ((char *) frame <= (char *) other)
#else
# error "Define either _STACK_GROWS_DOWN or _STACK_GROWS_UP"
@@ -193,10 +193,10 @@
for (c = THREAD_GETMEM(self, p_cleanup); c != NULL; c = c->__prev)
{
-#if _STACK_GROWS_DOWN
+#ifdef _STACK_GROWS_DOWN
if ((char *) c <= currentframe)
break;
-#elif _STACK_GROWS_UP
+#elif defined _STACK_GROWS_UP
if ((char *) c >= currentframe)
break;
#else
Index: uClibc-0.9.30.1/libpthread/linuxthreads.old/libc_pthread_init.c
===================================================================
--- uClibc-0.9.30.1.orig/libpthread/linuxthreads.old/libc_pthread_init.c 2008-05-20 10:47:51.000000000 +0200
+++ uClibc-0.9.30.1/libpthread/linuxthreads.old/libc_pthread_init.c 2009-07-06 21:17:10.000000000 +0200
@@ -26,7 +26,7 @@
/* Experimentally off - libc_hidden_proto(memcpy) */
-#if !(USE_TLS && HAVE___THREAD) && defined __UCLIBC_HAS_XLOCALE__
+#if ! defined USE___THREAD && defined __UCLIBC_HAS_XLOCALE__
libc_hidden_proto(uselocale)
#endif
@@ -42,7 +42,7 @@
sizeof (__libc_pthread_functions));
#endif
-#if !(USE_TLS && HAVE___THREAD) && defined __UCLIBC_HAS_XLOCALE__
+#if ! defined USE___THREAD && defined __UCLIBC_HAS_XLOCALE__
/* Initialize thread-locale current locale to point to the global one.
With __thread support, the variable's initializer takes care of this. */
uselocale (LC_GLOBAL_LOCALE);
Index: uClibc-0.9.30.1/libpthread/linuxthreads.old/pthread.c
===================================================================
--- uClibc-0.9.30.1.orig/libpthread/linuxthreads.old/pthread.c 2008-10-03 15:59:52.000000000 +0200
+++ uClibc-0.9.30.1/libpthread/linuxthreads.old/pthread.c 2009-07-06 21:17:53.000000000 +0200
@@ -321,7 +321,7 @@
struct pthread_functions __pthread_functions =
{
-#if !(USE_TLS && HAVE___THREAD)
+#ifndef USE___THREAD
.ptr_pthread_internal_tsd_set = __pthread_internal_tsd_set,
.ptr_pthread_internal_tsd_get = __pthread_internal_tsd_get,
.ptr_pthread_internal_tsd_address = __pthread_internal_tsd_address,
Index: uClibc-0.9.30.1/libpthread/linuxthreads.old/ptlongjmp.c
===================================================================
--- uClibc-0.9.30.1.orig/libpthread/linuxthreads.old/ptlongjmp.c 2006-11-09 09:11:33.000000000 +0100
+++ uClibc-0.9.30.1/libpthread/linuxthreads.old/ptlongjmp.c 2009-07-06 21:16:29.000000000 +0200
@@ -35,13 +35,13 @@
c != NULL && _JMPBUF_UNWINDS(target, c);
c = c->__prev)
{
-#if _STACK_GROWS_DOWN
+#ifdef _STACK_GROWS_DOWN
if ((char *) c <= currentframe)
{
c = NULL;
break;
}
-#elif _STACK_GROWS_UP
+#elif defined _STACK_GROWS_UP
if ((char *) c >= currentframe)
{
c = NULL;
Index: uClibc-0.9.30.1/libpthread/linuxthreads.old/specific.c
===================================================================
--- uClibc-0.9.30.1.orig/libpthread/linuxthreads.old/specific.c 2008-05-20 10:47:51.000000000 +0200
+++ uClibc-0.9.30.1/libpthread/linuxthreads.old/specific.c 2009-07-06 21:18:28.000000000 +0200
@@ -167,7 +167,7 @@
__pthread_unlock(THREAD_GETMEM(self, p_lock));
}
-#if !(USE_TLS && HAVE___THREAD)
+#ifndef USE___THREAD
/* Thread-specific data for libc. */
Index: uClibc-0.9.30.1/libpthread/linuxthreads.old_db/td_thr_tls_get_addr.c
===================================================================
--- uClibc-0.9.30.1.orig/libpthread/linuxthreads.old_db/td_thr_tls_get_addr.c 2005-11-22 22:32:06.000000000 +0100
+++ uClibc-0.9.30.1/libpthread/linuxthreads.old_db/td_thr_tls_get_addr.c 2009-07-06 21:16:29.000000000 +0200
@@ -31,7 +31,7 @@
size_t offset __attribute__ ((unused)),
void **address __attribute__ ((unused)))
{
-#if USE_TLS
+#ifdef USE_TLS
size_t modid;
union dtv pdtv, *dtvp;
elf.h needs __BYTE_ORDER, and s_scalbn.c needs {LONG,INT}_MAX.
shm.c complains about no prototypes for shm_{open,unlink} without its header.
Signed-off-by: Ron Lee <ron@debian.org>
---
include/elf.h | 1 +
libm/s_scalbn.c | 1 +
librt/shm.c | 1 +
3 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/include/elf.h b/include/elf.h
index 0129f1e..16a6972 100644
--- a/include/elf.h
+++ b/include/elf.h
@@ -28,6 +28,7 @@ extern "C" {
/* Standard ELF types. */
#include <stdint.h>
+#include <endian.h>
/* Type for a 16-bit quantity. */
typedef uint16_t Elf32_Half;
diff --git a/libm/s_scalbn.c b/libm/s_scalbn.c
index c534467..47983b0 100644
--- a/libm/s_scalbn.c
+++ b/libm/s_scalbn.c
@@ -18,6 +18,7 @@
#include "math.h"
#include "math_private.h"
+#include <limits.h>
static const double
two54 = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */
--
gcc-4.4 barks about that.
Signed-off-by: Ron Lee <ron@debian.org>
---
utils/ldconfig.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/utils/ldconfig.c b/utils/ldconfig.c
index 3bd7cee..505316b 100644
--- a/utils/ldconfig.c
+++ b/utils/ldconfig.c
@@ -127,14 +127,14 @@ static void attribute_noreturn err(int errnum, const char *s, ...)
static void vperror_msg(const char *s, va_list p)
{
- int err = errno;
+ int e = errno;
if (s == 0)
s = "";
verror_msg(s, p);
if (*s)
s = ": ";
- fprintf(stderr, "%s%s\n", s, strerror(err));
+ fprintf(stderr, "%s%s\n", s, strerror(e));
}
static void warn(const char *s, ...)
--
Signed-off-by: Ron Lee <ron@debian.org>
---
utils/ldconfig.c | 10 +++++-----
utils/ldd.c | 4 ++--
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/utils/ldconfig.c b/utils/ldconfig.c
index 505316b..139b5f9 100644
--- a/utils/ldconfig.c
+++ b/utils/ldconfig.c
@@ -558,18 +558,18 @@ static char *get_extpath(void)
{
char *res = NULL, *cp;
FILE *file;
- struct stat stat;
+ struct stat st;
char realconffile[BUFFER_SIZE];
if (!chroot_realpath(chroot_dir, conffile, realconffile))
return NULL;
if ((file = fopen(realconffile, "r")) != NULL) {
- fstat(fileno(file), &stat);
- res = xmalloc(stat.st_size + 1);
- fread(res, 1, stat.st_size, file);
+ fstat(fileno(file), &st);
+ res = xmalloc(st.st_size + 1);
+ fread(res, 1, st.st_size, file);
fclose(file);
- res[stat.st_size] = '\0';
+ res[st.st_size] = '\0';
/* convert comments fo spaces */
for (cp = res; *cp; /*nada */ ) {
diff --git a/utils/ldd.c b/utils/ldd.c
index 02b37f1..e7a94cb 100644
--- a/utils/ldd.c
+++ b/utils/ldd.c
@@ -683,8 +683,8 @@ foo:
&& ehdr->e_ident[EI_VERSION] == EV_CURRENT
&& MATCH_MACHINE(ehdr->e_machine))
{
- struct stat statbuf;
- if (stat(interp->path, &statbuf) == 0 && S_ISREG(statbuf.st_mode)) {
+ struct stat st;
+ if (stat(interp->path, &st) == 0 && S_ISREG(st.st_mode)) {
pid_t pid;
int status;
static const char *const environment[] = {
--
Signed-off-by: Ron Lee <ron@debian.org>
---
libpthread/linuxthreads.old/manager.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libpthread/linuxthreads.old/manager.c b/libpthread/linuxthreads.old/manager.c
index 0617d7d..88c9253 100644
--- a/libpthread/linuxthreads.old/manager.c
+++ b/libpthread/linuxthreads.old/manager.c
@@ -578,9 +578,9 @@ static int pthread_handle_create(pthread_t *thread, const pthread_attr_t *attr,
/* See whether the TD_CREATE event bit is set in any of the
masks. */
int idx = __td_eventword (TD_CREATE);
- uint32_t mask = __td_eventmask (TD_CREATE);
+ uint32_t m = __td_eventmask (TD_CREATE);
- if ((mask & (__pthread_threads_events.event_bits[idx]
+ if ((m & (__pthread_threads_events.event_bits[idx]
| event_maskp->event_bits[idx])) != 0)
{
/* Lock the mutex the child will use now so that it will stop. */
--
Signed-off-by: Ron Lee <ron@debian.org>
---
utils/chroot_realpath.c | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/utils/chroot_realpath.c b/utils/chroot_realpath.c
index d912a06..0be57bf 100644
--- a/utils/chroot_realpath.c
+++ b/utils/chroot_realpath.c
@@ -24,10 +24,10 @@
#define MAX_READLINKS 32
-char *chroot_realpath(const char *chroot, const char *path,
+char *chroot_realpath(const char *root, const char *path,
char resolved_path[]);
-char *chroot_realpath(const char *chroot, const char *path,
+char *chroot_realpath(const char *root, const char *path,
char resolved_path[])
{
char copy_path[PATH_MAX];
@@ -41,13 +41,13 @@ char *chroot_realpath(const char *chroot, const char *path,
int chroot_len;
/* Trivial case. */
- if (chroot == NULL || *chroot == '\0' ||
- (*chroot == '/' && chroot[1] == '\0')) {
+ if (root == NULL || *root == '\0' ||
+ (*root == '/' && root[1] == '\0')) {
strcpy(resolved_path, path);
return resolved_path;
}
- chroot_len = strlen(chroot);
+ chroot_len = strlen(root);
if (chroot_len + strlen(path) >= PATH_MAX - 3) {
errno = ENAMETOOLONG;
@@ -60,7 +60,7 @@ char *chroot_realpath(const char *chroot, const char *path,
max_path = copy_path + PATH_MAX - chroot_len - 3;
/* Start with the chroot path. */
- strcpy(new_path, chroot);
+ strcpy(new_path, root);
new_path += chroot_len;
while (*new_path == '/' && new_path > got_path)
new_path--;
--
Signed-off-by: Ron Lee <ron@debian.org>
---
ldso/ldso/dl-elf.c | 4 +++-
ldso/ldso/dl-startup.c | 3 ++-
libc/inet/getaddrinfo.c | 9 ++++++---
3 files changed, 11 insertions(+), 5 deletions(-)
Index: uClibc-0.9.30.1/ldso/ldso/dl-elf.c
===================================================================
--- uClibc-0.9.30.1.orig/ldso/ldso/dl-elf.c 2008-11-18 15:01:35.000000000 +0100
+++ uClibc-0.9.30.1/ldso/ldso/dl-elf.c 2009-07-06 21:20:03.000000000 +0200
@@ -341,6 +341,7 @@
ElfW(Addr) relro_addr = 0;
size_t relro_size = 0;
struct stat st;
+ uint32_t *p32;
DL_LOADADDR_TYPE lib_loadaddr;
DL_INIT_LOADADDR_EXTRA_DECLS
Index: uClibc-0.9.30.1/ldso/ldso/dl-startup.c
===================================================================
--- uClibc-0.9.30.1.orig/ldso/ldso/dl-startup.c 2008-05-30 16:22:26.000000000 +0200
+++ uClibc-0.9.30.1/ldso/ldso/dl-startup.c 2009-07-06 21:20:03.000000000 +0200
@@ -122,6 +122,7 @@
struct elf_resolve *tpnt = &tpnt_tmp;
ElfW(auxv_t) auxvt[AT_EGID + 1];
ElfW(Dyn) *dpnt;
+ uint32_t *p32;
/* WARNING! -- we cannot make _any_ funtion calls until we have
* taken care of fixing up our own relocations. Making static
Index: uClibc-0.9.30.1/libc/inet/getaddrinfo.c
===================================================================
--- uClibc-0.9.30.1.orig/libc/inet/getaddrinfo.c 2009-02-26 13:49:14.000000000 +0100
+++ uClibc-0.9.30.1/libc/inet/getaddrinfo.c 2009-07-06 21:20:03.000000000 +0200
@@ -539,7 +539,8 @@
if (scope_delim != NULL) {
int try_numericscope = 0;
- if (IN6_IS_ADDR_LINKLOCAL(at->addr) || IN6_IS_ADDR_MC_LINKLOCAL(at->addr)) {
+ uint32_t *a32 = (uint32_t*)at->addr;
+ if (IN6_IS_ADDR_LINKLOCAL(a32) || IN6_IS_ADDR_MC_LINKLOCAL(at->addr)) {
at->scopeid = if_nametoindex(scope_delim + 1);
if (at->scopeid == 0)
try_numericscope = 1;
@@ -617,8 +618,10 @@
#endif
if (req->ai_family == 0 || req->ai_family == AF_INET) {
atr->family = AF_INET;
- if ((req->ai_flags & AI_PASSIVE) == 0)
- *(uint32_t*)atr->addr = htonl(INADDR_LOOPBACK);
+ if ((req->ai_flags & AI_PASSIVE) == 0) {
+ uint32_t *a = (uint32_t*)atr->addr;
+ *a = htonl(INADDR_LOOPBACK);
+ }
}
}
From 8ee834680d39677a60e26a0de4ece2f0c1ebbde2 Mon Sep 17 00:00:00 2001
From: Ron <ron@debian.org>
Date: Sat, 27 Jun 2009 04:44:27 +0930
Subject: [PATCH] Avoid warnings about shifting more bits than we have
The test here is a constant expression and will compile out.
For platforms that don't need the shift the code gets slightly smaller
and simpler, for those that do the result is unchanged.
Signed-off-by: Ron Lee <ron@debian.org>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
libc/sysdeps/linux/arm/posix_fadvise.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
--- a/libc/sysdeps/linux/arm/posix_fadvise.c
+++ b/libc/sysdeps/linux/arm/posix_fadvise.c
@@ -10,6 +10,9 @@
#include <sys/syscall.h>
#include <fcntl.h>
#if defined __NR_arm_fadvise64_64
+
+#define HIGH_BITS(x) (sizeof(x) > 4 ? (x) >> 32 : 0)
+
/* This is for the ARM version of fadvise64_64 which swaps the params
* * about to avoid having ABI compat issues
* */
@@ -18,8 +21,8 @@
{
INTERNAL_SYSCALL_DECL (err);
int ret = INTERNAL_SYSCALL (arm_fadvise64_64, err, 6, fd, advise,
- __LONG_LONG_PAIR ((long)(offset >> 32), (long)offset),
- __LONG_LONG_PAIR ((long)(len >> 32), (long)len));
+ __LONG_LONG_PAIR (HIGH_BITS(offset), (long)offset),
+ __LONG_LONG_PAIR (HIGH_BITS(len), (long)len));
if (INTERNAL_SYSCALL_ERROR_P (ret, err))
return INTERNAL_SYSCALL_ERRNO (ret, err);

@ -1,11 +0,0 @@
--- a/libc/stdio/_stdio.c
+++ b/libc/stdio/_stdio.c
@@ -121,7 +121,7 @@ static FILE _stdio_streams[] = {
__FLAG_NBF|__FLAG_WRITEONLY, \
2, \
NULL, \
- NULL, \
+ 0, \
0 )
};

@ -1,11 +0,0 @@
--- a/libc/string/i386/strrchr.c
+++ b/libc/string/i386/strrchr.c
@@ -45,7 +45,7 @@ char *strrchr(const char *s, int c)
"leal -1(%%esi),%0\n"
"2:\ttestb %%al,%%al\n\t"
"jne 1b"
- :"=g" (__res), "=&S" (d0), "=&a" (d1) :"0" (0),"1" (s),"2" (c));
+ :"=r" (__res), "=&S" (d0), "=&a" (d1) :"0" (0),"1" (s),"2" (c));
return __res;
}
libc_hidden_def(strrchr)

@ -1,96 +0,0 @@
--- a/libc/sysdeps/linux/i386/Makefile.arch
+++ b/libc/sysdeps/linux/i386/Makefile.arch
@@ -9,6 +9,7 @@ CSRC := brk.c sigaction.c __syscall_erro
SSRC := \
__longjmp.S vfork.S clone.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
- sync_file_range.S syscall.S mmap.S mmap64.S posix_fadvise64.S
+ sync_file_range.S syscall.S mmap.S mmap64.S posix_fadvise64.S \
+ s_copysign.S s_copysignf.S s_copysignl.S
include $(top_srcdir)libc/sysdeps/linux/Makefile.commonarch
--- /dev/null
+++ b/libc/sysdeps/linux/i386/s_copysign.S
@@ -0,0 +1,25 @@
+/*
+ * Written by J.T. Conklin <jtc@netbsd.org>.
+ * Public domain.
+ */
+
+#define _ERRNO_H 1
+#include <features.h>
+#include <bits/errno.h>
+
+.text
+.global copysign
+.type copysign,%function
+copysign:
+ movl 16(%esp),%edx
+ movl 8(%esp),%eax
+ andl $0x80000000,%edx
+ andl $0x7fffffff,%eax
+ orl %edx,%eax
+ movl %eax,8(%esp)
+ fldl 4(%esp)
+ ret
+.size copysign,.-copysign
+
+libc_hidden_def(copysign)
+
--- /dev/null
+++ b/libc/sysdeps/linux/i386/s_copysignf.S
@@ -0,0 +1,25 @@
+/*
+ * Written by J.T. Conklin <jtc@netbsd.org>.
+ * Public domain.
+ */
+
+#define _ERRNO_H 1
+#include <features.h>
+#include <bits/errno.h>
+
+.text
+.global copysignf
+.type copysignf,%function
+copysignf:
+ movl 8(%esp),%edx
+ movl 4(%esp),%eax
+ andl $0x80000000,%edx
+ andl $0x7fffffff,%eax
+ orl %edx,%eax
+ movl %eax,4(%esp)
+ flds 4(%esp)
+ ret
+.size copysignf,.-copysignf
+
+libc_hidden_def(copysignf)
+
--- /dev/null
+++ b/libc/sysdeps/linux/i386/s_copysignl.S
@@ -0,0 +1,26 @@
+/*
+ * Written by J.T. Conklin <jtc@netbsd.org>.
+ * Changes for long double by Ulrich Drepper <drepper@cygnus.com>
+ * Public domain.
+ */
+
+#define _ERRNO_H 1
+#include <features.h>
+#include <bits/errno.h>
+
+.text
+.global copysignl
+.type copysignl,%function
+copysignl:
+ movl 24(%esp),%edx
+ movl 12(%esp),%eax
+ andl $0x8000,%edx
+ andl $0x7fff,%eax
+ orl %edx,%eax
+ movl %eax,12(%esp)
+ fldt 4(%esp)
+ ret
+.size copysignl,.-copysignl
+
+libc_hidden_def(copysignl)
+

@ -1,289 +0,0 @@
--- a/include/elf.h
+++ b/include/elf.h
@@ -1547,6 +1547,7 @@ typedef struct
#define STO_MIPS_INTERNAL 0x1
#define STO_MIPS_HIDDEN 0x2
#define STO_MIPS_PROTECTED 0x3
+#define STO_MIPS_PLT 0x8
#define STO_MIPS_SC_ALIGN_UNUSED 0xff
/* MIPS specific values for `st_info'. */
@@ -1692,8 +1693,11 @@ typedef struct
#define R_MIPS_TLS_TPREL64 48 /* TP-relative offset, 64 bit */
#define R_MIPS_TLS_TPREL_HI16 49 /* TP-relative offset, high 16 bits */
#define R_MIPS_TLS_TPREL_LO16 50 /* TP-relative offset, low 16 bits */
+#define R_MIPS_GLOB_DAT 51
+#define R_MIPS_COPY 126
+#define R_MIPS_JUMP_SLOT 127
/* Keep this the last entry. */
-#define R_MIPS_NUM 51
+#define R_MIPS_NUM 128
/* Legal values for p_type field of Elf32_Phdr. */
@@ -1759,7 +1763,13 @@ typedef struct
#define DT_MIPS_COMPACT_SIZE 0x7000002f /* (O32)Size of compact rel section. */
#define DT_MIPS_GP_VALUE 0x70000030 /* GP value for aux GOTs. */
#define DT_MIPS_AUX_DYNAMIC 0x70000031 /* Address of aux .dynamic. */
-#define DT_MIPS_NUM 0x32
+/* The address of .got.plt in an executable using the new non-PIC ABI. */
+#define DT_MIPS_PLTGOT 0x70000032
+/* The base of the PLT in an executable using the new non-PIC ABI if that
+ PLT is writable. For a non-writable PLT, this is omitted or has a zero
+ value. */
+#define DT_MIPS_RWPLT 0x70000034
+#define DT_MIPS_NUM 0x35
/* Legal values for DT_MIPS_FLAGS Elf32_Dyn entry. */
--- a/ldso/ldso/dl-hash.c
+++ b/ldso/ldso/dl-hash.c
@@ -160,6 +160,11 @@ check_match (const ElfW(Sym) *sym, char
/* undefined symbol itself */
return NULL;
+#ifdef __mips__
+ if (sym->st_shndx == SHN_UNDEF && !(sym->st_other & STO_MIPS_PLT))
+ return NULL;
+#endif
+
if (sym->st_value == 0)
/* No value */
return NULL;
--- a/ldso/ldso/mips/dl-sysdep.h
+++ b/ldso/ldso/mips/dl-sysdep.h
@@ -93,10 +93,11 @@ typedef struct
#include <link.h>
-#define ARCH_NUM 3
+#define ARCH_NUM 4
#define DT_MIPS_GOTSYM_IDX (DT_NUM + OS_NUM)
#define DT_MIPS_LOCAL_GOTNO_IDX (DT_NUM + OS_NUM +1)
#define DT_MIPS_SYMTABNO_IDX (DT_NUM + OS_NUM +2)
+#define DT_MIPS_PLTGOT_IDX (DT_NUM + OS_NUM +3)
#define ARCH_DYNAMIC_INFO(dpnt, dynamic, debug_addr) \
do { \
@@ -106,6 +107,8 @@ else if (dpnt->d_tag == DT_MIPS_LOCAL_GO
dynamic[DT_MIPS_LOCAL_GOTNO_IDX] = dpnt->d_un.d_val; \
else if (dpnt->d_tag == DT_MIPS_SYMTABNO) \
dynamic[DT_MIPS_SYMTABNO_IDX] = dpnt->d_un.d_val; \
+else if (dpnt->d_tag == DT_MIPS_PLTGOT) \
+ dynamic[DT_MIPS_PLTGOT_IDX] = dpnt->d_un.d_val; \
else if (dpnt->d_tag == DT_MIPS_RLD_MAP) \
*(ElfW(Addr) *)(dpnt->d_un.d_ptr) = (ElfW(Addr)) debug_addr; \
} while (0)
@@ -114,6 +117,7 @@ else if (dpnt->d_tag == DT_MIPS_RLD_MAP)
#define INIT_GOT(GOT_BASE,MODULE) \
do { \
unsigned long idx; \
+ unsigned long *pltgot; \
\
/* Check if this is the dynamic linker itself */ \
if (MODULE->libtype == program_interpreter) \
@@ -123,6 +127,12 @@ do { \
GOT_BASE[0] = (unsigned long) _dl_runtime_resolve; \
GOT_BASE[1] = (unsigned long) MODULE; \
\
+ pltgot = MODULE->dynamic_info[DT_MIPS_PLTGOT_IDX]; \
+ if (pltgot) { \
+ pltgot[0] = (unsigned long) _dl_runtime_pltresolve; \
+ pltgot[1] = (unsigned long) MODULE; \
+ } \
+ \
/* Add load address displacement to all local GOT entries */ \
idx = 2; \
while (idx < MODULE->dynamic_info[DT_MIPS_LOCAL_GOTNO_IDX]) \
@@ -157,9 +167,9 @@ void _dl_perform_mips_global_got_relocat
#define OFFS_ALIGN 0x7ffff000
#endif /* O32 || N32 */
-#define elf_machine_type_class(type) ELF_RTYPE_CLASS_PLT
-/* MIPS does not have COPY relocs */
-#define DL_NO_COPY_RELOCS
+#define elf_machine_type_class(type) \
+ ((((type) == R_MIPS_JUMP_SLOT) * ELF_RTYPE_CLASS_PLT) \
+ | (((type) == R_MIPS_COPY) * ELF_RTYPE_CLASS_COPY))
#define OFFSET_GP_GOT 0x7ff0
--- a/ldso/ldso/mips/elfinterp.c
+++ b/ldso/ldso/mips/elfinterp.c
@@ -30,6 +30,7 @@
#include "ldso.h"
extern int _dl_runtime_resolve(void);
+extern int _dl_runtime_pltresolve(void);
#define OFFSET_GP_GOT 0x7ff0
@@ -83,6 +84,61 @@ unsigned long __dl_runtime_resolve(unsig
return new_addr;
}
+unsigned long
+__dl_runtime_pltresolve(struct elf_resolve *tpnt, int reloc_entry)
+{
+ int reloc_type;
+ ELF_RELOC *this_reloc;
+ char *strtab;
+ Elf32_Sym *symtab;
+ int symtab_index;
+ char *rel_addr;
+ char *new_addr;
+ char **got_addr;
+ unsigned long instr_addr;
+ char *symname;
+
+ rel_addr = (char *)tpnt->dynamic_info[DT_JMPREL];
+ this_reloc = (ELF_RELOC *)(intptr_t)(rel_addr + reloc_entry);
+ reloc_type = ELF32_R_TYPE(this_reloc->r_info);
+ symtab_index = ELF32_R_SYM(this_reloc->r_info);
+
+ symtab = (Elf32_Sym *)(intptr_t)tpnt->dynamic_info[DT_SYMTAB];
+ strtab = (char *)tpnt->dynamic_info[DT_STRTAB];
+ symname = strtab + symtab[symtab_index].st_name;
+
+ /* Address of the jump instruction to fix up. */
+ instr_addr = ((unsigned long)this_reloc->r_offset +
+ (unsigned long)tpnt->loadaddr);
+ got_addr = (char **)instr_addr;
+
+ /* Get the address of the GOT entry. */
+ new_addr = _dl_find_hash(symname, tpnt->symbol_scope, tpnt, ELF_RTYPE_CLASS_PLT);
+ if (unlikely(!new_addr)) {
+ _dl_dprintf(2, "%s: can't resolve symbol '%s' in lib '%s'.\n", _dl_progname, symname, tpnt->libname);
+ _dl_exit(1);
+ }
+
+#if defined (__SUPPORT_LD_DEBUG__)
+ if ((unsigned long)got_addr < 0x40000000) {
+ if (_dl_debug_bindings) {
+ _dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
+ if (_dl_debug_detail)
+ _dl_dprintf(_dl_debug_file,
+ "\n\tpatched: %x ==> %x @ %x",
+ *got_addr, new_addr, got_addr);
+ }
+ }
+ if (!_dl_debug_nofixups) {
+ *got_addr = new_addr;
+ }
+#else
+ *got_addr = new_addr;
+#endif
+
+ return (unsigned long)new_addr;
+}
+
void _dl_parse_lazy_relocation_information(struct dyn_elf *rpnt,
unsigned long rel_addr, unsigned long rel_size)
{
@@ -115,6 +171,7 @@ int _dl_parse_relocation_information(str
got = (unsigned long *) tpnt->dynamic_info[DT_PLTGOT];
for (i = 0; i < rel_size; i++, rpnt++) {
+ char *symname = NULL;
reloc_addr = (unsigned long *) (tpnt->loadaddr +
(unsigned long) rpnt->r_offset);
reloc_type = ELF_R_TYPE(rpnt->r_info);
@@ -128,6 +185,16 @@ int _dl_parse_relocation_information(str
old_val = *reloc_addr;
#endif
+ if (reloc_type == R_MIPS_JUMP_SLOT || reloc_type == R_MIPS_COPY) {
+ symname = strtab + symtab[symtab_index].st_name;
+ symbol_addr = (unsigned long)_dl_find_hash(symname,
+ tpnt->symbol_scope,
+ tpnt,
+ elf_machine_type_class(reloc_type));
+ if (unlikely(!symbol_addr && ELF32_ST_BIND(symtab[symtab_index].st_info) != STB_WEAK))
+ return 1;
+ }
+
switch (reloc_type) {
#if _MIPS_SIM == _MIPS_SIM_ABI64
case (R_MIPS_64 << 8) | R_MIPS_REL32:
@@ -148,6 +215,24 @@ int _dl_parse_relocation_information(str
*reloc_addr += (unsigned long) tpnt->loadaddr;
}
break;
+ case R_MIPS_JUMP_SLOT:
+ *reloc_addr = symbol_addr;
+ break;
+ case R_MIPS_COPY:
+ if (symbol_addr) {
+#if defined (__SUPPORT_LD_DEBUG__)
+ if (_dl_debug_move)
+ _dl_dprintf(_dl_debug_file,
+ "\n%s move %d bytes from %x to %x",
+ symname, symtab[symtab_index].st_size,
+ symbol_addr, reloc_addr);
+#endif
+
+ _dl_memcpy((char *)reloc_addr,
+ (char *)symbol_addr,
+ symtab[symtab_index].st_size);
+ }
+ break;
case R_MIPS_NONE:
break;
default:
--- a/ldso/ldso/mips/resolve.S
+++ b/ldso/ldso/mips/resolve.S
@@ -112,3 +112,54 @@ _dl_runtime_resolve:
.end _dl_runtime_resolve
.previous
+/* Assembler veneer called from the PLT header code when using the
+ non-PIC ABI.
+
+ Code in each PLT entry puts the caller's return address into t7 ($15),
+ the PLT entry index into t8 ($24), the address of _dl_runtime_pltresolve
+ into t9 ($25) and the address of .got.plt into gp ($28). __dl_runtime_pltresolve
+ needs a0 ($4) to hold the link map and a1 ($5) to hold the index into
+ .rel.plt (== PLT entry index * 4). */
+
+ .text
+ .align 2
+ .globl _dl_runtime_pltresolve
+ .type _dl_runtime_pltresolve,@function
+ .ent _dl_runtime_pltresolve
+_dl_runtime_pltresolve:
+ .frame $29, 40, $31
+ .set noreorder
+ # Save arguments and sp value in stack.
+ subu $29, 40
+ lw $10, 4($28)
+ # Modify t9 ($25) so as to point .cpload instruction.
+ addiu $25, 12
+ # Compute GP.
+ .cpload $25
+ .set reorder
+
+ /* Store function arguments from registers to stack */
+ sw $15, 36($29)
+ sw $4, 16($29)
+ sw $5, 20($29)
+ sw $6, 24($29)
+ sw $7, 28($29)
+
+ /* Setup functions args and call __dl_runtime_pltresolve. */
+ move $4, $10
+ sll $5, $24, 3
+ jal __dl_runtime_pltresolve
+
+ /* Restore function arguments from stack to registers */
+ lw $31, 36($29)
+ lw $4, 16($29)
+ lw $5, 20($29)
+ lw $6, 24($29)
+ lw $7, 28($29)
+
+ /* Do a tail call to the original function */
+ addiu $29, 40
+ move $25, $2
+ jr $25
+ .end _dl_runtime_pltresolve
+ .previous

@ -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
SSRC := \
__longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S brk.S \
--- /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);

@ -1,68 +0,0 @@
From 2b69e9906e5087a796b3a15e9aabcd102c705b19 Mon Sep 17 00:00:00 2001
From: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
Date: Wed, 16 Dec 2009 12:16:08 +0000
Subject: avr32: add varargs handling of prctl syscall
prctl is defined to use varargs in the header file, hence it needs varargs
specific handling in the source. This patch properly handles the variodic
argument before the syscall is passed to the kernel for the AVR32 architecture.
Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
---
diff --git a/libc/sysdeps/linux/avr32/Makefile.arch b/libc/sysdeps/linux/avr32/Makefile.arch
index bc5f625..98b85a7 100644
--- a/libc/sysdeps/linux/avr32/Makefile.arch
+++ b/libc/sysdeps/linux/avr32/Makefile.arch
@@ -5,7 +5,7 @@
# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
#
-CSRC := brk.c clone.c mmap.c sigaction.c
+CSRC := brk.c clone.c mmap.c prctl.c sigaction.c
SSRC := __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
sigrestorer.S syscall.S vfork.S
diff --git a/libc/sysdeps/linux/avr32/prctl.c b/libc/sysdeps/linux/avr32/prctl.c
new file mode 100644
index 0000000..4e146e3
--- a/dev/null
+++ b/libc/sysdeps/linux/avr32/prctl.c
@@ -0,0 +1,36 @@
+/*
+ * prctl syscall for AVR32 Linux.
+ *
+ * Copyright (C) 2010 Atmel Corporation
+ *
+ * This file is subject to the terms and conditions of the GNU Lesser General
+ * Public License. See the file "COPYING.LIB" in the main directory of this
+ * archive for more details.
+ */
+#include <sys/syscall.h>
+#include <sys/prctl.h>
+#include <stdarg.h>
+
+#ifdef __NR_prctl
+#define __NR___syscall_prctl __NR_prctl
+static inline _syscall5(int, __syscall_prctl, int, option, long, arg2,
+ long, arg3, long, arg4, long, arg5);
+
+int prctl(int __option, ...)
+{
+ long arg2;
+ long arg3;
+ long arg4;
+ long arg5;
+ va_list ap;
+
+ va_start(ap, __option);
+ arg2 = va_arg(ap, long);
+ arg3 = va_arg(ap, long);
+ arg4 = va_arg(ap, long);
+ arg5 = va_arg(ap, long);
+ va_end(ap);
+
+ return INLINE_SYSCALL(prctl, 5, __option, arg2, arg3, arg4, arg5);
+}
+#endif
--
cgit v0.8.2.1

File diff suppressed because it is too large Load Diff

@ -1,11 +0,0 @@
--- a/libc/inet/getaddrinfo.c
+++ b/libc/inet/getaddrinfo.c
@@ -187,6 +187,8 @@
}
for (runp = ifa; runp != NULL; runp = runp->ifa_next) {
+ if (runp->ifa_addr == NULL)
+ continue;
#if defined __UCLIBC_HAS_IPV4__
if (runp->ifa_addr->sa_family == PF_INET)
seen |= SEEN_IPV4;

@ -1,30 +0,0 @@
The kernel does not save these registers across system calls. GCC 4.4
has gotten more agressive about using them for temporary variables, so
this shows up as intermittent crashes if you use a recent compiler.
Signed-off-by: Daniel Jacobowitz <dan@codesourcery.com>
diff --git a/libc/sysdeps/linux/mips/bits/syscalls.h b/libc/sysdeps/linux/mips/bits/syscalls.h
index 3639913..28b0f91 100644
--- a/libc/sysdeps/linux/mips/bits/syscalls.h
+++ b/libc/sysdeps/linux/mips/bits/syscalls.h
@@ -261,7 +261,7 @@
})
#define __SYSCALL_CLOBBERS "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", \
- "$14", "$15", "$24", "$25", "memory"
+ "$14", "$15", "$24", "$25", "hi", "lo", "memory"
#else /* N32 || N64 */
@@ -318,7 +318,7 @@
})
#define __SYSCALL_CLOBBERS "$1", "$3", "$10", "$11", "$12", "$13", \
- "$14", "$15", "$24", "$25", "memory"
+ "$14", "$15", "$24", "$25", "hi", "lo", "memory"
#endif
--

@ -1,45 +0,0 @@
From c602079e5b7ba998d1dd6cae4a305af80e6cba52 Mon Sep 17 00:00:00 2001
From: Gabor Juhos <juhosg@openwrt.org>
Date: Tue, 23 Mar 2010 08:35:27 +0100
Subject: [PATCH] Fix use-after-free bug in __dns_lookup.
If the type of the first answer does not match with the requested type,
then the dotted name will be freed. If there are no further answers in
the DNS reply, this pointer will be used later on in the same function.
Additionally it is passed to the caller, and may cause strange behaviour.
For example, the following busybox commands are triggering a segmentation
fault with uClibc 0.9.30.x
- nslookup ipv6.google.com
- ping ipv6.google.com
- wget http//ipv6.google.com/
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
---
See https://dev.openwrt.org/ticket/6886 for a testcase
---
libc/inet/resolv.c | 4 +---
1 files changed, 1 insertions(+), 3 deletions(-)
diff --git a/libc/inet/resolv.c b/libc/inet/resolv.c
index 0a6fd7a..e76f0aa 100644
--- a/libc/inet/resolv.c
+++ b/libc/inet/resolv.c
@@ -1501,10 +1501,8 @@ int attribute_hidden __dns_lookup(const char *name,
memcpy(a, &ma, sizeof(ma));
if (a->atype != T_SIG && (NULL == a->buf || (type != T_A && type != T_AAAA)))
break;
- if (a->atype != type) {
- free(a->dotted);
+ if (a->atype != type)
continue;
- }
a->add_count = h.ancount - j - 1;
if ((a->rdlength + sizeof(struct in_addr*)) * a->add_count > a->buflen)
break;
--
1.5.3.2

@ -1,25 +0,0 @@
From a115ee502fca8b1eb8ce327d764562d3ae669954 Mon Sep 17 00:00:00 2001
From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Date: Mon, 12 Apr 2010 13:09:25 +0000
Subject: attribute_optimize: fix typo with args
curious how 308f5c6e5fd56ea3d1a5512e34388aad788f1180 ever worked.. :P
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
---
diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index 2729d30..4615a6a 100644
--- a/include/libc-symbols.h
+++ b/include/libc-symbols.h
@@ -86,9 +86,9 @@
#endif
#if defined __GNUC__ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
-# define attribute_optimize(lvl) __attribute__ ((optimize(x)))
+# define attribute_optimize(x) __attribute__ ((optimize(x)))
#else
-# define attribute_optimize(lvl)
+# define attribute_optimize(x)
#endif
#define attribute_unused __attribute__ ((unused))

@ -1,33 +0,0 @@
From afd7606ca42a2586b8823c7bd1a4a7cfd2476e3b Mon Sep 17 00:00:00 2001
From: Steven J. Magnani <steve@digidescorp.com>
Date: Wed, 09 Jun 2010 14:02:21 +0000
Subject: malloc-simple: Make calloc() return zeroed memory
The 0.9.31 release included a change to malloc-simple to request
uninitialized memory from noMMU kernels. Unfortunately, the corresponding
calloc() code assumed that memory returned by malloc() was already zeroed,
which leads to all kinds of nastiness.
Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
---
diff --git a/libc/stdlib/malloc-simple/alloc.c b/libc/stdlib/malloc-simple/alloc.c
index 51da14a..914c89d 100644
--- a/libc/stdlib/malloc-simple/alloc.c
+++ b/libc/stdlib/malloc-simple/alloc.c
@@ -60,11 +60,10 @@ void * calloc(size_t nmemb, size_t lsize)
__set_errno(ENOMEM);
return NULL;
}
- result=malloc(size);
-#if 0
- /* Standard unix mmap using /dev/zero clears memory so calloc
- * doesn't need to actually zero anything....
- */
+ result = malloc(size);
+
+#ifndef __ARCH_USE_MMU__
+ /* mmap'd with MAP_UNINITIALIZE, we have to blank memory ourselves */
if (result != NULL) {
memset(result, 0, size);
}

@ -1,86 +0,0 @@
From f6651fa449e1d4bbbb466b091f34e6752f6506f9 Mon Sep 17 00:00:00 2001
From: David A Ramos <daramos@gustav.stanford.edu>
Date: Tue, 27 Jul 2010 11:10:15 +0000
Subject: Fix ctime() standard compliance bug
fixes issue2209:
ctime() was updated in 0.9.31 to call localtime_r() instead of
localtime() to
avoid using a static buffer. Unfortunately, this change replaces the
static
buffer (which is zeroed out on initialization) with an uninitialized
local
buffer.
In the common case, this has no effect. However, with a sufficiently
large
time_t value, the value returned differs from that returned by
asctime(localtime(t)), and thus violates the ANSI/ISO standard.
An example input is (on a 64-bit machine):
time_t t = 0x7ffffffffff6c600;
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
---
diff --git a/libc/misc/time/time.c b/libc/misc/time/time.c
index dfa8c0d..0d12bf3 100644
--- a/libc/misc/time/time.c
+++ b/libc/misc/time/time.c
@@ -479,6 +479,7 @@ char *ctime(const time_t *t)
* localtime's static buffer:
*/
struct tm xtm;
+ memset(&xtm, 0, sizeof(xtm));
return asctime(localtime_r(t, &xtm));
}
diff --git a/test/time/tst-ctime.c b/test/time/tst-ctime.c
new file mode 100644
index 0000000..91d827a
--- a/dev/null
+++ b/test/time/tst-ctime.c
@@ -0,0 +1,44 @@
+/* vi: set sw=4 ts=4: */
+/* testcase for ctime(3) with large time
+ * Copyright (C) 2010 David A Ramos <daramos@gustav.stanford.edu>
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+
+#define MAX_POSITIVE(type) (~0 & ~((type) 1 << (sizeof(type)*8 - 1)))
+
+int do_test(int argc, char **argv) {
+ char *correct = 0, *s;
+ int status;
+
+ /* need a very high positive number (e.g., max - 1024) */
+ time_t test = MAX_POSITIVE(time_t) - 1024;
+
+ s = asctime(localtime(&test));
+
+ if (s) {
+ // copy static buffer to heap
+ correct = malloc(strlen(s)+1);
+ strcpy(correct, s);
+ }
+
+ s = ctime(&test);
+
+ printf("ANSI:\t%suClibc:\t%s", correct, s);
+
+ if (s != correct && strcmp(correct, s))
+ status = EXIT_FAILURE;
+ else
+ status = EXIT_SUCCESS;
+
+ if (correct)
+ free(correct);
+
+ return status;
+}
+
+#include <test-skeleton.c>

@ -1,20 +0,0 @@
From ac86be72f8b01ac3792737f4b67283541cf2c15b Mon Sep 17 00:00:00 2001
From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Date: Tue, 27 Jul 2010 15:05:59 +0000
Subject: remove trailing comma in enum
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
---
diff --git a/libc/sysdeps/linux/common/bits/confname.h b/libc/sysdeps/linux/common/bits/confname.h
index ec4b72a..97ddd47 100644
--- a/libc/sysdeps/linux/common/bits/confname.h
+++ b/libc/sysdeps/linux/common/bits/confname.h
@@ -527,7 +527,7 @@ enum
_SC_THREAD_ROBUST_PRIO_INHERIT,
#define _SC_THREAD_ROBUST_PRIO_INHERIT _SC_THREAD_ROBUST_PRIO_INHERIT
- _SC_THREAD_ROBUST_PRIO_PROTECT,
+ _SC_THREAD_ROBUST_PRIO_PROTECT
#define _SC_THREAD_ROBUST_PRIO_PROTECT _SC_THREAD_ROBUST_PRIO_PROTECT
};

@ -1,40 +0,0 @@
From c602079e5b7ba998d1dd6cae4a305af80e6cba52 Mon Sep 17 00:00:00 2001
From: Gabor Juhos <juhosg@openwrt.org>
Date: Tue, 23 Mar 2010 08:35:27 +0100
Subject: [PATCH] Fix use-after-free bug in __dns_lookup.
If the type of the first answer does not match with the requested type,
then the dotted name will be freed. If there are no further answers in
the DNS reply, this pointer will be used later on in the same function.
Additionally it is passed to the caller, and may cause strange behaviour.
For example, the following busybox commands are triggering a segmentation
fault with uClibc 0.9.30.x
- nslookup ipv6.google.com
- ping ipv6.google.com
- wget http//ipv6.google.com/
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
---
See https://dev.openwrt.org/ticket/6886 for a testcase
---
libc/inet/resolv.c | 4 +---
1 files changed, 1 insertions(+), 3 deletions(-)
--- a/libc/inet/resolv.c
+++ b/libc/inet/resolv.c
@@ -1517,10 +1517,8 @@ int attribute_hidden __dns_lookup(const
memcpy(a, &ma, sizeof(ma));
if (a->atype != T_SIG && (NULL == a->buf || (type != T_A && type != T_AAAA)))
break;
- if (a->atype != type) {
- free(a->dotted);
+ if (a->atype != type)
continue;
- }
a->add_count = h.ancount - j - 1;
if ((a->rdlength + sizeof(struct in_addr*)) * a->add_count > a->buflen)
break;

@ -1,33 +0,0 @@
From d4ede2b0a4727c1f5236dd9308f09cbf7a39761a Mon Sep 17 00:00:00 2001
From: Timo Teräs <timo.teras@iki.fi>
Date: Tue, 13 Apr 2010 06:38:59 +0000
Subject: linuxthreads.new: initialize stdio locking
uClibc requires the threading library to enable locking for
stdio, or the locking is not done at all.
Signed-off-by: Timo Teräs <timo.teras@iki.fi>
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
---
diff --git a/libpthread/linuxthreads/pthread.c b/libpthread/linuxthreads/pthread.c
index 6ae9a10..614cad1 100644
--- a/libpthread/linuxthreads/pthread.c
+++ b/libpthread/linuxthreads/pthread.c
@@ -613,6 +613,17 @@ static void pthread_initialize(void)
#ifdef USE_TLS
GL(dl_init_static_tls) = &__pthread_init_static_tls;
#endif
+
+ /* uClibc-specific stdio initialization for threads. */
+ {
+ FILE *fp;
+ _stdio_user_locking = 0; /* 2 if threading not initialized */
+ for (fp = _stdio_openlist; fp != NULL; fp = fp->__nextopen) {
+ if (fp->__user_locking != 1) {
+ fp->__user_locking = 0;
+ }
+ }
+ }
}
void __pthread_initialize(void)

@ -1,51 +0,0 @@
--- a/include/string.h
+++ b/include/string.h
@@ -357,18 +357,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.

@ -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)

@ -1,43 +0,0 @@
[PATCH] ld.so: ldd crashes when __LDSO_SEARCH_INTERP_PATH__ is not #defined
Since b65c7b2c79debcb9017e31913e01eeaa280106fb, the implicit search path
can be disabled by not #defining __LDSO_SEARCH_INTERP_PATH__. This
causes _dl_ldsopath to never be set, so it remains NULL. _dl_ldsopath is
still used when __LDSO_LDD_SUPPORT__ is #defined, to strip the path off
of the beginning of the absolute path to the ld.so interpreter in use
for printing. The _dl_strlen will crash with a NULL argument.
Rather than relying on _dl_ldsopath, this change causes ldd to compute
the interpreter's basename directly.
glibc ld.so seems to print the full path to the interpreter without
any computed basename or =>. I personally prefer glibc's behavior, but
to preserve backwards compatibility with uClibc ld.so, the existing
format with the computed basename, =>, and full path is used here. This
enables simpler (and unchanged) text processing in a pipeline.
Signed-off-by: Mark Mentovai <mark at moxienet.com>
---
ldso/ldso/ldso.c | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
--- a/ldso/ldso/ldso.c
+++ b/ldso/ldso/ldso.c
@@ -923,9 +923,15 @@ void _dl_get_ready_to_run(struct elf_res
#ifdef __LDSO_LDD_SUPPORT__
/* End of the line for ldd.... */
if (trace_loaded_objects) {
- _dl_dprintf(1, "\t%s => %s (%x)\n",
- rpnt->dyn->libname + _dl_strlen(_dl_ldsopath) + 1,
- rpnt->dyn->libname, DL_LOADADDR_BASE(rpnt->dyn->loadaddr));
+ /* glibc ld.so/ldd would just do
+ * _dl_dprintf(1, "\t%s (%x)\n", rpnt->dyn->libname,
+ * DL_LOADADDR_BASE(rpnt->dyn->loadaddr));
+ * but uClibc has always used the => format. */
+ char *ptmp = _dl_strrchr(rpnt->dyn->libname, '/');
+ if (ptmp != rpnt->dyn->libname)
+ ++ptmp;
+ _dl_dprintf(1, "\t%s => %s (%x)\n", ptmp, rpnt->dyn->libname,
+ DL_LOADADDR_BASE(rpnt->dyn->loadaddr));
_dl_exit(0);
}
#endif

@ -1,12 +0,0 @@
--- a/libc/sysdeps/linux/common/bits/mathcalls.h
+++ b/libc/sysdeps/linux/common/bits/mathcalls.h
@@ -237,8 +237,7 @@ __END_NAMESPACE_C99
/* Return nonzero if VALUE is not a number. */
-/* DELETE? __MATHDECL_PRIV adds another "__": so this is "____isnan"???! */
-/*__MATHDECL_PRIV (int,__isnan,, (_Mdouble_ __value), (__const__))*/
+__MATHDECL_PRIV (int,isnan,, (_Mdouble_ __value), (__const__));
#if defined __USE_MISC || defined __USE_XOPEN
/* Return nonzero if VALUE is not a number. */

@ -1,23 +0,0 @@
--- a/include/math.h
+++ b/include/math.h
@@ -198,7 +198,7 @@ libm_hidden_proto(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:
@@ -318,6 +318,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

@ -1,11 +0,0 @@
--- a/libc/stdio/_stdio.c
+++ b/libc/stdio/_stdio.c
@@ -119,7 +119,7 @@ static FILE _stdio_streams[] = {
__FLAG_NBF|__FLAG_WRITEONLY, \
2, \
NULL, \
- NULL, \
+ 0, \
0 )
};

@ -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);

File diff suppressed because it is too large Load Diff

@ -1,110 +0,0 @@
From 911bf867eb82e28799e81578c50d82ee166cebb5 Mon Sep 17 00:00:00 2001
From: Gabor Juhos <juhosg@openwrt.org>
Date: Tue, 6 Apr 2010 17:25:56 +0200
Subject: [PATCH] MIPS: restore INLINE_SYSCALL macro
The MIPS specific INLINE_SYSCALL macro has been renamed to
INLINE_SYSCALL_NCS with:
763bbf9e9a27426c9be8322dca5ddf2cb4dbc464
syscall: unify part 2: NCS variety
Declare common NCS (non-constant syscall) variants and convert the
existing ports over to this.
This change breaks system calls. The code generated with using of the
new macro does not obey the restartable syscall convention used by the
linux kernel. When it tries to restart the syscall the errno value is
not being replaced by the syscall number.
This causes weird behaviour of the 'ping' command in busybox for
example:
root@OpenWrt:/# ping 192.168.1.254
PING 192.168.1.254 (192.168.1.254): 56 data bytes
64 bytes from 192.168.1.254: seq=0 ttl=128 time=6.292 ms
ping: recvfrom: Function not implemented
64 bytes from 192.168.1.254: seq=1 ttl=128 time=0.719 ms
ping: recvfrom: Function not implemented
64 bytes from 192.168.1.254: seq=2 ttl=128 time=0.489 ms
ping: recvfrom: Function not implemented
64 bytes from 192.168.1.254: seq=3 ttl=128 time=0.486 ms
ping: recvfrom: Function not implemented
64 bytes from 192.168.1.254: seq=4 ttl=128 time=0.487 ms
ping: recvfrom: Function not implemented
64 bytes from 192.168.1.254: seq=5 ttl=128 time=0.939 ms
ping: recvfrom: Function not implemented
64 bytes from 192.168.1.254: seq=6 ttl=128 time=0.971 ms
ping: recvfrom: Function not implemented
64 bytes from 192.168.1.254: seq=7 ttl=128 time=0.488 ms
ping: recvfrom: Funct^C
--- 192.168.1.254 ping statistics ---
9 packets transmitted, 9 packets received, 0% packet loss
round-trip min/avg/max = 0.486/1.307/6.292 ms
root@OpenWrt:/#
Here is the relevant assembler code parts of the 'recvfrom' function:
with the current INLINE_SYSCALL_NCS:
00000000 <__GI_recvfrom>:
...
2c: 24021050 li v0,4176
30: 8fd1003c lw s1,60(s8)
34: 8fd00038 lw s0,56(s8)
38: 27bdffe0 addiu sp,sp,-32
3c: afb00010 sw s0,16(sp)
40: afb10014 sw s1,20(sp) <-- wrong
44: 0000000c syscall
48: 27bd0020 addiu sp,sp,32
...
with the old INLINE_SYSCALL:
00000000 <__libc_recvfrom>:
...
28: 8fd0003c lw s0,60(s8)
2c: 8fc20038 lw v0,56(s8)
30: 27bdffe0 addiu sp,sp,-32
34: afa20010 sw v0,16(sp)
38: afb00014 sw s0,20(sp)
3c: 24021050 li v0,4176 <-- good
40: 0000000c syscall
44: 27bd0020 addiu sp,sp,32
...
Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Cc: Mike Frysinger <vapier@gentoo.org>
---
Notes:
The ideal solution would to fix the 'internal_syscall' macros to generate
correct code for the NCS case as well. However the INLINE_SYSCALL macro
generates smaller code if the syscall number is constant, so it is
useful in such cases.
Additionally, the current INLINE_SYSCALL_NCS in the 'mips/bits/syscall.h'
is a duplicate of the one in the 'common/bits/syscalls-common.h' so it
should be removed anyway.
---
libc/sysdeps/linux/mips/bits/syscalls.h | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libc/sysdeps/linux/mips/bits/syscalls.h b/libc/sysdeps/linux/mips/bits/syscalls.h
index 28b0f91..944d038 100644
--- a/libc/sysdeps/linux/mips/bits/syscalls.h
+++ b/libc/sysdeps/linux/mips/bits/syscalls.h
@@ -19,9 +19,9 @@
/* Define a macro which expands into the inline wrapper code for a system
call. */
-#define INLINE_SYSCALL_NCS(name, nr, args...) \
+#define INLINE_SYSCALL(name, nr, args...) \
({ INTERNAL_SYSCALL_DECL(err); \
- long result_var = INTERNAL_SYSCALL_NCS (name, err, nr, args); \
+ 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)); \
--
1.5.3.2

@ -1,26 +0,0 @@
64 bit targets often don't have a separate fcntl64() system call, because they don't need one.
Signed-off-by: Rob Landley <rob at landley.net>
--- uClibc/include/fcntl.h 2010-04-02 10:34:27.000000000 -0500
+++ uClibc.bak/include/fcntl.h 2010-05-16 04:54:10.000000000 -0500
@@ -73,7 +73,7 @@
This function is a cancellation point and therefore not marked with
__THROW. */
-#ifndef __USE_FILE_OFFSET64
+#if !defined(__USE_FILE_OFFSET64) || defined(__LP64__)
extern int fcntl (int __fd, int __cmd, ...);
libc_hidden_proto(fcntl)
#else
@@ -83,7 +83,7 @@
# define fcntl fcntl64
# endif
#endif
-#ifdef __USE_LARGEFILE64
+#if defined(__USE_LARGEFILE64) && !defined(__LP64__)
extern int fcntl64 (int __fd, int __cmd, ...);
libc_hidden_proto(fcntl64)
#endif
--

@ -1,18 +0,0 @@
--- a/libpthread/linuxthreads.old/errno.c
+++ b/libpthread/linuxthreads.old/errno.c
@@ -22,6 +22,7 @@
#include "internals.h"
#include <stdio.h>
+libpthread_hidden_proto(__errno_location)
int *
__errno_location (void)
{
@@ -29,6 +30,7 @@ __errno_location (void)
return THREAD_GETMEM (self, p_errnop);
}
+libpthread_hidden_proto(__h_errno_location)
int *
__h_errno_location (void)
{
Loading…
Cancel
Save