diff --git a/toolchain/uClibc/Config.in b/toolchain/uClibc/Config.in index 0eee41e7b..c4f41aedb 100644 --- a/toolchain/uClibc/Config.in +++ b/toolchain/uClibc/Config.in @@ -21,13 +21,19 @@ choice endchoice +config UCLIBC_VERSION_NPTL + bool "Use NPTL branch" + depends on TOOLCHAINOPTS && USE_UCLIBC + depends on UCLIBC_VERSION_0_9_30 + + config UCLIBC_EXTRA_VERSION string prompt "Extra uClibc version" depends on TOOLCHAINOPTS && USE_UCLIBC default "snapshot" if UCLIBC_VERSION_SNAPSHOT default ".2" if UCLIBC_VERSION_0_9_28 - default ".1" if UCLIBC_VERSION_0_9_30 + default ".1" if UCLIBC_VERSION_0_9_30 && !UCLIBC_VERSION_NPTL default "" help Default for version 0.9.28 is ".02", for daily snapshot it's just "snapshot" diff --git a/toolchain/uClibc/Makefile b/toolchain/uClibc/Makefile index 906767da2..e7304a171 100644 --- a/toolchain/uClibc/Makefile +++ b/toolchain/uClibc/Makefile @@ -11,6 +11,14 @@ PKG_NAME:=uClibc PKG_VERSION:=$(call qstrip,$(CONFIG_UCLIBC_VERSION)) PKG_EXTRAVERSION:=$(call qstrip,$(CONFIG_UCLIBC_EXTRA_VERSION)) PKG_VERSION_SNAPSHOT:=$(call qstrip,$(CONFIG_UCLIBC_VERSION_SNAPSHOT)) +ifeq ($(CONFIG_UCLIBC_VERSION_NPTL),y) + PKG_SOURCE_URL:=http://www.uclibc.org/svn/branches/uClibc-nptl + PKG_SOURCE_PROTO:=svn + PKG_SOURCE_VERSION:=25804 + PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)+nptl + PKG_SOURCE:=$(PKG_NAME)-nptl-r$(PKG_SOURCE_VERSION).tar.gz + PKG_EXTRAVERSION:= +else ifeq ($(PKG_VERSION_SNAPSHOT),y) PKG_SOURCE_URL:=http://www.uclibc.org/downloads/snapshots PKG_SOURCE:=uClibc-snapshot.tar.bz2 @@ -18,8 +26,13 @@ else PKG_SOURCE_URL:=http://www.uclibc.org/downloads PKG_SOURCE:=uClibc-$(PKG_VERSION)$(PKG_EXTRAVERSION).tar.bz2 endif +endif PATCH_DIR:=$(firstword $(wildcard ./patches-$(PKG_VERSION)$(PKG_EXTRAVERSION) ./patches-$(PKG_VERSION))) CONFIG_DIR:=$(firstword $(wildcard ./config-$(PKG_VERSION)$(PKG_EXTRAVERSION) ./config-$(PKG_VERSION))) +PATCH_DIR:=$(if $(CONFIG_UCLIBC_VERSION_NPTL),./patches-nptl,$(PATCH_DIR)) +CONFIG_DIR:=$(if $(CONFIG_UCLIBC_VERSION_NPTL),./config-nptl,$(CONFIG_DIR)) +PATCH_DIR:=$(if $(PKG_VERSION_SNAPSHOT),,$(PATCH_DIR)) +CONFIG_DIR:=$(if $(PKG_VERSION_SNAPSHOT),./config-0.9.30,$(CONFIG_DIR)) PKG_MD5SUM_0.9.28.2 = 959f25286e317f0d9e2103445c5a14c2 PKG_MD5SUM_0.9.28.3 = 428405a36b4662980d9343b32089b5a6 @@ -27,16 +40,11 @@ PKG_MD5SUM_0.9.29 = 61dc55f43b17a38a074f347e74095b20 PKG_MD5SUM_0.9.30 = e5766e2566e0297adebebbcc0aba1f2d PKG_MD5SUM=$(PKG_MD5SUM_$(PKG_VERSION)$(PKG_EXTRAVERSION)) -ifeq ($(PKG_VERSION_SNAPSHOT),y) - PATCH_DIR:= - CONFIG_DIR:=./config-0.9.30 - PKG_MD5SUM:= -endif ifeq ($(PKG_VERSION_SNAPSHOT),y) HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/uClibc-$(PKG_EXTRAVERSION) else - HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/uClibc-$(PKG_VERSION)$(PKG_EXTRAVERSION) + HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/uClibc-$(PKG_VERSION)$(PKG_EXTRAVERSION)$(if $(CONFIG_UCLIBC_VERSION_NPTL),+nptl) endif include $(INCLUDE_DIR)/toolchain-build.mk diff --git a/toolchain/uClibc/config-nptl/arm b/toolchain/uClibc/config-nptl/arm new file mode 100644 index 000000000..d26b075b4 --- /dev/null +++ b/toolchain/uClibc/config-nptl/arm @@ -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 diff --git a/toolchain/uClibc/config-nptl/arm.storm b/toolchain/uClibc/config-nptl/arm.storm new file mode 100644 index 000000000..8043cf61b --- /dev/null +++ b/toolchain/uClibc/config-nptl/arm.storm @@ -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 diff --git a/toolchain/uClibc/config-nptl/armeb b/toolchain/uClibc/config-nptl/armeb new file mode 100644 index 000000000..ba3ea5c84 --- /dev/null +++ b/toolchain/uClibc/config-nptl/armeb @@ -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 diff --git a/toolchain/uClibc/config-nptl/avr32 b/toolchain/uClibc/config-nptl/avr32 new file mode 100644 index 000000000..bf7907aed --- /dev/null +++ b/toolchain/uClibc/config-nptl/avr32 @@ -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 diff --git a/toolchain/uClibc/config-nptl/common b/toolchain/uClibc/config-nptl/common new file mode 100644 index 000000000..f516343fd --- /dev/null +++ b/toolchain/uClibc/config-nptl/common @@ -0,0 +1,185 @@ +# 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 +# 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_NEW=y +# LINUXTHREADS_OLD is not set +# 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_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=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_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_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=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_FUTEXES=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_THREADS_NATIVE=y +UCLIBC_HAS_TLS=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 is not set +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" diff --git a/toolchain/uClibc/config-nptl/cris b/toolchain/uClibc/config-nptl/cris new file mode 100644 index 000000000..b9ea676fc --- /dev/null +++ b/toolchain/uClibc/config-nptl/cris @@ -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 diff --git a/toolchain/uClibc/config-nptl/i386 b/toolchain/uClibc/config-nptl/i386 new file mode 100644 index 000000000..521ce8c25 --- /dev/null +++ b/toolchain/uClibc/config-nptl/i386 @@ -0,0 +1,24 @@ +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 +LINUXTHREADS_NEW=y +# LINUXTHREADS_OLD is not set +TARGET_ARCH="i386" +TARGET_i386=y +UCLIBC_HAS_FPU=y +UCLIBC_HAS_LONG_DOUBLE_MATH=y diff --git a/toolchain/uClibc/config-nptl/i686 b/toolchain/uClibc/config-nptl/i686 new file mode 100644 index 000000000..22379f4a8 --- /dev/null +++ b/toolchain/uClibc/config-nptl/i686 @@ -0,0 +1,24 @@ +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 +LINUXTHREADS_NEW=y +# LINUXTHREADS_OLD is not set +TARGET_ARCH="i386" +TARGET_i386=y +UCLIBC_HAS_FPU=y +UCLIBC_HAS_LONG_DOUBLE_MATH=y diff --git a/toolchain/uClibc/config-nptl/mips b/toolchain/uClibc/config-nptl/mips new file mode 100644 index 000000000..7398c6692 --- /dev/null +++ b/toolchain/uClibc/config-nptl/mips @@ -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 diff --git a/toolchain/uClibc/config-nptl/mipsel b/toolchain/uClibc/config-nptl/mipsel new file mode 100644 index 000000000..7648f396b --- /dev/null +++ b/toolchain/uClibc/config-nptl/mipsel @@ -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 diff --git a/toolchain/uClibc/config-nptl/powerpc b/toolchain/uClibc/config-nptl/powerpc new file mode 100644 index 000000000..4e5cd43ba --- /dev/null +++ b/toolchain/uClibc/config-nptl/powerpc @@ -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 diff --git a/toolchain/uClibc/config-nptl/x86_64 b/toolchain/uClibc/config-nptl/x86_64 new file mode 100644 index 000000000..20a18f1a0 --- /dev/null +++ b/toolchain/uClibc/config-nptl/x86_64 @@ -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 diff --git a/toolchain/uClibc/patches-nptl/110-compat_macros.patch b/toolchain/uClibc/patches-nptl/110-compat_macros.patch new file mode 100644 index 000000000..7659e465c --- /dev/null +++ b/toolchain/uClibc/patches-nptl/110-compat_macros.patch @@ -0,0 +1,51 @@ +--- ./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. diff --git a/toolchain/uClibc/patches-nptl/120-adjtimex.patch b/toolchain/uClibc/patches-nptl/120-adjtimex.patch new file mode 100644 index 000000000..5127701df --- /dev/null +++ b/toolchain/uClibc/patches-nptl/120-adjtimex.patch @@ -0,0 +1,14 @@ +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; diff --git a/toolchain/uClibc/patches-nptl/130-compile_fix.patch b/toolchain/uClibc/patches-nptl/130-compile_fix.patch new file mode 100644 index 000000000..ed3812a8e --- /dev/null +++ b/toolchain/uClibc/patches-nptl/130-compile_fix.patch @@ -0,0 +1,36 @@ +--- a/librt/mq_receive.c ++++ b/librt/mq_receive.c +@@ -6,7 +6,8 @@ + #include + #include + #include +-#warning FIXME: hard dependency on ADVANCED REALTIME feature ++ ++#ifdef __UCLIBC_HAS_ADVANCED_REALTIME__ + + librt_hidden_proto(mq_timedreceive) + +@@ -44,3 +45,5 @@ ssize_t mq_receive(mqd_t mqdes, char *ms + { + return mq_timedreceive(mqdes, msg_ptr, msg_len, msg_prio, NULL); + } ++ ++#endif /* __UCLIBC_HAS_ADVANCED_REALTIME__ */ +--- a/librt/mq_send.c ++++ b/librt/mq_send.c +@@ -6,7 +6,8 @@ + #include + #include + #include +-#warning FIXME: hard dependency on ADVANCED REALTIME feature ++ ++#ifdef __UCLIBC_HAS_ADVANCED_REALTIME__ + + librt_hidden_proto(mq_timedsend) + +@@ -43,3 +44,5 @@ int mq_send(mqd_t mqdes, const char *msg + { + return mq_timedsend(mqdes, msg_ptr, msg_len, msg_prio, NULL); + } ++ ++#endif /* __UCLIBC_HAS_ADVANCED_REALTIME__ */