diff --git a/packages/toolchain/devel/uClibc/config/uClibc.i386.conf b/packages/toolchain/devel/uClibc/config/uClibc.i386.conf index 2fb9cb1ca2..2875700d9f 100644 --- a/packages/toolchain/devel/uClibc/config/uClibc.i386.conf +++ b/packages/toolchain/devel/uClibc/config/uClibc.i386.conf @@ -1,6 +1,6 @@ # # Automatically generated make config: don't edit -# Version: 0.9.30.1 +# Version: 0.9.30-git # # TARGET_alpha is not set # TARGET_arm is not set @@ -67,7 +67,7 @@ UCLIBC_HAS_FPU=y DO_C99_MATH=y UCLIBC_HAS_FENV=y UCLIBC_HAS_LONG_DOUBLE_MATH=y -KERNEL_HEADERS=" " +KERNEL_HEADERS="/home/stephan/projects/OpenELEC/build.OpenELEC.enna.i386.uClibc.devel/linux-2.6.32-rc3/dest/include" HAVE_DOT_CONFIG=y # @@ -90,6 +90,7 @@ UCLIBC_CTOR_DTOR=y UCLIBC_HAS_THREADS=y PTHREADS_DEBUG_SUPPORT=y LINUXTHREADS_OLD=y +# UCLIBC_HAS_THREADS_NATIVE is not set UCLIBC_HAS_SYSLOG=y UCLIBC_HAS_LFS=y # MALLOC is not set @@ -100,6 +101,7 @@ MALLOC_STANDARD=y # COMPAT_ATEXIT is not set UCLIBC_SUSV3_LEGACY=y # UCLIBC_SUSV3_LEGACY_MACROS is not set +# UCLIBC_SUSV4_LEGACY is not set # UCLIBC_HAS_STUBS is not set UCLIBC_HAS_SHADOW=y UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y @@ -148,6 +150,9 @@ UCLIBC_HAS_RPC=y # UCLIBC_HAS_REENTRANT_RPC is not set # UCLIBC_USE_NETLINK is not set # UCLIBC_HAS_BSD_RES_CLOSE is not set +UCLIBC_HAS_COMPAT_RES_STATE=y +# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set +UCLIBC_HAS_RESOLV_STUB=y # # String and Stdio Support @@ -161,10 +166,7 @@ UCLIBC_HAS_CTYPE_CHECKED=y # UCLIBC_HAS_CTYPE_ENFORCED is not set UCLIBC_HAS_WCHAR=y # UCLIBC_HAS_LOCALE is not set -# UCLIBC_PREGENERATED_LOCALE_DATA is not set -# UCLIBC_HAS_XLOCALE is not set # UCLIBC_HAS_HEXADECIMAL_FLOATS is not set -# UCLIBC_HAS_GLIBC_DIGIT_GROUPING is not set # UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 # UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set @@ -210,6 +212,7 @@ UCLIBC_HAS_GNU_GLOB=y SHARED_LIB_LOADER_PREFIX="$(DEVEL_PREFIX)/lib" RUNTIME_PREFIX="/" DEVEL_PREFIX="/usr" +HARDWIRED_ABSPATH=y # # Security options @@ -233,7 +236,7 @@ DOSTRIP=y # DOASSERTS is not set # SUPPORT_LD_DEBUG is not set # SUPPORT_LD_DEBUG_EARLY is not set -# UCLIBC_MALLOC_DEBUGGING is not set +UCLIBC_MALLOC_DEBUGGING=y WARNINGS="-Wall" # EXTRA_WARNINGS is not set # DOMULTI is not set diff --git a/packages/toolchain/devel/uClibc/patches/12_gen_bits_syscall_h.diff b/packages/toolchain/devel/uClibc/patches/12_gen_bits_syscall_h.diff index 195297c361..fc9211d25e 100644 --- a/packages/toolchain/devel/uClibc/patches/12_gen_bits_syscall_h.diff +++ b/packages/toolchain/devel/uClibc/patches/12_gen_bits_syscall_h.diff @@ -1,11 +1,12 @@ ---- uClibc.orig/Makefile.in 2008-09-02 14:51:27.000000000 +0200 -+++ uClibc/Makefile.in 2008-09-02 14:51:42.000000000 +0200 -@@ -145,7 +145,7 @@ - cd $(top_builddir); \ - tmp=`mktemp include/bits/sysnum.h.XXXXXX 2>/dev/null`; \ - [ -z "$$tmp" ] && tmp='include/bits/sysnum.h.new'; \ -- KERNEL_HEADERS="${KERNEL_HEADERS}" top_builddir=. CC="$(CC) $(CPU_CFLAGS)" $(SHELL) extra/scripts/gen_bits_syscall_h.sh > $$tmp; \ -+ KERNEL_HEADERS="${KERNEL_HEADERS}" top_builddir=. CC="$(HOSTCC) $(CPU_CFLAGS)" $(SHELL) extra/scripts/gen_bits_syscall_h.sh > $$tmp; \ - if cmp include/bits/sysnum.h $$tmp >/dev/null 2>&1; then \ +diff -Naur uClibc-20090902/Makefile.in uClibc-20090902.patch/Makefile.in +--- uClibc-20090902/Makefile.in 2009-08-31 10:48:04.000000000 +0200 ++++ uClibc-20090902.patch/Makefile.in 2009-09-02 11:25:11.698689044 +0200 +@@ -167,7 +167,7 @@ + $(Q)set -e; \ + tmp=`mktemp $(top_builddir)include/bits/sysnum.h.XXXXXX 2>/dev/null || true`; \ + [ -z "$$tmp" ] && tmp='$(top_builddir)include/bits/sysnum.h.new'; \ +- KERNEL_HEADERS="${KERNEL_HEADERS}" top_builddir="$(top_builddir)" CC="$(CC) $(CPU_CFLAGS)" $(SHELL) $< > $$tmp; \ ++ KERNEL_HEADERS="${KERNEL_HEADERS}" top_builddir="$(top_builddir)" CC="$(HOSTCC) $(CPU_CFLAGS)" $(SHELL) $< > $$tmp; \ + if cmp $(top_builddir)include/bits/sysnum.h $$tmp >/dev/null 2>&1; then \ $(RM) $$tmp; \ else \ diff --git a/packages/toolchain/devel/uClibc/patches/30_dlsym-verbose-dev.diff b/packages/toolchain/devel/uClibc/patches/30_dlsym-verbose-dev.diff index efe5451473..ae2ea1c2fc 100644 --- a/packages/toolchain/devel/uClibc/patches/30_dlsym-verbose-dev.diff +++ b/packages/toolchain/devel/uClibc/patches/30_dlsym-verbose-dev.diff @@ -15,7 +15,7 @@ stripping out required symbols. const char *name2 = name; #endif +#ifdef _DLSYM_TRACE_NAME -+ FILE *log = fopen("/dlsym.log", "a"); ++ FILE *log = fopen("/var/log/dlsym.log", "a"); + + fprintf(log, "%s\n", name); + fflush(log); diff --git a/packages/toolchain/devel/uClibc/patches/900-backport_fix_possible_null_ptr_dereference_in_getaddrinfo.diff b/packages/toolchain/devel/uClibc/patches/900-backport_fix_possible_null_ptr_dereference_in_getaddrinfo.diff deleted file mode 100644 index 62563ceb98..0000000000 --- a/packages/toolchain/devel/uClibc/patches/900-backport_fix_possible_null_ptr_dereference_in_getaddrinfo.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- a/libc/inet/getaddrinfo.c -+++ b/libc/inet/getaddrinfo.c -@@ -187,6 +187,8 @@ - } - - for (runp = ifa; runp != NULL; runp = runp->ifa_next) { -+ if (runp->ifa_addr == NULL) -+ continue; - #if defined __UCLIBC_HAS_IPV4__ - if (runp->ifa_addr->sa_family == PF_INET) - seen |= SEEN_IPV4; diff --git a/packages/toolchain/devel/uClibc/patches/uClibc-0.9.30.1-add_rpmatch.diff b/packages/toolchain/devel/uClibc/patches/uClibc-0.9.30.1-add_rpmatch.diff deleted file mode 100644 index 86d7c254f7..0000000000 --- a/packages/toolchain/devel/uClibc/patches/uClibc-0.9.30.1-add_rpmatch.diff +++ /dev/null @@ -1,80 +0,0 @@ -diff -Naur uClibc-0.9.30.1/libc/stdlib/Makefile.in uClibc-0.9.30.1.patch/libc/stdlib/Makefile.in ---- uClibc-0.9.30.1/libc/stdlib/Makefile.in 2008-11-07 22:15:53.000000000 +0100 -+++ uClibc-0.9.30.1.patch/libc/stdlib/Makefile.in 2009-09-26 21:02:10.972572307 +0200 -@@ -14,7 +14,7 @@ - rand.c random.c random_r.c setenv.c system.c div.c ldiv.c lldiv.c \ - getpt.c drand48-iter.c jrand48.c \ - jrand48_r.c lrand48.c lrand48_r.c mrand48.c mrand48_r.c nrand48.c \ -- nrand48_r.c rand_r.c srand48.c srand48_r.c seed48.c seed48_r.c \ -+ nrand48_r.c rand_r.c rpmatch.c srand48.c srand48_r.c seed48.c seed48_r.c \ - valloc.c a64l.c l64a.c __uc_malloc.c - ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y) - CSRC += posix_memalign.c -diff -Naur uClibc-0.9.30.1/libc/stdlib/rpmatch.c uClibc-0.9.30.1.patch/libc/stdlib/rpmatch.c ---- uClibc-0.9.30.1/libc/stdlib/rpmatch.c 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc-0.9.30.1.patch/libc/stdlib/rpmatch.c 2003-06-12 00:12:19.000000000 +0200 -@@ -0,0 +1,64 @@ -+/* Determine whether string value is affirmation or negative response -+ according to current locale's data. -+ This file is part of the GNU C Library. -+ Copyright (C) 1996, 1997, 2000, 2003 Free Software Foundation, Inc. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#include -+#include -+#include -+ -+ -+int -+rpmatch (response) -+ const char *response; -+{ -+ /* Match against one of the response patterns, compiling the pattern -+ first if necessary. */ -+ auto int try (const int tag, const int match, const int nomatch, -+ const char **lastp, regex_t *re); -+ -+ int try (const int tag, const int match, const int nomatch, -+ const char **lastp, regex_t *re) -+ { -+ const char *pattern = nl_langinfo (tag); -+ if (pattern != *lastp) -+ { -+ /* The pattern has changed. */ -+ if (*lastp) -+ { -+ /* Free the old compiled pattern. */ -+ __regfree (re); -+ *lastp = NULL; -+ } -+ /* Compile the pattern and cache it for future runs. */ -+ if (__regcomp (re, pattern, REG_EXTENDED) != 0) -+ return -1; -+ *lastp = pattern; -+ } -+ -+ /* Try the pattern. */ -+ return __regexec (re, response, 0, NULL, 0) == 0 ? match : nomatch; -+ } -+ -+ /* We cache the response patterns and compiled regexps here. */ -+ static const char *yesexpr, *noexpr; -+ static regex_t yesre, nore; -+ -+ return (try (YESEXPR, 1, 0, &yesexpr, &yesre) ?: -+ try (NOEXPR, 0, -1, &noexpr, &nore)); -+} diff --git a/packages/toolchain/devel/uClibc/patches/uClibc-0.9.30.1-add_timerfd.diff b/packages/toolchain/devel/uClibc/patches/uClibc-0.9.30.1-add_timerfd.diff deleted file mode 100644 index 598b16dc2f..0000000000 --- a/packages/toolchain/devel/uClibc/patches/uClibc-0.9.30.1-add_timerfd.diff +++ /dev/null @@ -1,119 +0,0 @@ -diff --git a/libc/sysdeps/linux/common/Makefile.in b/libc/sysdeps/linux/common/Makefile.in -index fbb5729..788571e 100644 ---- a/libc/sysdeps/linux/common/Makefile.in -+++ b/libc/sysdeps/linux/common/Makefile.in -@@ -31,7 +31,7 @@ CSRC := $(filter-out capget.c capset.c inotify.c ioperm.c iopl.c madvise.c \ - remap_file_pages.c sched_getaffinity.c sched_setaffinity.c \ - sendfile64.c sendfile.c setfsgid.c setfsuid.c setresuid.c \ - splice.c vmsplice.c tee.c signalfd.c swapoff.c swapon.c \ -- sync_file_range.c sysctl.c sysinfo.c uselib.c vhangup.c,$(CSRC)) -+ sync_file_range.c sysctl.c sysinfo.c timerfd.c uselib.c vhangup.c,$(CSRC)) - endif - - ifneq ($(UCLIBC_BSD_SPECIFIC),y) -diff --git a/libc/sysdeps/linux/common/sys/timerfd.h b/libc/sysdeps/linux/common/sys/timerfd.h -new file mode 100644 -index 0000000..c1bb06f ---- a/dev/null -+++ b/libc/sysdeps/linux/common/sys/timerfd.h -@@ -0,0 +1,60 @@ -+/* Copyright (C) 2008 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, write to the Free -+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA -+ 02111-1307 USA. */ -+ -+#ifndef _SYS_TIMERFD_H -+#define _SYS_TIMERFD_H 1 -+ -+#include -+ -+ -+/* Bits to be set in the FLAGS parameter of `timerfd_create'. */ -+enum -+ { -+ TFD_CLOEXEC = 02000000, -+#define TFD_CLOEXEC TFD_CLOEXEC -+ TFD_NONBLOCK = 04000 -+#define TFD_NONBLOCK TFD_NONBLOCK -+ }; -+ -+ -+/* Bits to be set in the FLAGS parameter of `timerfd_settime'. */ -+enum -+ { -+ TFD_TIMER_ABSTIME = 1 << 0 -+#define TFD_TIMER_ABSTIME TFD_TIMER_ABSTIME -+ }; -+ -+ -+__BEGIN_DECLS -+ -+/* Return file descriptor for new interval timer source. */ -+extern int timerfd_create (clockid_t __clock_id, int __flags) __THROW; -+ -+/* Set next expiration time of interval timer source UFD to UTMR. If -+ FLAGS has the TFD_TIMER_ABSTIME flag set the timeout value is -+ absolute. Optionally return the old expiration time in OTMR. */ -+extern int timerfd_settime (int __ufd, int __flags, -+ __const struct itimerspec *__utmr, -+ struct itimerspec *__otmr) __THROW; -+ -+/* Return the next expiration time of UFD. */ -+extern int timerfd_gettime (int __ufd, struct itimerspec *__otmr) __THROW; -+ -+__END_DECLS -+ -+#endif /* sys/timerfd.h */ -diff --git a/libc/sysdeps/linux/common/timerfd.c b/libc/sysdeps/linux/common/timerfd.c -new file mode 100644 -index 0000000..2332044 ---- a/dev/null -+++ b/libc/sysdeps/linux/common/timerfd.c -@@ -0,0 +1,32 @@ -+/* vi: set sw=4 ts=4: */ -+/* -+ * timerfd_create() / timerfd_settime() / timerfd_gettime() for uClibc -+ * -+ * Copyright (C) 2009 Stephan Raue -+ * -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include -+#include -+ -+/* -+ * timerfd_create() -+ */ -+#ifdef __NR_timerfd_create -+_syscall2(int, timerfd_create, int, clockid, int, flags) -+#endif -+ -+/* -+ * timerfd_settime() -+ */ -+#ifdef __NR_timerfd_settime -+_syscall4(int,timerfd_settime, int, ufd, int, flags, const struct itimerspec *, utmr, struct itimerspec *, otmr) -+#endif -+ -+/* -+ * timerfd_gettime() -+ */ -+#ifdef __NR_timerfd_gettime -+_syscall2(int, timerfd_gettime, int, ufd, struct itimerspec *, otmr) -+#endif --- -cgit v0.8.2.1 diff --git a/packages/toolchain/devel/uClibc/patches/uClibc-0.9.30.1_add_at_funcs-upstream.diff b/packages/toolchain/devel/uClibc/patches/uClibc-0.9.30.1_add_at_funcs-upstream.diff deleted file mode 100644 index 4113d7ff75..0000000000 --- a/packages/toolchain/devel/uClibc/patches/uClibc-0.9.30.1_add_at_funcs-upstream.diff +++ /dev/null @@ -1,811 +0,0 @@ -diff -Naur uClibc-0.9.30.1/include/dirent.h uClibc-0.9.30.1.patch/include/dirent.h ---- uClibc-0.9.30.1/include/dirent.h 2005-11-03 20:13:24.000000000 +0100 -+++ uClibc-0.9.30.1.patch/include/dirent.h 2009-08-15 10:03:32.679480228 +0200 -@@ -134,6 +134,14 @@ - marked with __THROW. */ - extern DIR *opendir (__const char *__name) __nonnull ((1)); - -+#ifdef __USE_XOPEN2K8 -+/* Same as opendir, but open the stream on the file descriptor FD. -+ -+ This function is a possible cancellation point and therefore not -+ marked with __THROW. */ -+extern DIR *fdopendir (int __fd); -+#endif -+ - /* Close the directory stream DIRP. - Return 0 if successful, -1 if not. - -@@ -210,7 +218,7 @@ - extern long int telldir (DIR *__dirp) __THROW __nonnull ((1)); - #endif - --#if defined __USE_BSD || defined __USE_MISC -+#if defined __USE_BSD || defined __USE_MISC || defined __XOPEN_2K8 - - /* Return the file descriptor used by DIRP. */ - extern int dirfd (DIR *__dirp) __THROW __nonnull ((1)); -diff -Naur uClibc-0.9.30.1/include/fcntl.h uClibc-0.9.30.1.patch/include/fcntl.h ---- uClibc-0.9.30.1/include/fcntl.h 2008-10-03 15:59:52.000000000 +0200 -+++ uClibc-0.9.30.1.patch/include/fcntl.h 2009-08-15 10:03:32.680479250 +0200 -@@ -56,13 +56,16 @@ - # define SEEK_END 2 /* Seek from end of file. */ - #endif /* XPG */ - --#if 0 /*def __USE_GNU*/ -+#ifdef __USE_ATFILE - # define AT_FDCWD -100 /* Special value used to indicate -- openat should use the current -- working directory. */ -+ the *at functions should use the -+ current working directory. */ - # define AT_SYMLINK_NOFOLLOW 0x100 /* Do not follow symbolic links. */ - # define AT_REMOVEDIR 0x200 /* Remove directory instead of - unlinking file. */ -+# define AT_SYMLINK_FOLLOW 0x400 /* Follow symbolic links. */ -+# define AT_EACCESS 0x200 /* Test access permitted for -+ effective IDs, not real IDs. */ - #endif - - /* Do the file control operation described by CMD on FD. -@@ -103,11 +106,11 @@ - extern int open64 (__const char *__file, int __oflag, ...) __nonnull ((1)); - #endif - --#if 0 /*def __USE_GNU*/ --/* Similar to OPEN but a relative path name is interpreted relative to -+#ifdef __USE_ATFILE -+/* Similar to `open' but a relative path name is interpreted relative to - the directory for which FD is a descriptor. - -- NOTE: some other OPENAT implementation support additional functionality -+ NOTE: some other `openat' implementation support additional functionality - through this interface, especially using the O_XATTR flag. This is not - yet supported here. - -diff -Naur uClibc-0.9.30.1/include/features.h uClibc-0.9.30.1.patch/include/features.h ---- uClibc-0.9.30.1/include/features.h 2008-09-06 18:45:07.000000000 +0200 -+++ uClibc-0.9.30.1.patch/include/features.h 2009-08-15 10:44:21.810477838 +0200 -@@ -1,4 +1,4 @@ --/* Copyright (C) 1991-1993,1995-2003,2004,2005 Free Software Foundation, Inc. -+/* Copyright (C) 1991-1993,1995-2006,2007,2009 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -50,9 +50,10 @@ - if >=199309L, add IEEE Std 1003.1b-1993; - if >=199506L, add IEEE Std 1003.1c-1995; - if >=200112L, all of IEEE 1003.1-2004 -+ if >=200809L, all of IEEE 1003.1-2008 - _XOPEN_SOURCE Includes POSIX and XPG things. Set to 500 if - Single Unix conformance is wanted, to 600 for the -- upcoming sixth revision. -+ sixth revision, to 700 for the seventh revision. - _XOPEN_SOURCE_EXTENDED XPG things and X/Open Unix extensions. - _LARGEFILE_SOURCE Some more functions for correct standard I/O. - _LARGEFILE64_SOURCE Additional functionality from LFS for large files. -@@ -69,7 +70,7 @@ - The `-ansi' switch to the GNU C compiler defines __STRICT_ANSI__. - If none of these are defined, the default is to have _SVID_SOURCE, - _BSD_SOURCE, and _POSIX_SOURCE set to one and _POSIX_C_SOURCE set to -- 199506L. If more than one of these are defined, they accumulate. -+ 200112L. If more than one of these are defined, they accumulate. - For example __STRICT_ANSI__, _POSIX_SOURCE and _POSIX_C_SOURCE - together give you ISO C, 1003.1, and 1003.2, but nothing else. - -@@ -77,6 +78,7 @@ - header files to decide what to declare or define: - - __USE_ISOC99 Define ISO C99 things. -+ __USE_ISOC95 Define ISO C90 AMD1 (C95) things. - __USE_POSIX Define IEEE Std 1003.1 things. - __USE_POSIX2 Define IEEE Std 1003.2 things. - __USE_POSIX199309 Define IEEE Std 1003.1, and .1b things. -@@ -85,6 +87,7 @@ - __USE_XOPEN_EXTENDED Define X/Open Unix things. - __USE_UNIX98 Define Single Unix V2 things. - __USE_XOPEN2K Define XPG6 things. -+ __USE_XOPEN2K8 Define XPG7 things. - __USE_LARGEFILE Define correct standard I/O things. - __USE_LARGEFILE64 Define LFS things with separate names. - __USE_FILE_OFFSET64 Define 64bit interface as default. -@@ -111,6 +114,7 @@ - - /* Undefine everything, so we get a clean slate. */ - #undef __USE_ISOC99 -+#undef __USE_ISOC95 - #undef __USE_POSIX - #undef __USE_POSIX2 - #undef __USE_POSIX199309 -@@ -119,6 +123,7 @@ - #undef __USE_XOPEN_EXTENDED - #undef __USE_UNIX98 - #undef __USE_XOPEN2K -+#undef __USE_XOPEN2K8 - #undef __USE_LARGEFILE - #undef __USE_LARGEFILE64 - #undef __USE_FILE_OFFSET64 -@@ -171,9 +176,9 @@ - # undef _POSIX_SOURCE - # define _POSIX_SOURCE 1 - # undef _POSIX_C_SOURCE --# define _POSIX_C_SOURCE 199506L -+# define _POSIX_C_SOURCE 200809L - # undef _XOPEN_SOURCE --# define _XOPEN_SOURCE 600 -+# define _XOPEN_SOURCE 700 - # undef _XOPEN_SOURCE_EXTENDED - # define _XOPEN_SOURCE_EXTENDED 1 - # ifdef __UCLIBC_HAS_LFS__ -@@ -207,6 +212,12 @@ - # define __USE_ISOC99 1 - #endif - -+/* This is to enable the ISO C90 Amendment 1:1995 extension. */ -+#if (defined _ISOC99_SOURCE || defined _ISOC9X_SOURCE \ -+ || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199409L)) -+# define __USE_ISOC95 1 -+#endif -+ - /* If none of the ANSI/POSIX macros are defined, use POSIX.1 and POSIX.2 - (and IEEE Std 1003.1b-1993 unless _XOPEN_SOURCE is defined). */ - #if ((!defined __STRICT_ANSI__ || (_XOPEN_SOURCE - 0) >= 500) && \ -@@ -214,9 +225,14 @@ - # define _POSIX_SOURCE 1 - # if defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 500 - # define _POSIX_C_SOURCE 2 --# else -+# elif defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 600 - # define _POSIX_C_SOURCE 199506L -+# elif defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) < 700 -+# define _POSIX_C_SOURCE 200112L -+# else -+# define _POSIX_C_SOURCE 200809L - # endif -+# define __USE_POSIX_IMPLICITLY 1 - #endif - - #if defined _POSIX_SOURCE || _POSIX_C_SOURCE >= 1 || defined _XOPEN_SOURCE -@@ -237,6 +253,14 @@ - - #if (_POSIX_C_SOURCE - 0) >= 200112L - # define __USE_XOPEN2K 1 -+# undef __USE_ISOC99 -+# define __USE_ISOC99 1 -+#endif -+ -+#if (_POSIX_C_SOURCE - 0) >= 200809L -+# define __USE_XOPEN2K8 1 -+# undef _ATFILE_SOURCE -+# define _ATFILE_SOURCE 1 - #endif - - #ifdef _XOPEN_SOURCE -@@ -247,6 +271,9 @@ - # undef _LARGEFILE_SOURCE - # define _LARGEFILE_SOURCE 1 - # if (_XOPEN_SOURCE - 0) >= 600 -+# if (_XOPEN_SOURCE - 0) >= 700 -+# define __USE_XOPEN2K8 1 -+# endif - # define __USE_XOPEN2K 1 - # undef __USE_ISOC99 - # define __USE_ISOC99 1 -@@ -313,7 +340,7 @@ - - #ifdef __UCLIBC_HAS_WCHAR__ - /* wchar_t uses ISO 10646-1 (2nd ed., published 2000-09-15) / Unicode 3.1. */ --# define __STDC_ISO_10646__ 200009L -+#define __STDC_ISO_10646__ 200009L - #endif - - /* There is an unwholesomely huge amount of code out there that depends on the -@@ -406,10 +433,6 @@ - # define __USE_LARGEFILE64 1 - #endif - --/* uClibc does not support *at interfaces. */ --#undef _ATFILE_SOURCE --#undef __USE_ATFILE -- - #ifdef _LIBC - # include - #endif -diff -Naur uClibc-0.9.30.1/include/stdio.h uClibc-0.9.30.1.patch/include/stdio.h ---- uClibc-0.9.30.1/include/stdio.h 2008-09-30 14:17:04.000000000 +0200 -+++ uClibc-0.9.30.1.patch/include/stdio.h 2009-08-15 10:03:32.684355210 +0200 -@@ -147,6 +147,11 @@ - extern int rename (__const char *__old, __const char *__new) __THROW; - __END_NAMESPACE_STD - -+#ifdef __USE_ATFILE -+/* Rename file OLD relative to OLDFD to NEW relative to NEWFD. */ -+extern int renameat (int __oldfd, __const char *__old, int __newfd, -+ __const char *__new) __THROW; -+#endif - - __BEGIN_NAMESPACE_STD - /* Create a temporary file and open it read/write. -diff -Naur uClibc-0.9.30.1/include/sys/stat.h uClibc-0.9.30.1.patch/include/sys/stat.h ---- uClibc-0.9.30.1/include/sys/stat.h 2006-03-01 10:55:06.000000000 +0100 -+++ uClibc-0.9.30.1.patch/include/sys/stat.h 2009-08-15 11:56:12.531353835 +0200 -@@ -1,4 +1,5 @@ --/* Copyright (C) 1991,1992,1995-2004,2005,2006 Free Software Foundation, Inc. -+/* Copyright (C) 1991, 1992, 1995-2004, 2005, 2006, 2007, 2009 -+ Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or -@@ -27,11 +28,12 @@ - - #include /* For __mode_t and __dev_t. */ - --#if defined __USE_XOPEN || defined __USE_MISC -+#if defined __USE_XOPEN || defined __USE_XOPEN2K || defined __USE_MISC \ -+ || defined __USE_ATFILE - # if defined __USE_XOPEN || defined __USE_XOPEN2K - # define __need_time_t - # endif --# ifdef __USE_MISC -+# if defined __USE_MISC || defined __USE_ATFILE - # define __need_timespec - # endif - # include /* For time_t resp. timespec. */ -@@ -247,12 +249,14 @@ - # endif - # endif - -+# ifdef __USE_LARGEFILE64 - extern int fstatat64 (int __fd, __const char *__restrict __file, - struct stat64 *__restrict __buf, int __flag) - __THROW __nonnull ((2, 3)); -+# endif - #endif - --#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED -+#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K - # ifndef __USE_FILE_OFFSET64 - /* Get file attributes about FILE and put them in BUF. - If FILE is a symbolic link, do not follow it. */ -@@ -296,7 +300,8 @@ - #ifdef __USE_ATFILE - /* Set file access permissions of FILE relative to - the directory FD is open on. */ --extern int fchmodat (int __fd, __const char *__file, __mode_t mode, int __flag) -+extern int fchmodat (int __fd, __const char *__file, __mode_t __mode, -+ int __flag) - __THROW __nonnull ((2)) __wur; - #endif /* Use ATFILE. */ - -@@ -330,14 +335,15 @@ - #if defined __USE_MISC || defined __USE_BSD || defined __USE_XOPEN_EXTENDED - extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev) - __THROW __nonnull ((1)); --#endif - --#ifdef __USE_ATFILE -+# ifdef __USE_ATFILE - /* Like mknod, create a new device file with permission bits MODE and - device number DEV. But interpret relative PATH names relative to - the directory associated with FD. */ - extern int mknodat (int __fd, __const char *__path, __mode_t __mode, - __dev_t __dev) __THROW __nonnull ((2)); -+libc_hidden_proto(mknodat) -+# endif - #endif - - -@@ -352,7 +358,21 @@ - extern int mkfifoat (int __fd, __const char *__path, __mode_t __mode) - __THROW __nonnull ((2)); - #endif -+ -+#ifdef __USE_ATFILE -+/* Set file access and modification times relative to directory file -+ descriptor. */ -+extern int utimensat (int __fd, __const char *__path, -+ __const struct timespec __times[2], -+ int __flags) -+ __THROW __nonnull ((2)); -+#endif - -+#ifdef __USE_XOPEN2K8 -+/* Set file access and modification times of the file associated with FD. */ -+extern int futimens (int __fd, __const struct timespec __times[2]) __THROW; -+#endif -+ - /* on uClibc we have unversioned struct stat and mknod. - * bits/stat.h is filled with wrong info, so we undo it here. */ - #undef _STAT_VER -diff -Naur uClibc-0.9.30.1/include/sys/time.h uClibc-0.9.30.1.patch/include/sys/time.h ---- uClibc-0.9.30.1/include/sys/time.h 2005-11-30 18:07:06.000000000 +0100 -+++ uClibc-0.9.30.1.patch/include/sys/time.h 2009-08-15 10:03:32.697354509 +0200 -@@ -148,7 +148,7 @@ - extern int futimes (int __fd, __const struct timeval __tvp[2]) __THROW; - #endif - --#if 0 /*def __USE_GNU*/ -+#ifdef __USE_GNU - /* Change the access time of FILE relative to FD to TVP[0] and the - modification time of FILE to TVP[1]. If TVP is a null pointer, use - the current time instead. Returns 0 on success, -1 on errors. */ -diff -Naur uClibc-0.9.30.1/libc/misc/dirent/opendir.c uClibc-0.9.30.1.patch/libc/misc/dirent/opendir.c ---- uClibc-0.9.30.1/libc/misc/dirent/opendir.c 2008-09-09 14:04:00.000000000 +0200 -+++ uClibc-0.9.30.1.patch/libc/misc/dirent/opendir.c 2009-08-15 12:21:21.758478373 +0200 -@@ -12,6 +12,7 @@ - #include - #include - #include -+#include - #include "dirstream.h" - - libc_hidden_proto(opendir) -@@ -21,6 +22,53 @@ - libc_hidden_proto(stat) - libc_hidden_proto(fstat) - -+static DIR *fd_to_DIR(int fd, __blksize_t size) -+{ -+ DIR *ptr; -+ -+ ptr = malloc(sizeof(*ptr)); -+ if (!ptr) -+ return NULL; -+ -+ ptr->dd_fd = fd; -+ ptr->dd_nextloc = ptr->dd_size = ptr->dd_nextoff = 0; -+ ptr->dd_max = size; -+ if (ptr->dd_max < 512) -+ ptr->dd_max = 512; -+ -+ ptr->dd_buf = calloc(1, ptr->dd_max); -+ if (!ptr->dd_buf) { -+ free(ptr); -+ return NULL; -+ } -+ __pthread_mutex_init(&ptr->dd_lock, NULL); -+ -+ return ptr; -+} -+ -+DIR *fdopendir(int fd) -+{ -+ int flags; -+ struct stat st; -+ -+ if (fstat(fd, &st)) -+ return NULL; -+ if (!S_ISDIR(st.st_mode)) { -+ __set_errno(ENOTDIR); -+ return NULL; -+ } -+ -+ flags = fcntl(fd, F_GETFL); -+ if (flags == -1) -+ return NULL; -+ if ((flags & O_ACCMODE) == O_WRONLY) { -+ __set_errno(EINVAL); -+ return NULL; -+ } -+ -+ return fd_to_DIR(fd, st.st_blksize); -+} -+ - /* opendir just makes an open() call - it return NULL if it fails - * (open sets errno), otherwise it returns a DIR * pointer. - */ -@@ -61,23 +109,12 @@ - __set_errno(saved_errno); - return NULL; - } -- if (!(ptr = malloc(sizeof(*ptr)))) -- goto nomem_close_and_ret; - -- ptr->dd_fd = fd; -- ptr->dd_nextloc = ptr->dd_size = ptr->dd_nextoff = 0; -- ptr->dd_max = statbuf.st_blksize; -- if (ptr->dd_max < 512) -- ptr->dd_max = 512; -- -- if (!(ptr->dd_buf = calloc(1, ptr->dd_max))) { -- free(ptr); --nomem_close_and_ret: -+ ptr = fd_to_DIR(fd, statbuf.st_blksize); -+ if (!ptr) { - close(fd); - __set_errno(ENOMEM); -- return NULL; - } -- __pthread_mutex_init(&(ptr->dd_lock), NULL); - return ptr; - } - libc_hidden_def(opendir) -diff -Naur uClibc-0.9.30.1/libc/sysdeps/linux/common/faccessat.c uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/faccessat.c ---- uClibc-0.9.30.1/libc/sysdeps/linux/common/faccessat.c 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/faccessat.c 2009-08-15 10:03:32.699355556 +0200 -@@ -0,0 +1,16 @@ -+/* -+ * faccessat() for uClibc -+ * -+ * Copyright (C) 2009 Analog Devices Inc. -+ * -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include -+#include -+ -+#ifdef __NR_faccessat -+_syscall4(int, faccessat, int, fd, const char *, file, int, type, int, flag) -+#else -+/* should add emulation with faccess() and /proc/self/fd/ ... */ -+#endif -diff -Naur uClibc-0.9.30.1/libc/sysdeps/linux/common/fchmodat.c uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/fchmodat.c ---- uClibc-0.9.30.1/libc/sysdeps/linux/common/fchmodat.c 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/fchmodat.c 2009-08-15 10:03:32.728479172 +0200 -@@ -0,0 +1,16 @@ -+/* -+ * fchmodat() for uClibc -+ * -+ * Copyright (C) 2009 Analog Devices Inc. -+ * -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include -+#include -+ -+#ifdef __NR_fchmodat -+_syscall4(int, fchmodat, int, fd, const char *, file, mode_t, mode, int, flag) -+#else -+/* should add emulation with fchmod() and /proc/self/fd/ ... */ -+#endif -diff -Naur uClibc-0.9.30.1/libc/sysdeps/linux/common/fchownat.c uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/fchownat.c ---- uClibc-0.9.30.1/libc/sysdeps/linux/common/fchownat.c 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/fchownat.c 2009-08-15 10:03:32.729480080 +0200 -@@ -0,0 +1,16 @@ -+/* -+ * fchownat() for uClibc -+ * -+ * Copyright (C) 2009 Analog Devices Inc. -+ * -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include -+#include -+ -+#ifdef __NR_fchownat -+_syscall5(int, fchownat, int, fd, const char *, file, uid_t, owner, gid_t, group, int, flag) -+#else -+/* should add emulation with fchown() and /proc/self/fd/ ... */ -+#endif -diff -Naur uClibc-0.9.30.1/libc/sysdeps/linux/common/fstatat64.c uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/fstatat64.c ---- uClibc-0.9.30.1/libc/sysdeps/linux/common/fstatat64.c 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/fstatat64.c 2009-08-15 10:03:32.732479171 +0200 -@@ -0,0 +1,31 @@ -+/* -+ * fstatat64() for uClibc -+ * -+ * Copyright (C) 2009 Analog Devices Inc. -+ * -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include -+#include -+#include "xstatconv.h" -+ -+#ifdef __UCLIBC_HAS_LFS__ -+ -+#ifdef __NR_fstatat64 -+int fstatat64(int fd, const char *file, struct stat64 *buf, int flag) -+{ -+ int ret; -+ struct kernel_stat64 kbuf; -+ -+ ret = INLINE_SYSCALL(fstatat64, 4, fd, file, &kbuf, flag); -+ if (ret == 0) -+ __xstat64_conv(&kbuf, buf); -+ -+ return ret; -+} -+#else -+/* should add emulation with fstat64() and /proc/self/fd/ ... */ -+#endif -+ -+#endif -diff -Naur uClibc-0.9.30.1/libc/sysdeps/linux/common/fstatat.c uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/fstatat.c ---- uClibc-0.9.30.1/libc/sysdeps/linux/common/fstatat.c 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/fstatat.c 2009-08-15 10:03:32.731479102 +0200 -@@ -0,0 +1,27 @@ -+/* -+ * fstatat() for uClibc -+ * -+ * Copyright (C) 2009 Analog Devices Inc. -+ * -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include -+#include -+#include "xstatconv.h" -+ -+#ifdef __NR_fstatat64 -+int fstatat(int fd, const char *file, struct stat *buf, int flag) -+{ -+ int ret; -+ struct kernel_stat kbuf; -+ -+ ret = INLINE_SYSCALL(fstatat64, 4, fd, file, &kbuf, flag); -+ if (ret == 0) -+ __xstat_conv(&kbuf, buf); -+ -+ return ret; -+} -+#else -+/* should add emulation with fstat() and /proc/self/fd/ ... */ -+#endif -diff -Naur uClibc-0.9.30.1/libc/sysdeps/linux/common/futimesat.c uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/futimesat.c ---- uClibc-0.9.30.1/libc/sysdeps/linux/common/futimesat.c 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/futimesat.c 2009-08-15 10:03:32.733494676 +0200 -@@ -0,0 +1,16 @@ -+/* -+ * futimesat() for uClibc -+ * -+ * Copyright (C) 2009 Analog Devices Inc. -+ * -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include -+#include -+ -+#ifdef __NR_futimesat -+_syscall3(int, futimesat, int, fd, const char *, file, const struct timeval *, tvp) -+#else -+/* should add emulation with futimes() and /proc/self/fd/ ... */ -+#endif -diff -Naur uClibc-0.9.30.1/libc/sysdeps/linux/common/linkat.c uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/linkat.c ---- uClibc-0.9.30.1/libc/sysdeps/linux/common/linkat.c 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/linkat.c 2009-08-15 10:03:32.734479799 +0200 -@@ -0,0 +1,16 @@ -+/* -+ * linkat() for uClibc -+ * -+ * Copyright (C) 2009 Analog Devices Inc. -+ * -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include -+#include -+ -+#ifdef __NR_linkat -+_syscall5(int, linkat, int, fromfd, const char *, from, int, tofd, const char *, to, int, flags) -+#else -+/* should add emulation with link() and /proc/self/fd/ ... */ -+#endif -diff -Naur uClibc-0.9.30.1/libc/sysdeps/linux/common/mkdirat.c uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/mkdirat.c ---- uClibc-0.9.30.1/libc/sysdeps/linux/common/mkdirat.c 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/mkdirat.c 2009-08-15 10:03:32.738479729 +0200 -@@ -0,0 +1,16 @@ -+/* -+ * mkdirat() for uClibc -+ * -+ * Copyright (C) 2009 Analog Devices Inc. -+ * -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include -+#include -+ -+#ifdef __NR_mkdirat -+_syscall3(int, mkdirat, int, fd, const char *, path, mode_t, mode) -+#else -+/* should add emulation with mkdir() and /proc/self/fd/ ... */ -+#endif -diff -Naur uClibc-0.9.30.1/libc/sysdeps/linux/common/mkfifoat.c uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/mkfifoat.c ---- uClibc-0.9.30.1/libc/sysdeps/linux/common/mkfifoat.c 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/mkfifoat.c 2009-08-15 10:03:32.744479868 +0200 -@@ -0,0 +1,19 @@ -+/* -+ * mkfifoat() for uClibc -+ * -+ * Copyright (C) 2009 Analog Devices Inc. -+ * -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include -+#include -+ -+#ifdef __NR_mknodat -+int mkfifoat(int fd, const char *path, mode_t mode) -+{ -+ return mknodat(fd, path, mode | S_IFIFO, 0); -+} -+#else -+/* should add emulation with mkfifo() and /proc/self/fd/ ... */ -+#endif -diff -Naur uClibc-0.9.30.1/libc/sysdeps/linux/common/mknodat.c uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/mknodat.c ---- uClibc-0.9.30.1/libc/sysdeps/linux/common/mknodat.c 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/mknodat.c 2009-08-15 10:03:32.751479587 +0200 -@@ -0,0 +1,25 @@ -+/* -+ * mknodat() for uClibc -+ * -+ * Copyright (C) 2009 Analog Devices Inc. -+ * -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include -+#include -+ -+#ifdef __NR_mknodat -+int mknodat(int fd, const char *path, mode_t mode, dev_t dev) -+{ -+ unsigned long long int k_dev; -+ -+ /* We must convert the value to dev_t type used by the kernel. */ -+ k_dev = (dev) & ((1ULL << 32) - 1); -+ -+ return INLINE_SYSCALL(mknodat, 4, fd, path, mode, (unsigned int)k_dev); -+} -+libc_hidden_def(mknodat) -+#else -+/* should add emulation with mknod() and /proc/self/fd/ ... */ -+#endif -diff -Naur uClibc-0.9.30.1/libc/sysdeps/linux/common/openat64.c uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/openat64.c ---- uClibc-0.9.30.1/libc/sysdeps/linux/common/openat64.c 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/openat64.c 2009-08-15 10:03:32.759359038 +0200 -@@ -0,0 +1,25 @@ -+/* -+ * openat() for uClibc -+ * -+ * Copyright (C) 2009 Analog Devices Inc. -+ * -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ */ -+ -+#define openat64 __xx_openat -+#include -+#include -+#undef openat64 -+ -+#ifdef __UCLIBC_HAS_LFS__ -+ -+#ifdef __NR_openat -+int openat64(int fd, const char *file, int oflag, mode_t mode) -+{ -+ return openat(fd, file, oflag | O_LARGEFILE, mode); -+} -+#else -+/* should add emulation with open() and /proc/self/fd/ ... */ -+#endif -+ -+#endif -diff -Naur uClibc-0.9.30.1/libc/sysdeps/linux/common/openat.c uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/openat.c ---- uClibc-0.9.30.1/libc/sysdeps/linux/common/openat.c 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/openat.c 2009-08-15 10:03:32.755477351 +0200 -@@ -0,0 +1,18 @@ -+/* -+ * openat() for uClibc -+ * -+ * Copyright (C) 2009 Analog Devices Inc. -+ * -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ */ -+ -+#define openat __xx_openat -+#include -+#include -+#undef openat -+ -+#ifdef __NR_openat -+_syscall4(int, openat, int, fd, const char *, file, int, oflag, mode_t, mode) -+#else -+/* should add emulation with open() and /proc/self/fd/ ... */ -+#endif -diff -Naur uClibc-0.9.30.1/libc/sysdeps/linux/common/readlinkat.c uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/readlinkat.c ---- uClibc-0.9.30.1/libc/sysdeps/linux/common/readlinkat.c 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/readlinkat.c 2009-08-15 10:03:32.762393051 +0200 -@@ -0,0 +1,16 @@ -+/* -+ * readlinkat() for uClibc -+ * -+ * Copyright (C) 2009 Analog Devices Inc. -+ * -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include -+#include -+ -+#ifdef __NR_readlinkat -+_syscall4(ssize_t, readlinkat, int, fd, const char *, path, char *, buf, size_t, len) -+#else -+/* should add emulation with readlink() and /proc/self/fd/ ... */ -+#endif -diff -Naur uClibc-0.9.30.1/libc/sysdeps/linux/common/renameat.c uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/renameat.c ---- uClibc-0.9.30.1/libc/sysdeps/linux/common/renameat.c 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/renameat.c 2009-08-15 10:03:32.767352332 +0200 -@@ -0,0 +1,16 @@ -+/* -+ * renameat() for uClibc -+ * -+ * Copyright (C) 2009 Analog Devices Inc. -+ * -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include -+#include -+ -+#ifdef __NR_renameat -+_syscall4(int, renameat, int, oldfd, const char *, old, int, newfd, const char *, new) -+#else -+/* should add emulation with rename() and /proc/self/fd/ ... */ -+#endif -diff -Naur uClibc-0.9.30.1/libc/sysdeps/linux/common/symlinkat.c uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/symlinkat.c ---- uClibc-0.9.30.1/libc/sysdeps/linux/common/symlinkat.c 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/symlinkat.c 2009-08-15 10:03:32.770352122 +0200 -@@ -0,0 +1,16 @@ -+/* -+ * symlinkat() for uClibc -+ * -+ * Copyright (C) 2009 Analog Devices Inc. -+ * -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include -+#include -+ -+#ifdef __NR_symlinkat -+_syscall3(int, symlinkat, const char *, from, int, tofd, const char *, to) -+#else -+/* should add emulation with symlink() and /proc/self/fd/ ... */ -+#endif -diff -Naur uClibc-0.9.30.1/libc/sysdeps/linux/common/unlinkat.c uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/unlinkat.c ---- uClibc-0.9.30.1/libc/sysdeps/linux/common/unlinkat.c 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/unlinkat.c 2009-08-15 10:03:32.773353309 +0200 -@@ -0,0 +1,16 @@ -+/* -+ * unlinkat() for uClibc -+ * -+ * Copyright (C) 2009 Analog Devices Inc. -+ * -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include -+#include -+ -+#ifdef __NR_unlinkat -+_syscall3(int, unlinkat, int, fd, const char *, file, int, flag) -+#else -+/* should add emulation with unlink() and /proc/self/fd/ ... */ -+#endif -diff -Naur uClibc-0.9.30.1/libc/sysdeps/linux/common/utimensat.c uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/utimensat.c ---- uClibc-0.9.30.1/libc/sysdeps/linux/common/utimensat.c 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/utimensat.c 2009-08-15 10:03:32.777355124 +0200 -@@ -0,0 +1,16 @@ -+/* -+ * utimensat() for uClibc -+ * -+ * Copyright (C) 2009 Analog Devices Inc. -+ * -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include -+#include -+ -+#ifdef __NR_utimensat -+_syscall4(int, utimensat, int, fd, const char *, path, const struct timespec *, times, int, flags) -+#else -+/* should add emulation with utimens() and /proc/self/fd/ ... */ -+#endif diff --git a/packages/toolchain/devel/uClibc/patches/uClibc-0.9.30.1_ppoll_fix_and_upstream.diff b/packages/toolchain/devel/uClibc/patches/uClibc-0.9.30.1_ppoll_fix_and_upstream.diff deleted file mode 100644 index 33325334f2..0000000000 --- a/packages/toolchain/devel/uClibc/patches/uClibc-0.9.30.1_ppoll_fix_and_upstream.diff +++ /dev/null @@ -1,48 +0,0 @@ -diff -Naur uClibc-0.9.30.1/libc/sysdeps/linux/common/ppoll.c uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/ppoll.c ---- uClibc-0.9.30.1/libc/sysdeps/linux/common/ppoll.c 2008-10-24 10:34:31.000000000 +0200 -+++ uClibc-0.9.30.1.patch/libc/sysdeps/linux/common/ppoll.c 2009-08-15 18:32:11.166479655 +0200 -@@ -17,6 +17,7 @@ - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -+#include - #include - #include - -@@ -24,26 +25,19 @@ - - libc_hidden_proto(ppoll) - --# define __NR___libc_ppoll __NR_ppoll --static __always_inline --_syscall4(int, __libc_ppoll, struct pollfd *, fds, -- nfds_t, nfds, const struct timespec *, timeout, -- const __sigset_t *, sigmask) -- - int --ppoll (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout, -- const __sigset_t *sigmask) -+ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout, -+ const sigset_t *sigmask) - { -- /* The Linux kernel can in some situations update the timeout value. -- We do not want that so use a local variable. */ -- struct timespec tval; -- if (timeout != NULL) -- { -- tval = *timeout; -- timeout = &tval; -- } -+ /* The Linux kernel can in some situations update the timeout value. -+ We do not want that so use a local variable. */ -+ struct timespec tval; -+ if (timeout != NULL) { -+ tval = *timeout; -+ timeout = &tval; -+ } - -- return __libc_ppoll(fds, nfds, timeout, sigmask); -+ return INLINE_SYSCALL(ppoll, 5, fds, nfds, timeout, sigmask, _NSIG / 8); - } - libc_hidden_def(ppoll) - diff --git a/packages/toolchain/devel/uClibc/patches/uClibc-2.9.30.1-getline-upstream.diff b/packages/toolchain/devel/uClibc/patches/uClibc-2.9.30.1-getline-upstream.diff deleted file mode 100644 index 3ff3212c01..0000000000 --- a/packages/toolchain/devel/uClibc/patches/uClibc-2.9.30.1-getline-upstream.diff +++ /dev/null @@ -1,30 +0,0 @@ -diff -Naur uClibc-0.9.30.1/extra/scripts/unifdef.c uClibc-0.9.30.1.patch/extra/scripts/unifdef.c ---- uClibc-0.9.30.1/extra/scripts/unifdef.c 2008-04-28 01:10:00.000000000 +0200 -+++ uClibc-0.9.30.1.patch/extra/scripts/unifdef.c 2009-04-06 13:19:01.225263004 +0200 -@@ -206,7 +206,7 @@ - static void error(const char *); - static int findsym(const char *); - static void flushline(bool); --static Linetype getline(void); -+static Linetype get_line(void); - static Linetype ifeval(const char **); - static void ignoreoff(void); - static void ignoreon(void); -@@ -512,7 +512,7 @@ - - for (;;) { - linenum++; -- lineval = getline(); -+ lineval = get_line(); - trans_table[ifstate[depth]][lineval](); - debug("process %s -> %s depth %d", - linetype_name[lineval], -@@ -526,7 +526,7 @@ - * help from skipcomment(). - */ - static Linetype --getline(void) -+get_line(void) - { - const char *cp; - int cursym; diff --git a/packages/toolchain/devel/uClibc/url b/packages/toolchain/devel/uClibc/url index 4f8022b3d0..78232baf74 100644 --- a/packages/toolchain/devel/uClibc/url +++ b/packages/toolchain/devel/uClibc/url @@ -1 +1 @@ -http://www.uclibc.org/downloads/uClibc-0.9.30.1.tar.bz2 \ No newline at end of file +http://sources.openelec.tv/svn/uClibc-20091005.tar.bz2