add uclibc-nptl

SVN-Revision: 15006
This commit is contained in:
Felix Fietkau 2009-03-24 02:06:12 +00:00
parent 16fa4d486d
commit f914fcf49f
17 changed files with 495 additions and 7 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -0,0 +1,36 @@
--- a/librt/mq_receive.c
+++ b/librt/mq_receive.c
@@ -6,7 +6,8 @@
#include <stddef.h>
#include <sys/syscall.h>
#include <mqueue.h>
-#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 <stddef.h>
#include <sys/syscall.h>
#include <mqueue.h>
-#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__ */