uClibc: remove 0.9.32, it is no longer necessary
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@31739 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
880547fc5a
commit
cfb06903fc
|
@ -7,9 +7,6 @@ choice
|
||||||
help
|
help
|
||||||
Select the version of uClibc you wish to use.
|
Select the version of uClibc you wish to use.
|
||||||
|
|
||||||
config UCLIBC_VERSION_0_9_32
|
|
||||||
bool "uClibc 0.9.32-git"
|
|
||||||
|
|
||||||
config UCLIBC_VERSION_0_9_33
|
config UCLIBC_VERSION_0_9_33
|
||||||
bool "uClibc 0.9.33"
|
bool "uClibc 0.9.33"
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
config UCLIBC_VERSION
|
config UCLIBC_VERSION
|
||||||
string
|
string
|
||||||
depends on USE_UCLIBC
|
depends on USE_UCLIBC
|
||||||
default "0.9.32" if UCLIBC_VERSION_0_9_32
|
|
||||||
default "0.9.33" if UCLIBC_VERSION_0_9_33
|
default "0.9.33" if UCLIBC_VERSION_0_9_33
|
||||||
default "0.9.33"
|
default "0.9.33"
|
||||||
|
|
||||||
|
|
|
@ -9,19 +9,9 @@ include $(INCLUDE_DIR)/target.mk
|
||||||
|
|
||||||
PKG_NAME:=uClibc
|
PKG_NAME:=uClibc
|
||||||
PKG_VERSION:=$(call qstrip,$(CONFIG_UCLIBC_VERSION))
|
PKG_VERSION:=$(call qstrip,$(CONFIG_UCLIBC_VERSION))
|
||||||
ifeq ($(PKG_VERSION),0.9.32)
|
PKG_SOURCE_URL:=http://www.uclibc.org/downloads
|
||||||
PKG_SOURCE_URL:=git://git.busybox.net/uClibc
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||||
PKG_SOURCE_PROTO:=git
|
LIBC_SO_VERSION:=$(PKG_VERSION)
|
||||||
PKG_SOURCE_VERSION:=9152c4d67c763fde5712e2d181d92c0d7e1e2ab9
|
|
||||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
|
||||||
PKG_MIRROR_MD5SUM:=723dfa4f1f766cbd675d2c9a8238abb0
|
|
||||||
LIBC_SO_VERSION:=$(PKG_VERSION).1-git
|
|
||||||
else
|
|
||||||
PKG_SOURCE_URL:=http://www.uclibc.org/downloads
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
|
||||||
LIBC_SO_VERSION:=$(PKG_VERSION)
|
|
||||||
endif
|
|
||||||
PATCH_DIR:=./patches-$(PKG_VERSION)
|
PATCH_DIR:=./patches-$(PKG_VERSION)
|
||||||
CONFIG_DIR:=./config-$(PKG_VERSION)
|
CONFIG_DIR:=./config-$(PKG_VERSION)
|
||||||
|
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
ARCH_ANY_ENDIAN=y
|
|
||||||
ARCH_LITTLE_ENDIAN=y
|
|
||||||
ARCH_WANTS_LITTLE_ENDIAN=y
|
|
||||||
# COMPILE_IN_THUMB_MODE is not set
|
|
||||||
TARGET_ARCH="arm"
|
|
||||||
TARGET_arm=y
|
|
||||||
# USE_BX is not set
|
|
|
@ -1,7 +0,0 @@
|
||||||
ARCH_ANY_ENDIAN=y
|
|
||||||
ARCH_BIG_ENDIAN=y
|
|
||||||
ARCH_WANTS_BIG_ENDIAN=y
|
|
||||||
# COMPILE_IN_THUMB_MODE is not set
|
|
||||||
TARGET_ARCH="arm"
|
|
||||||
TARGET_arm=y
|
|
||||||
# USE_BX is not set
|
|
|
@ -1,12 +0,0 @@
|
||||||
ARCH_BIG_ENDIAN=y
|
|
||||||
CONFIG_AVR32_AP7=y
|
|
||||||
FORCE_SHAREABLE_TEXT_SEGMENTS=y
|
|
||||||
LINKRELAX=y
|
|
||||||
LINUXTHREADS_OLD=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
|
|
||||||
# UCLIBC_HAS_THREADS_NATIVE is not set
|
|
||||||
UNIX98PTY_ONLY=y
|
|
|
@ -1,202 +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_PRELOAD_ENV_SUPPORT is not set
|
|
||||||
LDSO_RUNPATH=y
|
|
||||||
# LDSO_SEARCH_INTERP_PATH is not set
|
|
||||||
# LINUXTHREADS_NEW is not set
|
|
||||||
# LINUXTHREADS_OLD is not set
|
|
||||||
# UCLIBC_HAS_BACKTRACE is not set
|
|
||||||
UCLIBC_HAS_THREADS_NATIVE=y
|
|
||||||
# MALLOC is not set
|
|
||||||
MALLOC_GLIBC_COMPAT=y
|
|
||||||
# MALLOC_SIMPLE is not set
|
|
||||||
MALLOC_STANDARD=y
|
|
||||||
MULTILIB_DIR="lib"
|
|
||||||
# PTHREADS_DEBUG_SUPPORT 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_c6x is not set
|
|
||||||
# TARGET_cris is not set
|
|
||||||
# TARGET_e1 is not set
|
|
||||||
# TARGET_frv is not set
|
|
||||||
# TARGET_h8300 is not set
|
|
||||||
# TARGET_hppa is not set
|
|
||||||
# TARGET_i386 is not set
|
|
||||||
# TARGET_i960 is not set
|
|
||||||
# TARGET_ia64 is not set
|
|
||||||
# TARGET_m68k is not set
|
|
||||||
# TARGET_microblaze is not set
|
|
||||||
# TARGET_mips is not set
|
|
||||||
# TARGET_nios is not set
|
|
||||||
# TARGET_nios2 is not set
|
|
||||||
# TARGET_powerpc is not set
|
|
||||||
# TARGET_sh is not set
|
|
||||||
# TARGET_sh64 is not set
|
|
||||||
# TARGET_sparc is not set
|
|
||||||
# TARGET_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=y
|
|
||||||
# UCLIBC_HAS_ARC4RANDOM is not set
|
|
||||||
UCLIBC_HAS_BSD_ERR=y
|
|
||||||
UCLIBC_HAS_BSD_RES_CLOSE=y
|
|
||||||
# UCLIBC_HAS_COMPAT_RES_STATE is not set
|
|
||||||
UCLIBC_HAS_CRYPT=y
|
|
||||||
UCLIBC_HAS_CRYPT_IMPL=y
|
|
||||||
UCLIBC_HAS_CTYPE_CHECKED=y
|
|
||||||
# UCLIBC_HAS_CTYPE_ENFORCED is not set
|
|
||||||
UCLIBC_HAS_CTYPE_SIGNED=y
|
|
||||||
UCLIBC_HAS_CTYPE_TABLES=y
|
|
||||||
# UCLIBC_HAS_CTYPE_UNSAFE is not set
|
|
||||||
UCLIBC_HAS_EPOLL=y
|
|
||||||
UCLIBC_HAS_ERRNO_MESSAGES=y
|
|
||||||
# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
|
|
||||||
# UCLIBC_HAS_FENV is not set
|
|
||||||
UCLIBC_HAS_FLOATS=y
|
|
||||||
UCLIBC_HAS_FNMATCH=y
|
|
||||||
UCLIBC_HAS_FNMATCH_OLD=y
|
|
||||||
UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
|
|
||||||
# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
|
|
||||||
# UCLIBC_HAS_FPU is not set
|
|
||||||
UCLIBC_HAS_FTS=y
|
|
||||||
UCLIBC_HAS_FTW=y
|
|
||||||
# UCLIBC_HAS_FULL_RPC is not set
|
|
||||||
UCLIBC_HAS_GETPT=y
|
|
||||||
UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
|
|
||||||
UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
|
|
||||||
# UCLIB_HAS_GLIBC_DIGIT_GROUPING is not set
|
|
||||||
UCLIBC_HAS_GLOB=y
|
|
||||||
UCLIBC_HAS_GNU_ERROR=y
|
|
||||||
UCLIBC_HAS_GNU_GETOPT=y
|
|
||||||
UCLIBC_HAS_GNU_GETSUBOPT=y
|
|
||||||
UCLIBC_HAS_GNU_GLOB=y
|
|
||||||
UCLIBC_HAS_HEXADECIMAL_FLOATS=y
|
|
||||||
UCLIBC_HAS_IPV4=y
|
|
||||||
UCLIBC_HAS_IPV6=y
|
|
||||||
UCLIBC_HAS_LFS=y
|
|
||||||
UCLIBC_HAS_LIBNSL_STUB=y
|
|
||||||
UCLIBC_HAS_LIBRESOLV_STUB=y
|
|
||||||
UCLIBC_HAS_LIBUTIL=y
|
|
||||||
# UCLIBC_HAS_LOCALE is not set
|
|
||||||
UCLIBC_HAS_LONG_DOUBLE_MATH=y
|
|
||||||
UCLIBC_HAS_NETWORK_SUPPORT=y
|
|
||||||
UCLIBC_HAS_NFTW=y
|
|
||||||
# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set
|
|
||||||
# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
|
|
||||||
UCLIBC_HAS_PRINTF_M_SPEC=y
|
|
||||||
# UCLIBC_HAS_PROFILING is not set
|
|
||||||
UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
|
|
||||||
UCLIBC_HAS_PTY=y
|
|
||||||
UCLIBC_HAS_REALTIME=y
|
|
||||||
# UCLIBC_HAS_REENTRANT_RPC is not set
|
|
||||||
UCLIBC_HAS_REGEX=y
|
|
||||||
UCLIBC_HAS_REGEX_OLD=y
|
|
||||||
# UCLIBC_HAS_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_UTMPX is not set
|
|
||||||
UCLIBC_HAS_WCHAR=y
|
|
||||||
UCLIBC_HAS_WORDEXP=y
|
|
||||||
# UCLIBC_HAS_XATTR is not set
|
|
||||||
# UCLIBC_HAS_XLOCALE 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
|
|
||||||
# USE_OLD_VFPRINTF is not set
|
|
||||||
UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
|
|
||||||
UCLIBC_PWD_BUFFER_SIZE=256
|
|
||||||
# UCLIBC_STATIC_LDCONFIG is not set
|
|
||||||
# UCLIBC_STRICT_HEADERS is not set
|
|
||||||
UCLIBC_SUPPORT_AI_ADDRCONFIG=y
|
|
||||||
UCLIBC_SUSV3_LEGACY=y
|
|
||||||
UCLIBC_SUSV3_LEGACY_MACROS=y
|
|
||||||
UCLIBC_SUSV4_LEGACY=y
|
|
||||||
# UCLIBC_SV4_DEPRECATED is not set
|
|
||||||
UCLIBC_TZ_FILE_PATH="/etc/TZ"
|
|
||||||
# UCLIBC_FALLBACK_TO_ETC_LOCALTIME is not set
|
|
||||||
UCLIBC_USE_NETLINK=y
|
|
||||||
# UNIX98PTY_ONLY is not set
|
|
||||||
USE_BX=y
|
|
||||||
WARNINGS="-Wall"
|
|
|
@ -1,8 +0,0 @@
|
||||||
ARCH_LITTLE_ENDIAN=y
|
|
||||||
CONFIG_CRIS=y
|
|
||||||
# CONFIG_CRISV32 is not set
|
|
||||||
LINUXTHREADS_OLD=y
|
|
||||||
TARGET_ARCH="cris"
|
|
||||||
TARGET_cris=y
|
|
||||||
UCLIBC_HAS_FPU=y
|
|
||||||
# UCLIBC_HAS_THREADS_NATIVE is not set
|
|
|
@ -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,21 +0,0 @@
|
||||||
ARCH_LITTLE_ENDIAN=y
|
|
||||||
# CONFIG_386 is not set
|
|
||||||
CONFIG_486=y
|
|
||||||
# CONFIG_586 is not set
|
|
||||||
# CONFIG_586MMX is not set
|
|
||||||
# CONFIG_686 is not set
|
|
||||||
# CONFIG_CRUSOE is not set
|
|
||||||
# CONFIG_CYRIXIII is not set
|
|
||||||
# CONFIG_ELAN is not set
|
|
||||||
# CONFIG_GENERIC_386 is not set
|
|
||||||
# CONFIG_K6 is not set
|
|
||||||
# CONFIG_K7 is not set
|
|
||||||
# CONFIG_NEHEMIAH is not set
|
|
||||||
# CONFIG_PENTIUM4 is not set
|
|
||||||
# CONFIG_PENTIUMII is not set
|
|
||||||
# CONFIG_PENTIUMIII is not set
|
|
||||||
# CONFIG_WINCHIP2 is not set
|
|
||||||
# CONFIG_WINCHIPC6 is not set
|
|
||||||
TARGET_ARCH="i386"
|
|
||||||
TARGET_i386=y
|
|
||||||
UCLIBC_HAS_FPU=y
|
|
|
@ -1,21 +0,0 @@
|
||||||
ARCH_LITTLE_ENDIAN=y
|
|
||||||
# CONFIG_386 is not set
|
|
||||||
# CONFIG_486 is not set
|
|
||||||
# CONFIG_586 is not set
|
|
||||||
# CONFIG_586MMX is not set
|
|
||||||
CONFIG_686=y
|
|
||||||
# CONFIG_CRUSOE is not set
|
|
||||||
# CONFIG_CYRIXIII is not set
|
|
||||||
# CONFIG_ELAN is not set
|
|
||||||
# CONFIG_GENERIC_386 is not set
|
|
||||||
# CONFIG_K6 is not set
|
|
||||||
# CONFIG_K7 is not set
|
|
||||||
# CONFIG_NEHEMIAH is not set
|
|
||||||
# CONFIG_PENTIUM4 is not set
|
|
||||||
# CONFIG_PENTIUMII is not set
|
|
||||||
# CONFIG_PENTIUMIII is not set
|
|
||||||
# CONFIG_WINCHIP2 is not set
|
|
||||||
# CONFIG_WINCHIPC6 is not set
|
|
||||||
TARGET_ARCH="i386"
|
|
||||||
TARGET_i386=y
|
|
||||||
UCLIBC_HAS_FPU=y
|
|
|
@ -1,6 +0,0 @@
|
||||||
ARCH_BIG_ENDIAN=y
|
|
||||||
LINUXTHREADS_OLD=y
|
|
||||||
TARGET_ARCH="m68k"
|
|
||||||
TARGET_SUBARCH=""
|
|
||||||
TARGET_m68k=y
|
|
||||||
# UCLIBC_HAS_THREADS_NATIVE is not set
|
|
|
@ -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,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,6 +0,0 @@
|
||||||
ARCH_BIG_ENDIAN=y
|
|
||||||
CONFIG_CLASSIC=y
|
|
||||||
# CONFIG_E500 is not set
|
|
||||||
TARGET_ARCH="powerpc"
|
|
||||||
TARGET_SUBARCH="classic"
|
|
||||||
TARGET_powerpc=y
|
|
|
@ -1,6 +0,0 @@
|
||||||
ARCH_BIG_ENDIAN=y
|
|
||||||
# CONFIG_CLASSIC is not set
|
|
||||||
CONFIG_E500=y
|
|
||||||
TARGET_ARCH="powerpc"
|
|
||||||
TARGET_SUBARCH="classic"
|
|
||||||
TARGET_powerpc=y
|
|
|
@ -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,36 +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
|
|
||||||
LINUXTHREADS_OLD=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_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_THREADS_NATIVE is not set
|
|
||||||
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,6 +0,0 @@
|
||||||
ARCH_LITTLE_ENDIAN=y
|
|
||||||
# LINUXTHREADS_NEW is not set
|
|
||||||
TARGET_ARCH="x86_64"
|
|
||||||
TARGET_x86_64=y
|
|
||||||
UCLIBC_BSD_SPECIFIC=y
|
|
||||||
UCLIBC_HAS_FPU=y
|
|
|
@ -1,10 +0,0 @@
|
||||||
--- a/extra/Configs/Config.in
|
|
||||||
+++ b/extra/Configs/Config.in
|
|
||||||
@@ -460,7 +460,6 @@ config UCLIBC_HAS_THREADS_NATIVE
|
|
||||||
select UCLIBC_HAS_TLS
|
|
||||||
select UCLIBC_HAS_STDIO_FUTEXES
|
|
||||||
# NPTL local:
|
|
||||||
- select EXTRA_WARNINGS
|
|
||||||
# i386 has no lowlevellock support (yet) as opposed to i486 onward
|
|
||||||
depends on !CONFIG_386
|
|
||||||
help
|
|
|
@ -1,51 +0,0 @@
|
||||||
--- a/include/string.h
|
|
||||||
+++ b/include/string.h
|
|
||||||
@@ -355,18 +355,40 @@ extern char *index (__const char *__s, i
|
|
||||||
/* Find the last occurrence of C in S (same as strrchr). */
|
|
||||||
extern char *rindex (__const char *__s, int __c)
|
|
||||||
__THROW __attribute_pure__ __nonnull ((1));
|
|
||||||
-# else
|
|
||||||
-# ifdef __UCLIBC_SUSV3_LEGACY_MACROS__
|
|
||||||
+# elif defined(__UCLIBC_SUSV3_LEGACY_MACROS__) && !defined(_STRINGS_H)
|
|
||||||
/* bcopy/bzero/bcmp/index/rindex are marked LEGACY in SuSv3.
|
|
||||||
* They are replaced as proposed by SuSv3. Don't sync this part
|
|
||||||
* with glibc and keep it in sync with strings.h. */
|
|
||||||
|
|
||||||
-# define bcopy(src,dest,n) (memmove((dest), (src), (n)), (void) 0)
|
|
||||||
-# define bzero(s,n) (memset((s), '\0', (n)), (void) 0)
|
|
||||||
-# define bcmp(s1,s2,n) memcmp((s1), (s2), (size_t)(n))
|
|
||||||
-# define index(s,c) strchr((s), (c))
|
|
||||||
-# define rindex(s,c) strrchr((s), (c))
|
|
||||||
-# endif
|
|
||||||
+/* Copy N bytes of SRC to DEST (like memmove, but args reversed). */
|
|
||||||
+static __inline__ void bcopy (__const void *__src, void *__dest, size_t __n)
|
|
||||||
+{
|
|
||||||
+ memmove(__dest, __src, __n);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* Set N bytes of S to 0. */
|
|
||||||
+static __inline__ void bzero (void *__s, size_t __n)
|
|
||||||
+{
|
|
||||||
+ memset(__s, 0, __n);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* Compare N bytes of S1 and S2 (same as memcmp). */
|
|
||||||
+static __inline__ int bcmp (__const void *__s1, __const void *__s2, size_t __n)
|
|
||||||
+{
|
|
||||||
+ return memcmp(__s1, __s2, __n);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* Find the first occurrence of C in S (same as strchr). */
|
|
||||||
+static __inline__ char *index (__const char *__s, int __c)
|
|
||||||
+{
|
|
||||||
+ return strchr(__s, __c);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+/* Find the last occurrence of C in S (same as strrchr). */
|
|
||||||
+static __inline__ char *rindex (__const char *__s, int __c)
|
|
||||||
+{
|
|
||||||
+ return strrchr(__s, __c);
|
|
||||||
+}
|
|
||||||
# endif
|
|
||||||
|
|
||||||
/* Return the position of the first bit set in I, or 0 if none are set.
|
|
|
@ -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,41 +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 +++++++++---
|
|
||||||
--- a/ldso/ldso/ldso.c
|
|
||||||
+++ b/ldso/ldso/ldso.c
|
|
||||||
@@ -925,9 +925,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,10 +0,0 @@
|
||||||
--- a/libc/inet/resolv.c
|
|
||||||
+++ b/libc/inet/resolv.c
|
|
||||||
@@ -1631,6 +1631,7 @@ int attribute_hidden __read_etc_hosts_r(
|
|
||||||
* struct in[6]_addr
|
|
||||||
* char line_buffer[BUFSZ+];
|
|
||||||
*/
|
|
||||||
+ memset(buf, 0, buflen);
|
|
||||||
parser->data = buf;
|
|
||||||
parser->data_len = aliaslen;
|
|
||||||
parser->line_len = buflen - aliaslen;
|
|
|
@ -1,10 +0,0 @@
|
||||||
--- a/libc/sysdeps/linux/avr32/bits/atomic.h
|
|
||||||
+++ b/libc/sysdeps/linux/avr32/bits/atomic.h
|
|
||||||
@@ -28,6 +28,7 @@ typedef uintmax_t uatomic_max_t;
|
|
||||||
|
|
||||||
#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
|
|
||||||
({ \
|
|
||||||
+ __uint32_t __result; \
|
|
||||||
__typeof__(*(mem)) __prev; \
|
|
||||||
__asm__ __volatile__( \
|
|
||||||
"/* __arch_compare_and_exchange_val_32_acq */\n" \
|
|
|
@ -1,18 +0,0 @@
|
||||||
--- a/libc/sysdeps/linux/common/epoll.c
|
|
||||||
+++ b/libc/sysdeps/linux/common/epoll.c
|
|
||||||
@@ -67,12 +67,13 @@ extern __typeof(epoll_pwait) __libc_epol
|
|
||||||
int __libc_epoll_pwait(int epfd, struct epoll_event *events, int maxevents,
|
|
||||||
int timeout, const sigset_t *set)
|
|
||||||
{
|
|
||||||
+ int nsig = _NSIG / 8;
|
|
||||||
if (SINGLE_THREAD_P)
|
|
||||||
- return INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, _NSIG / 8);
|
|
||||||
+ return INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, nsig);
|
|
||||||
# ifdef __UCLIBC_HAS_THREADS_NATIVE__
|
|
||||||
else {
|
|
||||||
int oldtype = LIBC_CANCEL_ASYNC ();
|
|
||||||
- int result = INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, _NSIG / 8);
|
|
||||||
+ int result = INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, nsig);
|
|
||||||
LIBC_CANCEL_RESET (oldtype);
|
|
||||||
return result;
|
|
||||||
}
|
|
|
@ -1,32 +0,0 @@
|
||||||
From f87898ca4a7d4b7171779c06ff1f4848efeee431 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Khem Raj <raj.khem@gmail.com>
|
|
||||||
Date: Thu, 30 Jun 2011 07:32:11 +0000
|
|
||||||
Subject: mips/signalfd.h: SFD_NONBLOCK for mips is 0200 unlike 04000 commonly
|
|
||||||
|
|
||||||
Exposed by udev 171 which uses signalfd
|
|
||||||
|
|
||||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
||||||
---
|
|
||||||
diff --git a/include/sys/signalfd.h b/include/sys/signalfd.h
|
|
||||||
index 8cee17c..f1cb63a 100644
|
|
||||||
--- a/include/sys/signalfd.h
|
|
||||||
+++ b/include/sys/signalfd.h
|
|
||||||
@@ -64,6 +64,15 @@ enum
|
|
||||||
# define SFD_NONBLOCK SFD_NONBLOCK
|
|
||||||
};
|
|
||||||
|
|
||||||
+#elif defined __mips__
|
|
||||||
+enum
|
|
||||||
+ {
|
|
||||||
+ SFD_CLOEXEC = 02000000,
|
|
||||||
+# define SFD_CLOEXEC SFD_CLOEXEC
|
|
||||||
+ SFD_NONBLOCK = 0200
|
|
||||||
+# define SFD_NONBLOCK SFD_NONBLOCK
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
#else
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
--
|
|
||||||
cgit v0.9.0.1-2-gef13
|
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
--- a/include/math.h
|
|
||||||
+++ b/include/math.h
|
|
||||||
@@ -195,7 +195,7 @@ extern int signgam;
|
|
||||||
|
|
||||||
|
|
||||||
/* ISO C99 defines some generic macros which work on any data type. */
|
|
||||||
-#ifdef __USE_ISOC99
|
|
||||||
+#if defined(__USE_ISOC99) || defined(__USE_BSD)
|
|
||||||
|
|
||||||
/* Get the architecture specific values describing the floating-point
|
|
||||||
evaluation. The following symbols will get defined:
|
|
||||||
@@ -315,6 +315,11 @@ enum
|
|
||||||
|
|
||||||
#endif /* Use ISO C99. */
|
|
||||||
|
|
||||||
+/* BSD compat */
|
|
||||||
+#define finite(x) __finite(x)
|
|
||||||
+#define finitef(x) __finitef(x)
|
|
||||||
+#define finitel(x) __finitel(x)
|
|
||||||
+
|
|
||||||
#ifdef __USE_MISC
|
|
||||||
/* Support for various different standard error handling behaviors. */
|
|
||||||
typedef enum
|
|
|
@ -1,45 +0,0 @@
|
||||||
--- a/libpthread/nptl/cleanup_defer_compat.c
|
|
||||||
+++ b/libpthread/nptl/cleanup_defer_compat.c
|
|
||||||
@@ -22,7 +22,7 @@
|
|
||||||
|
|
||||||
void
|
|
||||||
attribute_protected
|
|
||||||
-_pthread_cleanup_push_defer (
|
|
||||||
+__pthread_cleanup_push_defer (
|
|
||||||
struct _pthread_cleanup_buffer *buffer,
|
|
||||||
void (*routine) (void *),
|
|
||||||
void *arg)
|
|
||||||
@@ -57,12 +57,12 @@ _pthread_cleanup_push_defer (
|
|
||||||
|
|
||||||
THREAD_SETMEM (self, cleanup, buffer);
|
|
||||||
}
|
|
||||||
-strong_alias (_pthread_cleanup_push_defer, __pthread_cleanup_push_defer)
|
|
||||||
+strong_alias (__pthread_cleanup_push_defer, _pthread_cleanup_push_defer)
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
attribute_protected
|
|
||||||
-_pthread_cleanup_pop_restore (
|
|
||||||
+__pthread_cleanup_pop_restore (
|
|
||||||
struct _pthread_cleanup_buffer *buffer,
|
|
||||||
int execute)
|
|
||||||
{
|
|
||||||
@@ -97,4 +97,4 @@ _pthread_cleanup_pop_restore (
|
|
||||||
if (execute)
|
|
||||||
buffer->__routine (buffer->__arg);
|
|
||||||
}
|
|
||||||
-strong_alias (_pthread_cleanup_pop_restore, __pthread_cleanup_pop_restore)
|
|
||||||
+strong_alias (__pthread_cleanup_pop_restore, _pthread_cleanup_pop_restore)
|
|
||||||
--- a/libpthread/nptl/init.c
|
|
||||||
+++ b/libpthread/nptl/init.c
|
|
||||||
@@ -112,8 +112,8 @@ static const struct pthread_functions pt
|
|
||||||
.ptr___pthread_key_create = __pthread_key_create_internal,
|
|
||||||
.ptr___pthread_getspecific = __pthread_getspecific_internal,
|
|
||||||
.ptr___pthread_setspecific = __pthread_setspecific_internal,
|
|
||||||
- .ptr__pthread_cleanup_push_defer = _pthread_cleanup_push_defer,
|
|
||||||
- .ptr__pthread_cleanup_pop_restore = _pthread_cleanup_pop_restore,
|
|
||||||
+ .ptr__pthread_cleanup_push_defer = __pthread_cleanup_push_defer,
|
|
||||||
+ .ptr__pthread_cleanup_pop_restore = __pthread_cleanup_pop_restore,
|
|
||||||
.ptr_nthreads = &__nptl_nthreads,
|
|
||||||
.ptr___pthread_unwind = &__pthread_unwind,
|
|
||||||
.ptr__nptl_deallocate_tsd = __nptl_deallocate_tsd,
|
|
|
@ -1,13 +0,0 @@
|
||||||
--- a/libpthread/nptl/init.c
|
|
||||||
+++ b/libpthread/nptl/init.c
|
|
||||||
@@ -402,6 +402,10 @@ __pthread_initialize_minimal_internal (v
|
|
||||||
Use the minimal size acceptable. */
|
|
||||||
limit.rlim_cur = PTHREAD_STACK_MIN;
|
|
||||||
|
|
||||||
+ /* Do not exceed architecture specific default */
|
|
||||||
+ if (limit.rlim_cur > ARCH_STACK_DEFAULT_SIZE)
|
|
||||||
+ limit.rlim_cur = ARCH_STACK_DEFAULT_SIZE;
|
|
||||||
+
|
|
||||||
/* Make sure it meets the minimum size that allocate_stack
|
|
||||||
(allocatestack.c) will demand, which depends on the page size. */
|
|
||||||
const uintptr_t pagesz = sysconf (_SC_PAGESIZE);
|
|
|
@ -1,10 +0,0 @@
|
||||||
--- a/Rules.mak
|
|
||||||
+++ b/Rules.mak
|
|
||||||
@@ -656,7 +656,6 @@ endif
|
|
||||||
ifeq ($(UCLIBC_HAS_THREADS),y)
|
|
||||||
ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
|
|
||||||
PTNAME := nptl
|
|
||||||
- CFLAGS += -DHAVE_FORCED_UNWIND
|
|
||||||
else
|
|
||||||
ifeq ($(LINUXTHREADS_OLD),y)
|
|
||||||
PTNAME := linuxthreads.old
|
|
|
@ -1,19 +0,0 @@
|
||||||
commit 3e3ae40f053b22fbb9bef50067d6edad4c358c4c
|
|
||||||
Author: Mirko Vogt <dev@nanl.de>
|
|
||||||
Date: Tue May 24 14:36:42 2011 +0200
|
|
||||||
|
|
||||||
use 'fputws_unlocked(S,F)' instead of 'fputws(S,F)'
|
|
||||||
|
|
||||||
this eliminates a source of reproduceable freezes
|
|
||||||
|
|
||||||
--- a/libc/stdio/_vfprintf.c
|
|
||||||
+++ b/libc/stdio/_vfprintf.c
|
|
||||||
@@ -1229,7 +1229,7 @@ static size_t _fp_out_narrow(FILE *fp, i
|
|
||||||
#define STRLEN wcslen
|
|
||||||
#define _PPFS_init _ppwfs_init
|
|
||||||
/* Pulls in fseek: */
|
|
||||||
-#define OUTPUT(F,S) fputws(S,F)
|
|
||||||
+#define OUTPUT(F,S) fputws_unlocked(S,F)
|
|
||||||
/* TODO: #define OUTPUT(F,S) _wstdio_fwrite((S),wcslen(S),(F)) */
|
|
||||||
#define _outnwcs(stream, wstring, len) _wstdio_fwrite((const wchar_t *)(wstring), len, stream)
|
|
||||||
#define FP_OUT _fp_out_wide
|
|
|
@ -1,11 +0,0 @@
|
||||||
--- a/libc/stdio/_stdio.c
|
|
||||||
+++ b/libc/stdio/_stdio.c
|
|
||||||
@@ -124,7 +124,7 @@ static FILE _stdio_streams[] = {
|
|
||||||
__FLAG_NBF|__FLAG_WRITEONLY, \
|
|
||||||
2, \
|
|
||||||
NULL, \
|
|
||||||
- NULL, \
|
|
||||||
+ 0, \
|
|
||||||
0 )
|
|
||||||
};
|
|
||||||
|
|
|
@ -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);
|
|
|
@ -1,42 +0,0 @@
|
||||||
--- a/libm/powerpc/e500/Makefile.arch
|
|
||||||
+++ b/libm/powerpc/e500/Makefile.arch
|
|
||||||
@@ -6,5 +6,7 @@
|
|
||||||
#
|
|
||||||
|
|
||||||
libm_ARCH_fpu_DIR := $(libm_SUBARCH_DIR)/fpu
|
|
||||||
+libm_ARCH_fpu_OUT := $(libm_SUBARCH_OUT)/fpu
|
|
||||||
+CFLAGS-libm/$(TARGET_ARCH)/$(TARGET_SUBARCH)/fpu/ = $(CFLAGS-libm)
|
|
||||||
-include $(libm_ARCH_fpu_DIR)/Makefile.arch
|
|
||||||
|
|
||||||
--- a/libm/powerpc/e500/fpu/fe_nomask.c
|
|
||||||
+++ b/libm/powerpc/e500/fpu/fe_nomask.c
|
|
||||||
@@ -26,7 +26,7 @@
|
|
||||||
const fenv_t *
|
|
||||||
__fe_nomask_env(void)
|
|
||||||
{
|
|
||||||
- __set_errno (ENOSYS);
|
|
||||||
+ errno = ENOSYS;
|
|
||||||
return FE_ENABLED_ENV;
|
|
||||||
}
|
|
||||||
|
|
||||||
--- a/libm/powerpc/e500/fpu/feholdexcpt.c
|
|
||||||
+++ b/libm/powerpc/e500/fpu/feholdexcpt.c
|
|
||||||
@@ -42,4 +42,3 @@ feholdexcept (fenv_t *envp)
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
-libm_hidden_def (feholdexcept)
|
|
||||||
--- a/libm/powerpc/e500/fpu/fesetround.c
|
|
||||||
+++ b/libm/powerpc/e500/fpu/fesetround.c
|
|
||||||
@@ -34,4 +34,3 @@ fesetround (int round)
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
-libm_hidden_def (fesetround)
|
|
||||||
--- a/libm/powerpc/e500/fpu/fraiseexcpt.c
|
|
||||||
+++ b/libm/powerpc/e500/fpu/fraiseexcpt.c
|
|
||||||
@@ -26,4 +26,3 @@
|
|
||||||
|
|
||||||
#include "../spe-raise.c"
|
|
||||||
|
|
||||||
-libm_hidden_def (feraiseexcept)
|
|
|
@ -1,26 +0,0 @@
|
||||||
--- a/ldso/ldso/powerpc/elfinterp.c
|
|
||||||
+++ b/ldso/ldso/powerpc/elfinterp.c
|
|
||||||
@@ -293,22 +293,17 @@ _dl_do_reloc (struct elf_resolve *tpnt,s
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
case R_PPC_REL24:
|
|
||||||
-#if 0
|
|
||||||
{
|
|
||||||
Elf32_Sword delta = finaladdr - (Elf32_Word)reloc_addr;
|
|
||||||
if (unlikely(delta<<6>>6 != delta)) {
|
|
||||||
_dl_dprintf(2, "%s: symbol '%s' R_PPC_REL24 is out of range.\n\t"
|
|
||||||
"Compile shared libraries with -fPIC!\n",
|
|
||||||
_dl_progname, symname);
|
|
||||||
- _dl_exit(1);
|
|
||||||
+ return -1;
|
|
||||||
}
|
|
||||||
*reloc_addr = (*reloc_addr & 0xfc000003) | (delta & 0x3fffffc);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
-#else
|
|
||||||
- _dl_dprintf(2,"R_PPC_REL24: Compile shared libraries with -fPIC!\n");
|
|
||||||
- return -1;
|
|
||||||
-#endif
|
|
||||||
case R_PPC_NONE:
|
|
||||||
goto out_nocode; /* No code code modified */
|
|
||||||
default:
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,32 +0,0 @@
|
||||||
--- a/ldso/include/dl-elf.h
|
|
||||||
+++ b/ldso/include/dl-elf.h
|
|
||||||
@@ -42,6 +42,10 @@ extern int _dl_linux_resolve(void);
|
|
||||||
extern int _dl_fixup(struct dyn_elf *rpnt, int flag);
|
|
||||||
extern void _dl_protect_relro (struct elf_resolve *l);
|
|
||||||
|
|
||||||
+#ifndef DL_LOADADDR_ISSET(_loadaddr)
|
|
||||||
+#define DL_LOADADDR_ISSET(_loadaddr) ((_loadaddr) != 0)
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
* Bitsize related settings for things ElfW()
|
|
||||||
* does not handle already
|
|
||||||
@@ -166,7 +170,7 @@ unsigned int __dl_parse_dynamic_info(Elf
|
|
||||||
we'd have to walk all the loadsegs to find out if it was
|
|
||||||
actually unnecessary, so skip this optimization. */
|
|
||||||
#if !defined __FDPIC__ && !defined __DSBT__
|
|
||||||
- if (load_off != 0)
|
|
||||||
+ if (DL_LOADADDR_ISSET(load_off))
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
ADJUST_DYN_INFO(DT_HASH, load_off);
|
|
||||||
--- a/ldso/ldso/ubicom32/dl-sysdep.h
|
|
||||||
+++ b/ldso/ldso/ubicom32/dl-sysdep.h
|
|
||||||
@@ -101,6 +101,7 @@ do { \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
#define DL_LOADADDR_TYPE struct elf32_fdpic_loadaddr
|
|
||||||
+#define DL_LOADADDR_ISSET(_loadaddr) ((_loadaddr).map != NULL)
|
|
||||||
|
|
||||||
#define DL_RELOC_ADDR(LOADADDR, ADDR) \
|
|
||||||
((ElfW(Addr))__reloc_pointer ((void*)(ADDR), (LOADADDR).map))
|
|
|
@ -1,139 +0,0 @@
|
||||||
Add three new blind options to set use of Thumb mode:
|
|
||||||
- COMPILE_IN_THUMB_MODE
|
|
||||||
- if set, CFLAGS will contain -mthumb
|
|
||||||
- if unset, the compiler's default is used
|
|
||||||
- HAS_THUMB
|
|
||||||
- CPUS with Thumb instruction set can select this
|
|
||||||
- use of BX depends on this
|
|
||||||
- FORCE_THUMB
|
|
||||||
- CPUs that are Thumb-only must select this
|
|
||||||
- this selects: HAS_THUMB, COMPILE_IN_THUMB_MODE and USE_BX
|
|
||||||
|
|
||||||
Also, remove leading space in Rules.mak.
|
|
||||||
|
|
||||||
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
|
|
||||||
Cc: Khem Raj <raj.khem@gmail.com>
|
|
||||||
Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
||||||
Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
|
|
||||||
---
|
|
||||||
Rules.mak | 7 ++++---
|
|
||||||
extra/Configs/Config.arm | 31 ++++++++++++++++++++++++++++---
|
|
||||||
2 files changed, 32 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
--- a/Rules.mak
|
|
||||||
+++ b/Rules.mak
|
|
||||||
@@ -351,9 +351,10 @@ ifeq ($(TARGET_ARCH),arm)
|
|
||||||
CPU_CFLAGS-$(CONFIG_ARM_SA1100)+=-mtune=strongarm1100 -march=armv4
|
|
||||||
CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=$(call check_gcc,-mtune=xscale,-mtune=strongarm110)
|
|
||||||
CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=-march=armv5te -Wa,-mcpu=xscale
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt -mabi=iwmmxt
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3 -mthumb
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1 -mthumb
|
|
||||||
+ CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt -mabi=iwmmxt
|
|
||||||
+ CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3
|
|
||||||
+ CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1
|
|
||||||
+ CPU_CFLAGS-$(COMPILE_IN_THUMB_MODE)+=-mthumb
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(TARGET_ARCH),mips)
|
|
||||||
--- a/extra/Configs/Config.arm
|
|
||||||
+++ b/extra/Configs/Config.arm
|
|
||||||
@@ -64,70 +64,95 @@ config CONFIG_ARM710
|
|
||||||
config CONFIG_ARM7TDMI
|
|
||||||
bool "Arm 7TDMI"
|
|
||||||
select ARCH_HAS_NO_MMU
|
|
||||||
+ select HAS_THUMB
|
|
||||||
|
|
||||||
config CONFIG_ARM720T
|
|
||||||
bool "Arm 720T"
|
|
||||||
select ARCH_HAS_MMU
|
|
||||||
+ select HAS_THUMB
|
|
||||||
|
|
||||||
config CONFIG_ARM920T
|
|
||||||
bool "Arm 920T"
|
|
||||||
select ARCH_HAS_MMU
|
|
||||||
+ select HAS_THUMB
|
|
||||||
|
|
||||||
config CONFIG_ARM922T
|
|
||||||
bool "Arm 922T"
|
|
||||||
select ARCH_HAS_MMU
|
|
||||||
+ select HAS_THUMB
|
|
||||||
|
|
||||||
config CONFIG_ARM926T
|
|
||||||
bool "Arm 926T"
|
|
||||||
select ARCH_HAS_MMU
|
|
||||||
+ select HAS_THUMB
|
|
||||||
|
|
||||||
config CONFIG_ARM10T
|
|
||||||
bool "Arm 10T"
|
|
||||||
select ARCH_HAS_MMU
|
|
||||||
+ select HAS_THUMB
|
|
||||||
|
|
||||||
config CONFIG_ARM1136JF_S
|
|
||||||
bool "Arm 1136JF-S"
|
|
||||||
select ARCH_HAS_MMU
|
|
||||||
+ select HAS_THUMB
|
|
||||||
|
|
||||||
config CONFIG_ARM1176JZ_S
|
|
||||||
bool "Arm 1176JZ-S"
|
|
||||||
select ARCH_HAS_MMU
|
|
||||||
+ select HAS_THUMB
|
|
||||||
|
|
||||||
config CONFIG_ARM1176JZF_S
|
|
||||||
bool "Arm 1176JZF-S"
|
|
||||||
select ARCH_HAS_MMU
|
|
||||||
+ select HAS_THUMB
|
|
||||||
|
|
||||||
config CONFIG_ARM_CORTEX_M3
|
|
||||||
bool "Arm Cortex-M3"
|
|
||||||
select ARCH_HAS_NO_MMU
|
|
||||||
- select USE_BX
|
|
||||||
+ select FORCE_THUMB
|
|
||||||
|
|
||||||
config CONFIG_ARM_CORTEX_M1
|
|
||||||
bool "Arm Cortex-M1"
|
|
||||||
select ARCH_HAS_NO_MMU
|
|
||||||
- select USE_BX
|
|
||||||
+ select FORCE_THUMB
|
|
||||||
|
|
||||||
config CONFIG_ARM_SA110
|
|
||||||
bool "Intel StrongArm SA-110"
|
|
||||||
select ARCH_HAS_MMU
|
|
||||||
+ select HAS_THUMB
|
|
||||||
|
|
||||||
config CONFIG_ARM_SA1100
|
|
||||||
bool "Intel StrongArm SA-1100"
|
|
||||||
select ARCH_HAS_MMU
|
|
||||||
+ select HAS_THUMB
|
|
||||||
|
|
||||||
config CONFIG_ARM_XSCALE
|
|
||||||
bool "Intel Xscale"
|
|
||||||
select ARCH_HAS_MMU
|
|
||||||
+ select HAS_THUMB
|
|
||||||
|
|
||||||
config CONFIG_ARM_IWMMXT
|
|
||||||
bool "Intel Xscale With WMMX PXA27x"
|
|
||||||
select ARCH_HAS_MMU
|
|
||||||
+ select HAS_THUMB
|
|
||||||
|
|
||||||
endchoice
|
|
||||||
|
|
||||||
+config HAS_THUMB
|
|
||||||
+ bool
|
|
||||||
+
|
|
||||||
+config FORCE_THUMB
|
|
||||||
+ bool
|
|
||||||
+ select HAS_THUMB
|
|
||||||
+ select COMPILE_IN_THUMB_MODE
|
|
||||||
+ select USE_BX
|
|
||||||
+
|
|
||||||
+config COMPILE_IN_THUMB_MODE
|
|
||||||
+ bool
|
|
||||||
+
|
|
||||||
config USE_BX
|
|
||||||
bool "Use BX in function return"
|
|
||||||
default y
|
|
||||||
- depends on !CONFIG_GENERIC_ARM && !CONFIG_ARM610 && !CONFIG_ARM710
|
|
||||||
+ depends on HAS_THUMB
|
|
||||||
help
|
|
||||||
Use BX instruction for THUMB aware architectures.
|
|
|
@ -1,182 +0,0 @@
|
||||||
Rely on the compiler to be correctly set up to generate
|
|
||||||
appropriate code for the target variant.
|
|
||||||
|
|
||||||
This exposes the Thumb option, as it is no longer auto-selected.
|
|
||||||
The "Use BX" no longer depends on supported CPU to be selected,
|
|
||||||
so it now defaults to 'n' as it shall work by default on CPUs
|
|
||||||
that do not have BX.
|
|
||||||
|
|
||||||
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
|
|
||||||
Cc: Khem Raj <raj.khem@gmail.com>
|
|
||||||
Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
||||||
Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
|
|
||||||
---
|
|
||||||
Rules.mak | 19 -------
|
|
||||||
extra/Configs/Config.arm | 125 ++--------------------------------------------
|
|
||||||
2 files changed, 5 insertions(+), 139 deletions(-)
|
|
||||||
|
|
||||||
--- a/Rules.mak
|
|
||||||
+++ b/Rules.mak
|
|
||||||
@@ -335,25 +335,6 @@ endif
|
|
||||||
ifeq ($(TARGET_ARCH),arm)
|
|
||||||
CPU_CFLAGS-$(ARCH_LITTLE_ENDIAN)+=-mlittle-endian
|
|
||||||
CPU_CFLAGS-$(ARCH_BIG_ENDIAN)+=-mbig-endian
|
|
||||||
- CPU_CFLAGS-$(CONFIG_GENERIC_ARM)+=
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM610)+=-mtune=arm610 -march=armv3
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM710)+=-mtune=arm710 -march=armv3
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM7TDMI)+=-mtune=arm7tdmi -march=armv4t
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM720T)+=-mtune=arm7tdmi -march=armv4t
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM920T)+=-mtune=arm9tdmi -march=armv4t
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM922T)+=-mtune=arm9tdmi -march=armv4t
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM926T)+=-mtune=arm9e -march=armv5te
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM10T)+=-mtune=arm10tdmi -march=armv5t
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM1136JF_S)+=-mtune=arm1136jf-s -march=armv6
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM1176JZ_S)+=-mtune=arm1176jz-s -march=armv6
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM1176JZF_S)+=-mtune=arm1176jzf-s -march=armv6
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM_SA110)+=-mtune=strongarm110 -march=armv4
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM_SA1100)+=-mtune=strongarm1100 -march=armv4
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=$(call check_gcc,-mtune=xscale,-mtune=strongarm110)
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=-march=armv5te -Wa,-mcpu=xscale
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM_IWMMXT)+=-march=iwmmxt -Wa,-mcpu=iwmmxt -mabi=iwmmxt
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M3)+=-mcpu=cortex-m3
|
|
||||||
- CPU_CFLAGS-$(CONFIG_ARM_CORTEX_M1)+=-mcpu=cortex-m1
|
|
||||||
CPU_CFLAGS-$(COMPILE_IN_THUMB_MODE)+=-mthumb
|
|
||||||
endif
|
|
||||||
|
|
||||||
--- a/extra/Configs/Config.arm
|
|
||||||
+++ b/extra/Configs/Config.arm
|
|
||||||
@@ -30,129 +30,14 @@ config CONFIG_ARM_EABI
|
|
||||||
|
|
||||||
endchoice
|
|
||||||
|
|
||||||
-choice
|
|
||||||
- prompt "Target Processor Type"
|
|
||||||
- default CONFIG_GENERIC_ARM
|
|
||||||
- help
|
|
||||||
- This is the processor type of your CPU. This information is used for
|
|
||||||
- optimizing purposes. To build a library that will run on all ARMCPU
|
|
||||||
- types (albeit not optimally fast), you can specify "Generic Arm" here.
|
|
||||||
- If you pick anything other than "Generic Arm", there is no guarantee
|
|
||||||
- that uClibc will even run on anything other than the selected
|
|
||||||
- processor type.
|
|
||||||
-
|
|
||||||
- Here are the settings recommended for greatest speed:
|
|
||||||
- - "Generic Arm" select this if your compiler is already setup to
|
|
||||||
- optimize things properly, or if you want to run on pretty much
|
|
||||||
- everything, or you just don't much care.
|
|
||||||
- - For anything else, pick the ARM core type that best matches the
|
|
||||||
- cpu you will be using on your device.
|
|
||||||
-
|
|
||||||
- If you don't know what to do, choose "Generic Arm".
|
|
||||||
-
|
|
||||||
-config CONFIG_GENERIC_ARM
|
|
||||||
- bool "Generic Arm"
|
|
||||||
-
|
|
||||||
-config CONFIG_ARM610
|
|
||||||
- bool "Arm 610"
|
|
||||||
- select ARCH_HAS_MMU
|
|
||||||
-
|
|
||||||
-config CONFIG_ARM710
|
|
||||||
- bool "Arm 710"
|
|
||||||
- select ARCH_HAS_MMU
|
|
||||||
-
|
|
||||||
-config CONFIG_ARM7TDMI
|
|
||||||
- bool "Arm 7TDMI"
|
|
||||||
- select ARCH_HAS_NO_MMU
|
|
||||||
- select HAS_THUMB
|
|
||||||
-
|
|
||||||
-config CONFIG_ARM720T
|
|
||||||
- bool "Arm 720T"
|
|
||||||
- select ARCH_HAS_MMU
|
|
||||||
- select HAS_THUMB
|
|
||||||
-
|
|
||||||
-config CONFIG_ARM920T
|
|
||||||
- bool "Arm 920T"
|
|
||||||
- select ARCH_HAS_MMU
|
|
||||||
- select HAS_THUMB
|
|
||||||
-
|
|
||||||
-config CONFIG_ARM922T
|
|
||||||
- bool "Arm 922T"
|
|
||||||
- select ARCH_HAS_MMU
|
|
||||||
- select HAS_THUMB
|
|
||||||
-
|
|
||||||
-config CONFIG_ARM926T
|
|
||||||
- bool "Arm 926T"
|
|
||||||
- select ARCH_HAS_MMU
|
|
||||||
- select HAS_THUMB
|
|
||||||
-
|
|
||||||
-config CONFIG_ARM10T
|
|
||||||
- bool "Arm 10T"
|
|
||||||
- select ARCH_HAS_MMU
|
|
||||||
- select HAS_THUMB
|
|
||||||
-
|
|
||||||
-config CONFIG_ARM1136JF_S
|
|
||||||
- bool "Arm 1136JF-S"
|
|
||||||
- select ARCH_HAS_MMU
|
|
||||||
- select HAS_THUMB
|
|
||||||
-
|
|
||||||
-config CONFIG_ARM1176JZ_S
|
|
||||||
- bool "Arm 1176JZ-S"
|
|
||||||
- select ARCH_HAS_MMU
|
|
||||||
- select HAS_THUMB
|
|
||||||
-
|
|
||||||
-config CONFIG_ARM1176JZF_S
|
|
||||||
- bool "Arm 1176JZF-S"
|
|
||||||
- select ARCH_HAS_MMU
|
|
||||||
- select HAS_THUMB
|
|
||||||
-
|
|
||||||
-config CONFIG_ARM_CORTEX_M3
|
|
||||||
- bool "Arm Cortex-M3"
|
|
||||||
- select ARCH_HAS_NO_MMU
|
|
||||||
- select FORCE_THUMB
|
|
||||||
-
|
|
||||||
-config CONFIG_ARM_CORTEX_M1
|
|
||||||
- bool "Arm Cortex-M1"
|
|
||||||
- select ARCH_HAS_NO_MMU
|
|
||||||
- select FORCE_THUMB
|
|
||||||
-
|
|
||||||
-config CONFIG_ARM_SA110
|
|
||||||
- bool "Intel StrongArm SA-110"
|
|
||||||
- select ARCH_HAS_MMU
|
|
||||||
- select HAS_THUMB
|
|
||||||
-
|
|
||||||
-config CONFIG_ARM_SA1100
|
|
||||||
- bool "Intel StrongArm SA-1100"
|
|
||||||
- select ARCH_HAS_MMU
|
|
||||||
- select HAS_THUMB
|
|
||||||
-
|
|
||||||
-config CONFIG_ARM_XSCALE
|
|
||||||
- bool "Intel Xscale"
|
|
||||||
- select ARCH_HAS_MMU
|
|
||||||
- select HAS_THUMB
|
|
||||||
-
|
|
||||||
-config CONFIG_ARM_IWMMXT
|
|
||||||
- bool "Intel Xscale With WMMX PXA27x"
|
|
||||||
- select ARCH_HAS_MMU
|
|
||||||
- select HAS_THUMB
|
|
||||||
-
|
|
||||||
-endchoice
|
|
||||||
-
|
|
||||||
-config HAS_THUMB
|
|
||||||
- bool
|
|
||||||
-
|
|
||||||
-config FORCE_THUMB
|
|
||||||
- bool
|
|
||||||
- select HAS_THUMB
|
|
||||||
- select COMPILE_IN_THUMB_MODE
|
|
||||||
- select USE_BX
|
|
||||||
-
|
|
||||||
config COMPILE_IN_THUMB_MODE
|
|
||||||
- bool
|
|
||||||
+ bool "Build using Thumb mode"
|
|
||||||
+ select USE_BX
|
|
||||||
+ help
|
|
||||||
+ Say 'y' here to force building uClibc in thumb mode.
|
|
||||||
+ Say 'n' to use your compiler's default mode.
|
|
||||||
|
|
||||||
config USE_BX
|
|
||||||
bool "Use BX in function return"
|
|
||||||
- default y
|
|
||||||
- depends on HAS_THUMB
|
|
||||||
help
|
|
||||||
Use BX instruction for THUMB aware architectures.
|
|
|
@ -1,44 +0,0 @@
|
||||||
The CONFIG_ARM_OABI option is never used.
|
|
||||||
|
|
||||||
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
|
|
||||||
Cc: Khem Raj <raj.khem@gmail.com>
|
|
||||||
Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
||||||
Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
|
|
||||||
---
|
|
||||||
extra/Configs/Config.arm | 23 ++++++++---------------
|
|
||||||
1 files changed, 8 insertions(+), 15 deletions(-)
|
|
||||||
|
|
||||||
--- a/extra/Configs/Config.arm
|
|
||||||
+++ b/extra/Configs/Config.arm
|
|
||||||
@@ -12,23 +12,16 @@ config FORCE_OPTIONS_FOR_ARCH
|
|
||||||
default y
|
|
||||||
select ARCH_ANY_ENDIAN
|
|
||||||
|
|
||||||
-choice
|
|
||||||
- prompt "Target ABI"
|
|
||||||
- default CONFIG_ARM_EABI
|
|
||||||
+config CONFIG_ARM_EABI
|
|
||||||
+ bool "Build for EABI"
|
|
||||||
help
|
|
||||||
- If you choose "EABI" here, functions and constants required by the
|
|
||||||
- ARM EABI will be built into the library. You should choose "EABI"
|
|
||||||
+ If you say 'y' here, functions and constants required by the
|
|
||||||
+ ARM EABI will be built into the library. You should say 'y'
|
|
||||||
if your compiler uses the ARM EABI, in which case you will also
|
|
||||||
- need a kernel supporting the EABI system call interface, or "OABI"
|
|
||||||
- for a compiler using the old Linux ABI.
|
|
||||||
-
|
|
||||||
-config CONFIG_ARM_OABI
|
|
||||||
- bool "OABI"
|
|
||||||
-
|
|
||||||
-config CONFIG_ARM_EABI
|
|
||||||
- bool "EABI"
|
|
||||||
-
|
|
||||||
-endchoice
|
|
||||||
+ need a kernel supporting the EABI system call interface.
|
|
||||||
+
|
|
||||||
+ If you say 'n' here, then the library will be built for the
|
|
||||||
+ old Linux ABI.
|
|
||||||
|
|
||||||
config COMPILE_IN_THUMB_MODE
|
|
||||||
bool "Build using Thumb mode"
|
|
|
@ -1,32 +0,0 @@
|
||||||
The check for __USE_BX__ will be available in bits/arm_asm.h,
|
|
||||||
so the latter must be included wherever the former is used.
|
|
||||||
|
|
||||||
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
|
|
||||||
Cc: Khem Raj <raj.khem@gmail.com>
|
|
||||||
Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
||||||
Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
|
|
||||||
---
|
|
||||||
ldso/ldso/arm/dl-startup.h | 1 +
|
|
||||||
libc/sysdeps/linux/arm/sysdep.h | 1 +
|
|
||||||
2 files changed, 2 insertions(+), 0 deletions(-)
|
|
||||||
|
|
||||||
--- a/ldso/ldso/arm/dl-startup.h
|
|
||||||
+++ b/ldso/ldso/arm/dl-startup.h
|
|
||||||
@@ -7,6 +7,7 @@
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <features.h>
|
|
||||||
+#include <bits/arm_asm.h>
|
|
||||||
|
|
||||||
#if !defined(__thumb__)
|
|
||||||
__asm__(
|
|
||||||
--- a/libc/sysdeps/linux/arm/sysdep.h
|
|
||||||
+++ b/libc/sysdeps/linux/arm/sysdep.h
|
|
||||||
@@ -21,6 +21,7 @@
|
|
||||||
#define _LINUX_ARM_SYSDEP_H 1
|
|
||||||
|
|
||||||
#include <common/sysdep.h>
|
|
||||||
+#include <bits/arm_asm.h>
|
|
||||||
|
|
||||||
#include <sys/syscall.h>
|
|
||||||
/* For Linux we can use the system call table in the header file
|
|
|
@ -1,42 +0,0 @@
|
||||||
The "use BX" option is now a suggestion that BX be used if available.
|
|
||||||
Use a macro to detect if BX is available at build time. If so, and
|
|
||||||
the user requested it be used, then use it. Otherwise, error out.
|
|
||||||
|
|
||||||
Macro courtesy Khem RAJ:
|
|
||||||
http://lists.uclibc.org/pipermail/uclibc/2009-April/042301.html
|
|
||||||
|
|
||||||
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
|
|
||||||
Cc: Khem Raj <raj.khem@gmail.com>
|
|
||||||
Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
||||||
Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
|
|
||||||
---
|
|
||||||
extra/Configs/Config.arm | 4 +++-
|
|
||||||
libc/sysdeps/linux/arm/bits/arm_asm.h | 9 ++++++++-
|
|
||||||
2 files changed, 11 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
--- a/extra/Configs/Config.arm
|
|
||||||
+++ b/extra/Configs/Config.arm
|
|
||||||
@@ -33,4 +33,6 @@ config COMPILE_IN_THUMB_MODE
|
|
||||||
config USE_BX
|
|
||||||
bool "Use BX in function return"
|
|
||||||
help
|
|
||||||
- Use BX instruction for THUMB aware architectures.
|
|
||||||
+ Say 'y' to use BX to return from functions on your thumb-aware
|
|
||||||
+ processor. Say 'y' if you need to use interworking. Say 'n' if not.
|
|
||||||
+ It is safe to say 'y' even if you're not doing interworking.
|
|
||||||
--- a/libc/sysdeps/linux/arm/bits/arm_asm.h
|
|
||||||
+++ b/libc/sysdeps/linux/arm/bits/arm_asm.h
|
|
||||||
@@ -24,5 +24,12 @@
|
|
||||||
#define THUMB1_ONLY 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
-#endif /* _ARM_ASM_H */
|
|
||||||
+#if defined(__USE_BX__)
|
|
||||||
+# if ( defined (__ARM_ARCH_2__) || defined (__ARM_ARCH_3__) \
|
|
||||||
+ || defined (__ARM_ARCH_3M__) || defined (__ARM_ARCH_4__) \
|
|
||||||
+ )
|
|
||||||
+# error Use of BX was requested, but is not available on the target processor.
|
|
||||||
+# endif /* ARCH level */
|
|
||||||
+#endif /* __USE_BX__ */
|
|
||||||
|
|
||||||
+#endif /* _ARM_ASM_H */
|
|
|
@ -1,81 +0,0 @@
|
||||||
Rely on the compiler to be properly setup for the default ABI.
|
|
||||||
|
|
||||||
When installing-headers, there are two cases:
|
|
||||||
- NPTL: no issue, a cross-compiler is already expected
|
|
||||||
- LinuxThreads: no issue, EABI/OABI has no impact on installed headers.
|
|
||||||
|
|
||||||
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
|
|
||||||
Cc: Khem Raj <raj.khem@gmail.com>
|
|
||||||
Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
||||||
Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
|
|
||||||
---
|
|
||||||
extra/Configs/Config.arm | 11 -----------
|
|
||||||
libc/sysdeps/linux/arm/Makefile.arch | 9 +++++++--
|
|
||||||
libc/sysdeps/linux/arm/bits/huge_val.h | 4 ++--
|
|
||||||
3 files changed, 9 insertions(+), 15 deletions(-)
|
|
||||||
|
|
||||||
--- a/extra/Configs/Config.arm
|
|
||||||
+++ b/extra/Configs/Config.arm
|
|
||||||
@@ -12,17 +12,6 @@ config FORCE_OPTIONS_FOR_ARCH
|
|
||||||
default y
|
|
||||||
select ARCH_ANY_ENDIAN
|
|
||||||
|
|
||||||
-config CONFIG_ARM_EABI
|
|
||||||
- bool "Build for EABI"
|
|
||||||
- help
|
|
||||||
- If you say 'y' here, functions and constants required by the
|
|
||||||
- ARM EABI will be built into the library. You should say 'y'
|
|
||||||
- if your compiler uses the ARM EABI, in which case you will also
|
|
||||||
- need a kernel supporting the EABI system call interface.
|
|
||||||
-
|
|
||||||
- If you say 'n' here, then the library will be built for the
|
|
||||||
- old Linux ABI.
|
|
||||||
-
|
|
||||||
config COMPILE_IN_THUMB_MODE
|
|
||||||
bool "Build using Thumb mode"
|
|
||||||
select USE_BX
|
|
||||||
--- a/libc/sysdeps/linux/arm/Makefile.arch
|
|
||||||
+++ b/libc/sysdeps/linux/arm/Makefile.arch
|
|
||||||
@@ -24,7 +24,12 @@ ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
|
|
||||||
CSRC += posix_fadvise.c posix_fadvise64.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
-ifeq ($(CONFIG_ARM_EABI),y)
|
|
||||||
+# Is our compiler set up for EABI ?
|
|
||||||
+IS_EABI:=$(shell $(CC) $(CFLAGS) -x c - -E -dM </dev/null 2>/dev/null \
|
|
||||||
+ |sed -r -e '/^\#[[:space:]]*define[[:space:]]+__ARM_EABI__([[:space:]]+1)?$$/!d; s/.+/y/;' \
|
|
||||||
+ )
|
|
||||||
+
|
|
||||||
+ifeq ($(IS_EABI),y)
|
|
||||||
CSRC += aeabi_assert.c aeabi_atexit.c aeabi_errno_addr.c \
|
|
||||||
aeabi_localeconv.c aeabi_memclr.c aeabi_memcpy.c \
|
|
||||||
aeabi_memmove.c aeabi_memset.c find_exidx.c
|
|
||||||
@@ -37,7 +42,7 @@ else
|
|
||||||
CSRC += syscall.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
-ifeq ($(CONFIG_ARM_EABI),y)
|
|
||||||
+ifeq ($(IS_EABI),y)
|
|
||||||
libc-static-y += $(ARCH_OUT)/aeabi_lcsts.o $(ARCH_OUT)/aeabi_math.o \
|
|
||||||
$(ARCH_OUT)/aeabi_sighandlers.o
|
|
||||||
libc-nonshared-y += $(ARCH_OUT)/aeabi_lcsts.os $(ARCH_OUT)/aeabi_math.os \
|
|
||||||
--- a/libc/sysdeps/linux/arm/bits/huge_val.h
|
|
||||||
+++ b/libc/sysdeps/linux/arm/bits/huge_val.h
|
|
||||||
@@ -32,7 +32,7 @@
|
|
||||||
# define HUGE_VAL (__extension__ 0x1.0p2047)
|
|
||||||
#elif defined __GNUC__
|
|
||||||
|
|
||||||
-#ifndef __CONFIG_ARM_EABI__
|
|
||||||
+#ifndef __ARM_EABI__
|
|
||||||
# define HUGE_VAL \
|
|
||||||
(__extension__ \
|
|
||||||
((union { unsigned __l __attribute__((__mode__(__DI__))); double __d; }) \
|
|
||||||
@@ -50,7 +50,7 @@
|
|
||||||
|
|
||||||
typedef union { unsigned char __c[8]; double __d; } __huge_val_t;
|
|
||||||
|
|
||||||
-#ifndef __CONFIG_ARM_EABI__
|
|
||||||
+#ifndef __ARM_EABI__
|
|
||||||
# if __BYTE_ORDER == __BIG_ENDIAN
|
|
||||||
# define __HUGE_VAL_bytes { 0, 0, 0, 0, 0x7f, 0xf0, 0, 0 }
|
|
||||||
# endif
|
|
|
@ -1,28 +0,0 @@
|
||||||
From: Guillaume Bourcier <guillaumebourcier@...>
|
|
||||||
|
|
||||||
The algorithm computing daylight saving time incorrectly adds a day for
|
|
||||||
each month after January for leap years. The clock shift from/to DST can
|
|
||||||
be delayed if the last Sunday of a transition month is exactly seven
|
|
||||||
days before the first of the following month.
|
|
||||||
|
|
||||||
This change adds a day for the February month only.
|
|
||||||
|
|
||||||
Signed-off-by: Guillaume Bourcier <guillaumebourcier@...>
|
|
||||||
Signed-off-by: Richard Braun <rbraun@...>
|
|
||||||
---
|
|
||||||
libc/misc/time/time.c | 2 +-
|
|
||||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/libc/misc/time/time.c b/libc/misc/time/time.c
|
|
||||||
index 19d68e1..8e2ebf1 100644
|
|
||||||
--- a/libc/misc/time/time.c 2012-03-26 09:55:20.741069297 +0200
|
|
||||||
+++ b/libc/misc/time/time.c 2012-03-26 09:55:57.369068289 +0200
|
|
||||||
@@ -705,7 +705,7 @@
|
|
||||||
++day;
|
|
||||||
}
|
|
||||||
monlen = 31 + day_cor[r->month -1] - day_cor[r->month];
|
|
||||||
- if (isleap && (r->month > 1)) {
|
|
||||||
+ if (isleap && (r->month == 2)) {
|
|
||||||
++monlen;
|
|
||||||
}
|
|
||||||
/* Wweekday (0 is Sunday) of 1st of the month
|
|
Loading…
Reference in New Issue