toolchain/uClibc: add preliminary support for 0.9.31 (needs testing)

SVN-Revision: 20873
master
Nicolas Thill 15 years ago
parent 128233fba1
commit 349439d7ea
  1. 3
      toolchain/uClibc/Config.in
  2. 1
      toolchain/uClibc/Config.version
  3. 3
      toolchain/uClibc/Makefile
  4. 25
      toolchain/uClibc/config-0.9.31/arm
  5. 26
      toolchain/uClibc/config-0.9.31/arm.gemini
  6. 26
      toolchain/uClibc/config-0.9.31/arm.storm
  7. 25
      toolchain/uClibc/config-0.9.31/armeb
  8. 10
      toolchain/uClibc/config-0.9.31/avr32
  9. 190
      toolchain/uClibc/config-0.9.31/common
  10. 6
      toolchain/uClibc/config-0.9.31/cris
  11. 6
      toolchain/uClibc/config-0.9.31/debug
  12. 22
      toolchain/uClibc/config-0.9.31/i386
  13. 22
      toolchain/uClibc/config-0.9.31/i686
  14. 5
      toolchain/uClibc/config-0.9.31/m68k
  15. 17
      toolchain/uClibc/config-0.9.31/mips
  16. 17
      toolchain/uClibc/config-0.9.31/mips64
  17. 17
      toolchain/uClibc/config-0.9.31/mips64el
  18. 17
      toolchain/uClibc/config-0.9.31/mipsel
  19. 18
      toolchain/uClibc/config-0.9.31/mipsel.brcm-2.4
  20. 17
      toolchain/uClibc/config-0.9.31/mipsel.cobalt
  21. 7
      toolchain/uClibc/config-0.9.31/powerpc
  22. 35
      toolchain/uClibc/config-0.9.31/ubicom32
  23. 7
      toolchain/uClibc/config-0.9.31/x86_64
  24. 51
      toolchain/uClibc/patches-0.9.31/110-compat_macros.patch
  25. 14
      toolchain/uClibc/patches-0.9.31/120-adjtimex.patch
  26. 12
      toolchain/uClibc/patches-0.9.31/140-math_decl.patch
  27. 23
      toolchain/uClibc/patches-0.9.31/170-math_finite.patch
  28. 11
      toolchain/uClibc/patches-0.9.31/410-llvm_workaround.patch
  29. 103
      toolchain/uClibc/patches-0.9.31/450-powerpc_copysignl.patch
  30. 4340
      toolchain/uClibc/patches-0.9.31/600-ubicom32-uClibc.patch
  31. 40
      toolchain/uClibc/patches-0.9.31/902-Fix-use-after-free-bug-in-__dns_lookup.patch

@ -16,6 +16,9 @@ choice
config UCLIBC_VERSION_0_9_30_3
bool "uClibc 0.9.30.3"
config UCLIBC_VERSION_0_9_31
bool "uClibc 0.9.31"
config UCLIBC_VERSION_NPTL
bool "uClibc NPTL branch"
depends BROKEN

@ -4,5 +4,6 @@ config UCLIBC_VERSION
default "0.9.30.1" if UCLIBC_VERSION_0_9_30_1
default "0.9.30.2" if UCLIBC_VERSION_0_9_30_2
default "0.9.30.3" if UCLIBC_VERSION_0_9_30_3
default "0.9.31" if UCLIBC_VERSION_0_9_31
default "0.9.30+nptl" if UCLIBC_VERSION_NPTL
default "0.9.30.1"

@ -1,5 +1,5 @@
#
# Copyright (C) 2006-2009 OpenWrt.org
# Copyright (C) 2006-2010 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -27,6 +27,7 @@ CONFIG_DIR:=./config-$(PKG_VERSION)
PKG_MD5SUM_0.9.30.1 = 1a4b84e5536ad8170563ffa88c34679c
PKG_MD5SUM_0.9.30.2 = e759ec855500082ac3e671dd6cacfdb0
PKG_MD5SUM_0.9.30.3 = 73a4bf4a0fa508b01a7a3143574e3d21
PKG_MD5SUM_0.9.31 = 52fb8a494758630c8d3ddd7f1e0daafd
PKG_MD5SUM=$(PKG_MD5SUM_$(PKG_VERSION))
HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME)-$(PKG_VERSION)

@ -0,0 +1,25 @@
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

@ -0,0 +1,26 @@
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

@ -0,0 +1,26 @@
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

@ -0,0 +1,25 @@
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

@ -0,0 +1,10 @@
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

@ -0,0 +1,190 @@
# 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=y
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=y
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=y
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"

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

@ -0,0 +1,6 @@
DODEBUG=y
DODEBUG_PT=y
PTHREADS_DEBUG_SUPPORT=y
SUPPORT_LD_DEBUG=y
SUPPORT_LD_DEBUG_EARLY=y
UCLIBC_MALLOC_DEBUGGING=y

@ -0,0 +1,22 @@
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

@ -0,0 +1,22 @@
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

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

@ -0,0 +1,17 @@
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

@ -0,0 +1,17 @@
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

@ -0,0 +1,17 @@
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

@ -0,0 +1,17 @@
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

@ -0,0 +1,18 @@
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

@ -0,0 +1,17 @@
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

@ -0,0 +1,7 @@
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

@ -0,0 +1,35 @@
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

@ -0,0 +1,7 @@
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

@ -0,0 +1,51 @@
--- 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.

@ -0,0 +1,14 @@
--- 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)

@ -0,0 +1,12 @@
--- 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. */

@ -0,0 +1,23 @@
--- 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

@ -0,0 +1,11 @@
--- 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 )
};

@ -0,0 +1,103 @@
--- 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

@ -0,0 +1,40 @@
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;
Loading…
Cancel
Save