From bf5cbe6a5ad0d031d00e10ecbf8615a52eb65342 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Fri, 21 Sep 2012 10:45:38 +0200 Subject: update uClibc to 0.9.33.2 --- toolchain/uClibc/Makefile | 2 +- toolchain/uClibc/Makefile.inc | 4 +- .../uClibc/patches/0.9.32.1/avr32_atomic_fix.patch | 10 + toolchain/uClibc/patches/0.9.32.1/epoll.patch | 19 ++ .../uClibc/patches/0.9.32.1/gnutar-problem.patch | 18 ++ .../uClibc/patches/0.9.32.1/rpath-origin.patch | 174 +++++++++++++++ .../patches/0.9.32.1/uClibc-0.9.32.1-unshare.patch | 82 +++++++ .../uClibc/patches/0.9.32.1/uClibc-sigaction.patch | 155 +++++++++++++ .../patches/0.9.32.1/uClibc-sigaction2.patch | 247 +++++++++++++++++++++ .../patches/0.9.32.1/uClibc-weak-sigprocmask.patch | 21 ++ toolchain/uClibc/patches/avr32_atomic_fix.patch | 10 - toolchain/uClibc/patches/epoll.patch | 19 -- toolchain/uClibc/patches/gnutar-problem.patch | 18 -- toolchain/uClibc/patches/rpath-origin.patch | 174 --------------- .../uClibc/patches/uClibc-0.9.32.1-unshare.patch | 82 ------- toolchain/uClibc/patches/uClibc-sigaction.patch | 155 ------------- toolchain/uClibc/patches/uClibc-sigaction2.patch | 247 --------------------- .../uClibc/patches/uClibc-weak-sigprocmask.patch | 21 -- 18 files changed, 729 insertions(+), 729 deletions(-) create mode 100644 toolchain/uClibc/patches/0.9.32.1/avr32_atomic_fix.patch create mode 100644 toolchain/uClibc/patches/0.9.32.1/epoll.patch create mode 100644 toolchain/uClibc/patches/0.9.32.1/gnutar-problem.patch create mode 100644 toolchain/uClibc/patches/0.9.32.1/rpath-origin.patch create mode 100644 toolchain/uClibc/patches/0.9.32.1/uClibc-0.9.32.1-unshare.patch create mode 100644 toolchain/uClibc/patches/0.9.32.1/uClibc-sigaction.patch create mode 100644 toolchain/uClibc/patches/0.9.32.1/uClibc-sigaction2.patch create mode 100644 toolchain/uClibc/patches/0.9.32.1/uClibc-weak-sigprocmask.patch delete mode 100644 toolchain/uClibc/patches/avr32_atomic_fix.patch delete mode 100644 toolchain/uClibc/patches/epoll.patch delete mode 100644 toolchain/uClibc/patches/gnutar-problem.patch delete mode 100644 toolchain/uClibc/patches/rpath-origin.patch delete mode 100644 toolchain/uClibc/patches/uClibc-0.9.32.1-unshare.patch delete mode 100644 toolchain/uClibc/patches/uClibc-sigaction.patch delete mode 100644 toolchain/uClibc/patches/uClibc-sigaction2.patch delete mode 100644 toolchain/uClibc/patches/uClibc-weak-sigprocmask.patch (limited to 'toolchain/uClibc') diff --git a/toolchain/uClibc/Makefile b/toolchain/uClibc/Makefile index 5d3638cbd..91e3fb654 100644 --- a/toolchain/uClibc/Makefile +++ b/toolchain/uClibc/Makefile @@ -39,7 +39,7 @@ UCLIBCCFG=uclibc.config.little.mips64 endif $(WRKBUILD)/.headers: - $(SED) 's,^CROSS=.*,CROSS=$(TARGET_CROSS),g' $(WRKBUILD)/Rules.mak + $(SED) 's,^CROSS_COMPILE=.*,CROSS_COMPILE=$(TARGET_CROSS),g' $(WRKBUILD)/Rules.mak sed -e 's^KERNEL_HEADERS.*$$KERNEL_HEADERS=\"${STAGING_TARGET_DIR}/usr/include\"' \ $(TOPDIR)/target/$(ADK_TARGET_ARCH)/$(UCLIBCCFG) >${WRKBUILD}/.config ifneq ($(ADK_DEBUG),) diff --git a/toolchain/uClibc/Makefile.inc b/toolchain/uClibc/Makefile.inc index 73a89f91f..cdafb2c9d 100644 --- a/toolchain/uClibc/Makefile.inc +++ b/toolchain/uClibc/Makefile.inc @@ -2,8 +2,8 @@ # material, please see the LICENCE file in the top-level directory. PKG_NAME:= uClibc -PKG_VERSION:= 0.9.32.1 +PKG_VERSION:= 0.9.33.2 PKG_RELEASE:= 1 -PKG_MD5SUM:= ade6e441242be5cdd735fec97954a54a +PKG_MD5SUM:= a338aaffc56f0f5040e6d9fa8a12eda1 PKG_SITES:= http://uclibc.org/downloads/ DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2 diff --git a/toolchain/uClibc/patches/0.9.32.1/avr32_atomic_fix.patch b/toolchain/uClibc/patches/0.9.32.1/avr32_atomic_fix.patch new file mode 100644 index 000000000..5e5460a3d --- /dev/null +++ b/toolchain/uClibc/patches/0.9.32.1/avr32_atomic_fix.patch @@ -0,0 +1,10 @@ +--- 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" \ diff --git a/toolchain/uClibc/patches/0.9.32.1/epoll.patch b/toolchain/uClibc/patches/0.9.32.1/epoll.patch new file mode 100644 index 000000000..4d9cc38cd --- /dev/null +++ b/toolchain/uClibc/patches/0.9.32.1/epoll.patch @@ -0,0 +1,19 @@ +diff -Nur uClibc-0.9.32.orig/libc/sysdeps/linux/common/epoll.c uClibc-0.9.32/libc/sysdeps/linux/common/epoll.c +--- uClibc-0.9.32.orig/libc/sysdeps/linux/common/epoll.c 2011-06-08 21:35:20.000000000 +0200 ++++ uClibc-0.9.32/libc/sysdeps/linux/common/epoll.c 2011-06-15 14:18:06.798202250 +0200 +@@ -67,12 +67,13 @@ + 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; + } diff --git a/toolchain/uClibc/patches/0.9.32.1/gnutar-problem.patch b/toolchain/uClibc/patches/0.9.32.1/gnutar-problem.patch new file mode 100644 index 000000000..a3d71131a --- /dev/null +++ b/toolchain/uClibc/patches/0.9.32.1/gnutar-problem.patch @@ -0,0 +1,18 @@ +diff -Nur uClibc-0.9.32-rc3.orig/Makefile.in uClibc-0.9.32-rc3/Makefile.in +--- uClibc-0.9.32-rc3.orig/Makefile.in 2011-03-16 20:11:13.000000000 +0100 ++++ uClibc-0.9.32-rc3/Makefile.in 2011-05-20 11:16:00.000000000 +0200 +@@ -385,13 +385,13 @@ + ifeq ($(HAVE_SHARED),y) + $(INSTALL) -m 755 $(top_builddir)lib/lib*-$(VERSION).so \ + $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR) +- (cd $(top_builddir)lib && $(TAR) -cf - *.so.*) | $(TAR) -xf - -C $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR) + @if [ -x $(top_builddir)lib/$(UCLIBC_LDSO_NAME)-$(VERSION).so ] ; then \ + set -e; \ + $(SHELL_SET_X); \ + $(INSTALL) -m 755 $(top_builddir)lib/$(UCLIBC_LDSO_NAME)-$(VERSION).so \ + $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR); \ + fi ++ (cd $(top_builddir)lib && $(TAR) -cf - *.so.*) | $(TAR) -xf - -C $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR) + endif + + utils: | pregen diff --git a/toolchain/uClibc/patches/0.9.32.1/rpath-origin.patch b/toolchain/uClibc/patches/0.9.32.1/rpath-origin.patch new file mode 100644 index 000000000..c2bd2e8ab --- /dev/null +++ b/toolchain/uClibc/patches/0.9.32.1/rpath-origin.patch @@ -0,0 +1,174 @@ +diff -Nur uClibc-0.9.32.orig//ldso/ldso/dl-elf.c uClibc-0.9.32/ldso/ldso/dl-elf.c +--- uClibc-0.9.32.orig//ldso/ldso/dl-elf.c 2011-06-08 21:35:20.000000000 +0200 ++++ uClibc-0.9.32/ldso/ldso/dl-elf.c 2011-08-09 11:19:18.325314589 +0200 +@@ -133,53 +133,59 @@ + * in uClibc/ldso/util/ldd.c */ + static struct elf_resolve * + search_for_named_library(const char *name, int secure, const char *path_list, +- struct dyn_elf **rpnt) ++ struct dyn_elf **rpnt, const char *origin) + { +- char *path, *path_n, *mylibname; ++ char *mylibname; ++ const char *p, *pn; + struct elf_resolve *tpnt; +- int done; ++ int plen; + + if (path_list==NULL) + return NULL; + +- /* We need a writable copy of this string, but we don't +- * need this allocated permanently since we don't want +- * to leak memory, so use alloca to put path on the stack */ +- done = _dl_strlen(path_list); +- path = alloca(done + 1); +- + /* another bit of local storage */ + mylibname = alloca(2050); + +- _dl_memcpy(path, path_list, done+1); +- + /* Unlike ldd.c, don't bother to eliminate double //s */ + + /* Replace colons with zeros in path_list */ + /* : at the beginning or end of path maps to CWD */ + /* :: anywhere maps CWD */ + /* "" maps to CWD */ +- done = 0; +- path_n = path; +- do { +- if (*path == 0) { +- *path = ':'; +- done = 1; ++ for (p = path_list; p != NULL; p = pn) { ++ pn = _dl_strchr(p + 1, ':'); ++ if (pn != NULL) { ++ plen = pn - p; ++ pn++; ++ } else ++ plen = _dl_strlen(p); ++ ++ if (plen >= 7 && _dl_memcmp(p, "$ORIGIN", 7) == 0) { ++ int olen; ++ if (secure && plen != 7) ++ continue; ++ if (origin == NULL) ++ continue; ++ for (olen = _dl_strlen(origin) - 1; olen >= 0 && origin[olen] != '/'; olen--) ++ ; ++ if (olen <= 0) ++ continue; ++ _dl_memcpy(&mylibname[0], origin, olen); ++ _dl_memcpy(&mylibname[olen], p + 7, plen - 7); ++ mylibname[olen + plen - 7] = 0; ++ } else if (plen != 0) { ++ _dl_memcpy(mylibname, p, plen); ++ mylibname[plen] = 0; ++ } else { ++ _dl_strcpy(mylibname, "."); + } +- if (*path == ':') { +- *path = 0; +- if (*path_n) +- _dl_strcpy(mylibname, path_n); +- else +- _dl_strcpy(mylibname, "."); /* Assume current dir if empty path */ +- _dl_strcat(mylibname, "/"); +- _dl_strcat(mylibname, name); +- if ((tpnt = _dl_load_elf_shared_library(secure, rpnt, mylibname)) != NULL) +- return tpnt; +- path_n = path+1; +- } +- path++; +- } while (!done); ++ _dl_strcat(mylibname, "/"); ++ _dl_strcat(mylibname, name); ++ ++ tpnt = _dl_load_elf_shared_library(secure, rpnt, mylibname); ++ if (tpnt != NULL) ++ return tpnt; ++ } + return NULL; + } + +@@ -231,7 +237,7 @@ + if (pnt) { + pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB]; + _dl_if_debug_dprint("\tsearching RPATH='%s'\n", pnt); +- if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt)) != NULL) ++ if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt, tpnt->libname)) != NULL) + return tpnt1; + } + #endif +@@ -239,7 +245,7 @@ + /* Check in LD_{ELF_}LIBRARY_PATH, if specified and allowed */ + if (_dl_library_path) { + _dl_if_debug_dprint("\tsearching LD_LIBRARY_PATH='%s'\n", _dl_library_path); +- if ((tpnt1 = search_for_named_library(libname, secure, _dl_library_path, rpnt)) != NULL) ++ if ((tpnt1 = search_for_named_library(libname, secure, _dl_library_path, rpnt, NULL)) != NULL) + { + return tpnt1; + } +@@ -253,7 +259,7 @@ + if (pnt) { + pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB]; + _dl_if_debug_dprint("\tsearching RUNPATH='%s'\n", pnt); +- if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt)) != NULL) ++ if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt, NULL)) != NULL) + return tpnt1; + } + #endif +@@ -287,7 +293,7 @@ + /* Look for libraries wherever the shared library loader + * was installed */ + _dl_if_debug_dprint("\tsearching ldso dir='%s'\n", _dl_ldsopath); +- tpnt1 = search_for_named_library(libname, secure, _dl_ldsopath, rpnt); ++ tpnt1 = search_for_named_library(libname, secure, _dl_ldsopath, rpnt, NULL); + if (tpnt1 != NULL) + return tpnt1; + +@@ -300,7 +306,7 @@ + #ifndef __LDSO_CACHE_SUPPORT__ + ":" UCLIBC_RUNTIME_PREFIX "usr/X11R6/lib" + #endif +- , rpnt); ++ , rpnt, NULL); + if (tpnt1 != NULL) + return tpnt1; + +diff -Nur uClibc-0.9.32.orig//ldso/ldso/ldso.c uClibc-0.9.32/ldso/ldso/ldso.c +--- uClibc-0.9.32.orig//ldso/ldso/ldso.c 2011-06-08 21:35:20.000000000 +0200 ++++ uClibc-0.9.32/ldso/ldso/ldso.c 2011-08-09 11:15:04.135386129 +0200 +@@ -272,6 +272,20 @@ + } + } + ++static void _dl_setup_progname(const char *argv0) ++{ ++ char image[PATH_MAX]; ++ ssize_t s; ++ ++ s = _dl_readlink("/proc/self/exe", image, sizeof(image)); ++ if (s > 0 && image[0] == '/') { ++ image[s] = 0; ++ _dl_progname = _dl_strdup(image); ++ } else if (argv0) { ++ _dl_progname = argv0; ++ } ++} ++ + void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr, + ElfW(auxv_t) auxvt[AT_EGID + 1], char **envp, + char **argv +@@ -321,9 +335,7 @@ + * been fixed up by now. Still no function calls outside of this + * library, since the dynamic resolver is not yet ready. + */ +- if (argv[0]) { +- _dl_progname = argv[0]; +- } ++ _dl_setup_progname(argv[0]); + + if (_start == (void *) auxvt[AT_ENTRY].a_un.a_val) { + _dl_dprintf(_dl_debug_file, "Standalone execution is not supported yet\n"); diff --git a/toolchain/uClibc/patches/0.9.32.1/uClibc-0.9.32.1-unshare.patch b/toolchain/uClibc/patches/0.9.32.1/uClibc-0.9.32.1-unshare.patch new file mode 100644 index 000000000..5820e15bb --- /dev/null +++ b/toolchain/uClibc/patches/0.9.32.1/uClibc-0.9.32.1-unshare.patch @@ -0,0 +1,82 @@ +Backport of unshare() syscall. +From uClibc git 19dd090a0f68765db87990ef8eda9bf77bb29581 + +Signed-off-by: Gustavo Zacarias + +--- +diff -Nura uClibc-0.9.32.orig/libc/sysdeps/linux/common/bits/sched.h uClibc-0.9.32/libc/sysdeps/linux/common/bits/sched.h +--- uClibc-0.9.32.orig/libc/sysdeps/linux/common/bits/sched.h 2011-12-02 23:54:30.571841170 -0300 ++++ uClibc-0.9.32/libc/sysdeps/linux/common/bits/sched.h 2011-12-02 23:57:45.874205079 -0300 +@@ -58,7 +58,13 @@ + force CLONE_PTRACE on this clone. */ + # define CLONE_CHILD_SETTID 0x01000000 /* Store TID in userlevel buffer in + the child. */ +-# define CLONE_STOPPED 0x02000000 /* Start in stopped state. */ ++# define CLONE_STOPPED 0x02000000 /* Start in stopped state. */ ++# define CLONE_NEWUTS 0x04000000 /* New utsname group. */ ++# define CLONE_NEWIPC 0x08000000 /* New ipcs. */ ++# define CLONE_NEWUSER 0x10000000 /* New user namespace. */ ++# define CLONE_NEWPID 0x20000000 /* New pid namespace. */ ++# define CLONE_NEWNET 0x40000000 /* New network namespace. */ ++# define CLONE_IO 0x80000000 /* Clone I/O context. */ + #endif + + /* The official definition. */ +@@ -74,11 +80,9 @@ + extern int clone (int (*__fn) (void *__arg), void *__child_stack, + int __flags, void *__arg, ...) __THROW; + +-#if 0 + /* Unshare the specified resources. */ + extern int unshare (int __flags) __THROW; + #endif +-#endif + + __END_DECLS + +diff -Nura uClibc-0.9.32.orig/libc/sysdeps/linux/common/Makefile.in uClibc-0.9.32/libc/sysdeps/linux/common/Makefile.in +--- uClibc-0.9.32.orig/libc/sysdeps/linux/common/Makefile.in 2011-12-02 23:54:30.577841215 -0300 ++++ uClibc-0.9.32/libc/sysdeps/linux/common/Makefile.in 2011-12-02 23:56:08.801527166 -0300 +@@ -24,7 +24,8 @@ + 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 timerfd.c uselib.c vhangup.c ++ sync_file_range.c sysctl.c sysinfo.c timerfd.c unshare.c uselib.c \ ++ vhangup.c + # NPTL needs these internally: madvise.c + CSRC-$(findstring y,$(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_THREADS_NATIVE)) += madvise.c + ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y) +diff -Nura uClibc-0.9.32.orig/libc/sysdeps/linux/common/stubs.c uClibc-0.9.32/libc/sysdeps/linux/common/stubs.c +--- uClibc-0.9.32.orig/libc/sysdeps/linux/common/stubs.c 2011-12-02 23:54:30.577841215 -0300 ++++ uClibc-0.9.32/libc/sysdeps/linux/common/stubs.c 2011-12-02 23:58:18.803435042 -0300 +@@ -278,6 +278,10 @@ + make_stub(umount2) + #endif + ++#if !defined __NR_unshare && defined __UCLIBC_LINUX_SPECIFIC__ ++make_stub(unshare) ++#endif ++ + #ifndef __NR_utimensat + make_stub(futimens) + make_stub(utimensat) +diff -Nura uClibc-0.9.32.orig/libc/sysdeps/linux/common/unshare.c uClibc-0.9.32/libc/sysdeps/linux/common/unshare.c +--- uClibc-0.9.32.orig/libc/sysdeps/linux/common/unshare.c 1969-12-31 21:00:00.000000000 -0300 ++++ uClibc-0.9.32/libc/sysdeps/linux/common/unshare.c 2011-12-02 23:58:42.693601880 -0300 +@@ -0,0 +1,15 @@ ++/* vi: set sw=4 ts=4: */ ++/* ++ * unshare() for uClibc ++ * ++ * Copyright (C) 2011 Henning Heinold ++ * ++ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. ++ */ ++ ++#include ++#include ++ ++#if defined __NR_unshare ++_syscall1(int, unshare, int, flags) ++#endif diff --git a/toolchain/uClibc/patches/0.9.32.1/uClibc-sigaction.patch b/toolchain/uClibc/patches/0.9.32.1/uClibc-sigaction.patch new file mode 100644 index 000000000..0077191e5 --- /dev/null +++ b/toolchain/uClibc/patches/0.9.32.1/uClibc-sigaction.patch @@ -0,0 +1,155 @@ +diff -Nur uClibc-0.9.32.1/libc/signal/sigaction.c uClibc.new/libc/signal/sigaction.c +--- uClibc-0.9.32.1/libc/signal/sigaction.c 2011-12-30 12:11:07.000000000 +0100 ++++ uClibc.new/libc/signal/sigaction.c 2012-02-17 14:49:51.000000000 +0100 +@@ -82,6 +82,11 @@ + + + #ifndef LIBC_SIGACTION ++# ifndef __UCLIBC_HAS_THREADS__ ++strong_alias(__libc_sigaction,sigaction) ++libc_hidden_def(sigaction) ++# else + weak_alias(__libc_sigaction,sigaction) + libc_hidden_weak(sigaction) ++# endif + #endif +diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/arm/sigaction.c uClibc.new/libc/sysdeps/linux/arm/sigaction.c +--- uClibc-0.9.32.1/libc/sysdeps/linux/arm/sigaction.c 2011-12-30 12:11:07.000000000 +0100 ++++ uClibc.new/libc/sysdeps/linux/arm/sigaction.c 2012-02-17 14:49:51.000000000 +0100 +@@ -96,6 +96,11 @@ + + + #ifndef LIBC_SIGACTION ++# ifndef __UCLIBC_HAS_THREADS__ ++strong_alias(__libc_sigaction,sigaction) ++libc_hidden_def(sigaction) ++# else + weak_alias(__libc_sigaction,sigaction) + libc_hidden_weak(sigaction) ++# endif + #endif +diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/avr32/sigaction.c uClibc.new/libc/sysdeps/linux/avr32/sigaction.c +--- uClibc-0.9.32.1/libc/sysdeps/linux/avr32/sigaction.c 2011-12-30 12:11:07.000000000 +0100 ++++ uClibc.new/libc/sysdeps/linux/avr32/sigaction.c 2012-02-17 14:49:51.000000000 +0100 +@@ -38,6 +38,11 @@ + } + + #ifndef LIBC_SIGACTION +-weak_alias(__libc_sigaction, sigaction) ++# ifndef __UCLIBC_HAS_THREADS__ ++strong_alias(__libc_sigaction,sigaction) ++libc_hidden_def(sigaction) ++# else ++weak_alias(__libc_sigaction,sigaction) + libc_hidden_weak(sigaction) ++# endif + #endif +diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/c6x/sigaction.c uClibc.new/libc/sysdeps/linux/c6x/sigaction.c +--- uClibc-0.9.32.1/libc/sysdeps/linux/c6x/sigaction.c 2011-12-30 12:11:07.000000000 +0100 ++++ uClibc.new/libc/sysdeps/linux/c6x/sigaction.c 2012-02-17 14:49:51.000000000 +0100 +@@ -75,10 +75,16 @@ + } + + #ifndef LIBC_SIGACTION ++# ifndef __UCLIBC_HAS_THREADS__ ++strong_alias(__libc_sigaction,sigaction) ++libc_hidden_def(sigaction) ++# else + weak_alias(__libc_sigaction,sigaction) + libc_hidden_weak(sigaction) ++# endif + #endif + ++ + /* NOTE: Please think twice before making any changes to the bits of + code below. GDB needs some intimate knowledge about it to + recognize them as signal trampolines, and make backtraces through +diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/i386/sigaction.c uClibc.new/libc/sysdeps/linux/i386/sigaction.c +--- uClibc-0.9.32.1/libc/sysdeps/linux/i386/sigaction.c 2011-12-30 12:11:07.000000000 +0100 ++++ uClibc.new/libc/sysdeps/linux/i386/sigaction.c 2012-02-17 14:49:51.000000000 +0100 +@@ -95,8 +95,13 @@ + + + #ifndef LIBC_SIGACTION ++# ifndef __UCLIBC_HAS_THREADS__ ++strong_alias(__libc_sigaction,sigaction) ++libc_hidden_def(sigaction) ++# else + weak_alias(__libc_sigaction,sigaction) + libc_hidden_weak(sigaction) ++# endif + #endif + + +diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/mips/sigaction.c uClibc.new/libc/sysdeps/linux/mips/sigaction.c +--- uClibc-0.9.32.1/libc/sysdeps/linux/mips/sigaction.c 2011-12-30 12:11:07.000000000 +0100 ++++ uClibc.new/libc/sysdeps/linux/mips/sigaction.c 2012-02-17 14:49:51.000000000 +0100 +@@ -100,8 +100,13 @@ + + + #ifndef LIBC_SIGACTION ++# ifndef __UCLIBC_HAS_THREADS__ ++strong_alias(__libc_sigaction,sigaction) ++libc_hidden_def(sigaction) ++# else + weak_alias(__libc_sigaction,sigaction) + libc_hidden_weak(sigaction) ++# endif + #endif + + +diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/sparc/sigaction.c uClibc.new/libc/sysdeps/linux/sparc/sigaction.c +--- uClibc-0.9.32.1/libc/sysdeps/linux/sparc/sigaction.c 2011-12-30 12:11:07.000000000 +0100 ++++ uClibc.new/libc/sysdeps/linux/sparc/sigaction.c 2012-02-17 14:49:51.000000000 +0100 +@@ -65,11 +65,18 @@ + return ret; + } + ++ + #ifndef LIBC_SIGACTION ++# ifndef __UCLIBC_HAS_THREADS__ ++strong_alias(__libc_sigaction,sigaction) ++libc_hidden_def(sigaction) ++# else + weak_alias(__libc_sigaction,sigaction) + libc_hidden_weak(sigaction) ++# endif + #endif + ++ + static void + __rt_sigreturn_stub(void) + { +diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/x86_64/sigaction.c uClibc.new/libc/sysdeps/linux/x86_64/sigaction.c +--- uClibc-0.9.32.1/libc/sysdeps/linux/x86_64/sigaction.c 2011-12-30 12:11:07.000000000 +0100 ++++ uClibc.new/libc/sysdeps/linux/x86_64/sigaction.c 2012-02-17 14:49:51.000000000 +0100 +@@ -99,8 +99,13 @@ + + + #ifndef LIBC_SIGACTION ++# ifndef __UCLIBC_HAS_THREADS__ ++strong_alias(__libc_sigaction,sigaction) ++libc_hidden_def(sigaction) ++# else + weak_alias(__libc_sigaction,sigaction) + libc_hidden_weak(sigaction) ++# endif + #endif + + +diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/xtensa/sigaction.c uClibc.new/libc/sysdeps/linux/xtensa/sigaction.c +--- uClibc-0.9.32.1/libc/sysdeps/linux/xtensa/sigaction.c 2011-12-30 12:11:07.000000000 +0100 ++++ uClibc.new/libc/sysdeps/linux/xtensa/sigaction.c 2012-02-17 14:49:51.000000000 +0100 +@@ -34,6 +34,11 @@ + } + + #ifndef LIBC_SIGACTION +-weak_alias(__libc_sigaction, sigaction) ++# ifndef __UCLIBC_HAS_THREADS__ ++strong_alias(__libc_sigaction,sigaction) ++libc_hidden_def(sigaction) ++# else ++weak_alias(__libc_sigaction,sigaction) + libc_hidden_weak(sigaction) ++# endif + #endif diff --git a/toolchain/uClibc/patches/0.9.32.1/uClibc-sigaction2.patch b/toolchain/uClibc/patches/0.9.32.1/uClibc-sigaction2.patch new file mode 100644 index 000000000..f33e14dde --- /dev/null +++ b/toolchain/uClibc/patches/0.9.32.1/uClibc-sigaction2.patch @@ -0,0 +1,247 @@ +diff -Nur uClibc-0.9.32.1/libc/signal/Makefile.in uClibc.new/libc/signal/Makefile.in +--- uClibc-0.9.32.1/libc/signal/Makefile.in 2011-12-30 12:11:07.000000000 +0100 ++++ uClibc.new/libc/signal/Makefile.in 2012-02-17 15:13:33.000000000 +0100 +@@ -17,7 +17,7 @@ + CSRC-$(UCLIBC_SUSV4_LEGACY) += sigintr.c + + ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y) +-CSRC-y:=$(filter-out raise.c sigaction.c,$(CSRC-y)) ++CSRC-y:=$(filter-out raise.c,$(CSRC-y)) + endif + + ifneq ($(strip $(ARCH_OBJS)),) +diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/arm/Makefile.arch uClibc.new/libc/sysdeps/linux/arm/Makefile.arch +--- uClibc-0.9.32.1/libc/sysdeps/linux/arm/Makefile.arch 2011-12-30 12:11:07.000000000 +0100 ++++ uClibc.new/libc/sysdeps/linux/arm/Makefile.arch 2012-02-17 15:13:33.000000000 +0100 +@@ -5,11 +5,7 @@ + # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. + # + +-CSRC := brk.c ioperm.c iopl.c mmap.c __syscall_error.c +- +-ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y) +-CSRC += sigaction.c +-endif ++CSRC := brk.c ioperm.c iopl.c mmap.c __syscall_error.c sigaction.c + + SSRC := \ + __longjmp.S setjmp.S bsd-setjmp.S \ +diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/i386/Makefile.arch uClibc.new/libc/sysdeps/linux/i386/Makefile.arch +--- uClibc-0.9.32.1/libc/sysdeps/linux/i386/Makefile.arch 2011-12-30 12:11:07.000000000 +0100 ++++ uClibc.new/libc/sysdeps/linux/i386/Makefile.arch 2012-02-17 15:13:33.000000000 +0100 +@@ -5,11 +5,7 @@ + # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. + # + +-CSRC := brk.c __syscall_error.c +- +-ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y) +-CSRC += sigaction.c +-endif ++CSRC := brk.c __syscall_error.c sigaction.c + + SSRC := \ + __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \ +diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/mips/Makefile.arch uClibc.new/libc/sysdeps/linux/mips/Makefile.arch +--- uClibc-0.9.32.1/libc/sysdeps/linux/mips/Makefile.arch 2011-12-30 12:11:07.000000000 +0100 ++++ uClibc.new/libc/sysdeps/linux/mips/Makefile.arch 2012-02-17 15:13:33.000000000 +0100 +@@ -7,7 +7,7 @@ + + CSRC := \ + __longjmp.c brk.c setjmp_aux.c mmap.c \ +- cacheflush.c pread_write.c sysmips.c _test_and_set.c \ ++ cacheflush.c pread_write.c sigaction.c sysmips.c _test_and_set.c \ + readahead.c + + SSRC := bsd-_setjmp.S bsd-setjmp.S setjmp.S syscall.S pipe.S syscall_error.S +@@ -17,7 +17,6 @@ + endif + + ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y) +-CSRC += sigaction.c + SSRC += vfork.S clone.S + endif + +diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/sparc/Makefile.arch uClibc.new/libc/sysdeps/linux/sparc/Makefile.arch +--- uClibc-0.9.32.1/libc/sysdeps/linux/sparc/Makefile.arch 2011-12-30 12:11:07.000000000 +0100 ++++ uClibc.new/libc/sysdeps/linux/sparc/Makefile.arch 2012-02-17 15:14:20.000000000 +0100 +@@ -5,15 +5,14 @@ + # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. + # + +-CSRC := brk.c __syscall_error.c ++CSRC := brk.c __syscall_error.c sigaction.c + + SSRC := \ + __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \ + syscall.S urem.S udiv.S umul.S sdiv.S rem.S pipe.S + + ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y) +-CSRC += sigaction.c +-SSRC += fork.S vfork.S ++SSRC += fork.S vfork.S clone.S + endif + + # check weather __LONG_DOUBLE_128__ is defined (long double support) +diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/x86_64/Makefile.arch uClibc.new/libc/sysdeps/linux/x86_64/Makefile.arch +--- uClibc-0.9.32.1/libc/sysdeps/linux/x86_64/Makefile.arch 2011-12-30 12:11:07.000000000 +0100 ++++ uClibc.new/libc/sysdeps/linux/x86_64/Makefile.arch 2012-02-17 15:13:33.000000000 +0100 +@@ -5,11 +5,7 @@ + # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. + # + +-CSRC := brk.c __syscall_error.c mmap.c +- +-ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y) +-CSRC += sigaction.c +-endif ++CSRC := brk.c __syscall_error.c sigaction.c mmap.c + + SSRC := \ + __longjmp.S setjmp.S syscall.S bsd-setjmp.S bsd-_setjmp.S +diff -Nur uClibc-0.9.32.1/libpthread/nptl/.gitignore uClibc.new/libpthread/nptl/.gitignore +--- uClibc-0.9.32.1/libpthread/nptl/.gitignore 2011-12-30 12:11:07.000000000 +0100 ++++ uClibc.new/libpthread/nptl/.gitignore 2012-02-17 15:13:33.000000000 +0100 +@@ -24,6 +24,5 @@ + # + # symlinks + # +-sysdeps/pthread/pt-sigaction.c + sysdeps/pthread/pt-sigfillset.c + sysdeps/pthread/pt-sigprocmask.c +diff -Nur uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/Makefile.in uClibc.new/libpthread/nptl/sysdeps/pthread/Makefile.in +--- uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/Makefile.in 2011-12-30 12:11:07.000000000 +0100 ++++ uClibc.new/libpthread/nptl/sysdeps/pthread/Makefile.in 2012-02-17 15:13:33.000000000 +0100 +@@ -42,8 +42,6 @@ + CFLAGS-pthread_spin_destroy.c = -D_GNU_SOURCE + CFLAGS-pthread_spin_init.c = -D_GNU_SOURCE + CFLAGS-pthread_spin_unlock.c = -D_GNU_SOURCE +-CFLAGS-pt-sigaction.c = -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH) \ +- -I$(top_srcdir)libc/signal + CFLAGS-pt-sigfillset.c = -I$(top_srcdir)libc/signal + CFLAGS-pt-sigprocmask.c = -I$(top_srcdir)libc/sysdeps/linux/common + CFLAGS-unwind-forcedunwind.c = -fexceptions -fasynchronous-unwind-tables +@@ -58,10 +56,6 @@ + libpthread-so-y += $(patsubst %,$(libpthread_pthread_OUT)/%.oS, \ + pt-sigaction pt-sigprocmask unwind-forcedunwind) + +-CFLAGS-OMIT-sigaction.c = $(CFLAGS-pthread) +-CFLAGS-sigaction.c = -I$(top_srcdir)libc/signal +-libc-y += $(libpthread_pthread_OUT)/sigaction.o +- + librt-pt-routines-y = librt-cancellation.c + librt-pt-shared-only-routines-y = rt-unwind-resume.c + +@@ -114,7 +108,7 @@ + # impl, but ok. + # Special rules needed since we do objdir->objdir compilation for these 3. + # First symlink them, then build them. Rob would freak out on these. Sheesh! ;) +-pthread-lc-fwd = sigaction sigfillset sigprocmask ++pthread-lc-fwd = sigfillset sigprocmask + $(patsubst %,$(libpthread_pthread_OUT)/pt-%.c,$(pthread-lc-fwd)): | $(libpthread_pthread_OUT) + $(do_ln) $(call rel_srcdir)$(patsubst pt-%,$(libpthread_pthread_DIR)/%,$(@F)) $@ + $(patsubst %,$(libpthread_pthread_OUT)/pt-%.oS,$(pthread-lc-fwd)): $(libpthread_pthread_OUT)/pt-%.oS: $(libpthread_pthread_OUT)/pt-%.c +@@ -131,5 +125,5 @@ + CLEAN_libpthread/nptl/sysdeps/pthread: + $(do_rm) $(addprefix $(libpthread_pthread_OUT)/*., o os oS s S) \ + $(libpthread_pthread_OUT)/defs.h \ +- $(addprefix $(libpthread_pthread_DIR)/,pt-sigaction.c \ ++ $(addprefix $(libpthread_pthread_DIR)/, \ + pt-sigfillset.c pt-sigprocmask.c) +diff -Nur uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/pt-sigaction.c uClibc.new/libpthread/nptl/sysdeps/pthread/pt-sigaction.c +--- uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/pt-sigaction.c 1970-01-01 01:00:00.000000000 +0100 ++++ uClibc.new/libpthread/nptl/sysdeps/pthread/pt-sigaction.c 2012-02-17 15:13:33.000000000 +0100 +@@ -0,0 +1,40 @@ ++/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ Contributed by Ulrich Drepper , 2002. ++ ++ 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 ++ ++/* We use the libc implementation but we tell it to not allow ++ SIGCANCEL or SIGTIMER to be handled. */ ++ ++extern __typeof(sigaction) __libc_sigaction; ++int ++__sigaction (int sig, const struct sigaction *act, struct sigaction *oact) ++{ ++ if (unlikely (sig == SIGCANCEL || sig == SIGSETXID)) ++ { ++ __set_errno (EINVAL); ++ return -1; ++ } ++ ++ return __libc_sigaction (sig, act, oact); ++} ++libc_hidden_proto(sigaction) ++weak_alias (__sigaction, sigaction) ++libc_hidden_weak(sigaction) +diff -Nur uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/sigaction.c uClibc.new/libpthread/nptl/sysdeps/pthread/sigaction.c +--- uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/sigaction.c 2011-12-30 12:11:07.000000000 +0100 ++++ uClibc.new/libpthread/nptl/sysdeps/pthread/sigaction.c 1970-01-01 01:00:00.000000000 +0100 +@@ -1,49 +0,0 @@ +-/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Ulrich Drepper , 2002. +- +- 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 LIBC_SIGACTION +- +-#include +- +-/* We use the libc implementation but we tell it to not allow +- SIGCANCEL or SIGTIMER to be handled. */ +-#define LIBC_SIGACTION 1 +-#include +- +-extern __typeof(sigaction) __sigaction; +-int +-__sigaction (int sig, const struct sigaction *act, struct sigaction *oact) +-{ +- if (__builtin_expect (sig == SIGCANCEL || sig == SIGSETXID, 0)) +- { +- __set_errno (EINVAL); +- return -1; +- } +- +- return __libc_sigaction (sig, act, oact); +-} +-libc_hidden_proto(sigaction) +-weak_alias (__sigaction, sigaction) +-libc_hidden_weak(sigaction) +- +-#else +- +-# include_next +- +-#endif /* LIBC_SIGACTION */ diff --git a/toolchain/uClibc/patches/0.9.32.1/uClibc-weak-sigprocmask.patch b/toolchain/uClibc/patches/0.9.32.1/uClibc-weak-sigprocmask.patch new file mode 100644 index 000000000..a98f5b94d --- /dev/null +++ b/toolchain/uClibc/patches/0.9.32.1/uClibc-weak-sigprocmask.patch @@ -0,0 +1,21 @@ +diff -Nur uClibc-0.9.32.1.orig/libc/sysdeps/linux/common/sigprocmask.c uClibc-0.9.32.1/libc/sysdeps/linux/common/sigprocmask.c +--- uClibc-0.9.32.1.orig/libc/sysdeps/linux/common/sigprocmask.c 2011-12-30 12:11:07.000000000 +0100 ++++ uClibc-0.9.32.1/libc/sysdeps/linux/common/sigprocmask.c 2012-02-18 11:40:09.000000000 +0100 +@@ -23,7 +23,7 @@ + _syscall4(int, __rt_sigprocmask, int, how, const sigset_t *, set, + sigset_t *, oldset, size_t, size) + +-int sigprocmask(int how, const sigset_t * set, sigset_t * oldset) ++int weak_function sigprocmask(int how, const sigset_t * set, sigset_t * oldset) + { + #ifdef SIGCANCEL + sigset_t local_newmask; +@@ -58,7 +58,7 @@ + _syscall3(int, __syscall_sigprocmask, int, how, const sigset_t *, set, + sigset_t *, oldset) + +-int sigprocmask(int how, const sigset_t * set, sigset_t * oldset) ++int weak_function sigprocmask(int how, const sigset_t * set, sigset_t * oldset) + { + #ifdef SIGCANCEL + sigset_t local_newmask; diff --git a/toolchain/uClibc/patches/avr32_atomic_fix.patch b/toolchain/uClibc/patches/avr32_atomic_fix.patch deleted file mode 100644 index 5e5460a3d..000000000 --- a/toolchain/uClibc/patches/avr32_atomic_fix.patch +++ /dev/null @@ -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" \ diff --git a/toolchain/uClibc/patches/epoll.patch b/toolchain/uClibc/patches/epoll.patch deleted file mode 100644 index 4d9cc38cd..000000000 --- a/toolchain/uClibc/patches/epoll.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff -Nur uClibc-0.9.32.orig/libc/sysdeps/linux/common/epoll.c uClibc-0.9.32/libc/sysdeps/linux/common/epoll.c ---- uClibc-0.9.32.orig/libc/sysdeps/linux/common/epoll.c 2011-06-08 21:35:20.000000000 +0200 -+++ uClibc-0.9.32/libc/sysdeps/linux/common/epoll.c 2011-06-15 14:18:06.798202250 +0200 -@@ -67,12 +67,13 @@ - 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; - } diff --git a/toolchain/uClibc/patches/gnutar-problem.patch b/toolchain/uClibc/patches/gnutar-problem.patch deleted file mode 100644 index a3d71131a..000000000 --- a/toolchain/uClibc/patches/gnutar-problem.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff -Nur uClibc-0.9.32-rc3.orig/Makefile.in uClibc-0.9.32-rc3/Makefile.in ---- uClibc-0.9.32-rc3.orig/Makefile.in 2011-03-16 20:11:13.000000000 +0100 -+++ uClibc-0.9.32-rc3/Makefile.in 2011-05-20 11:16:00.000000000 +0200 -@@ -385,13 +385,13 @@ - ifeq ($(HAVE_SHARED),y) - $(INSTALL) -m 755 $(top_builddir)lib/lib*-$(VERSION).so \ - $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR) -- (cd $(top_builddir)lib && $(TAR) -cf - *.so.*) | $(TAR) -xf - -C $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR) - @if [ -x $(top_builddir)lib/$(UCLIBC_LDSO_NAME)-$(VERSION).so ] ; then \ - set -e; \ - $(SHELL_SET_X); \ - $(INSTALL) -m 755 $(top_builddir)lib/$(UCLIBC_LDSO_NAME)-$(VERSION).so \ - $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR); \ - fi -+ (cd $(top_builddir)lib && $(TAR) -cf - *.so.*) | $(TAR) -xf - -C $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR) - endif - - utils: | pregen diff --git a/toolchain/uClibc/patches/rpath-origin.patch b/toolchain/uClibc/patches/rpath-origin.patch deleted file mode 100644 index c2bd2e8ab..000000000 --- a/toolchain/uClibc/patches/rpath-origin.patch +++ /dev/null @@ -1,174 +0,0 @@ -diff -Nur uClibc-0.9.32.orig//ldso/ldso/dl-elf.c uClibc-0.9.32/ldso/ldso/dl-elf.c ---- uClibc-0.9.32.orig//ldso/ldso/dl-elf.c 2011-06-08 21:35:20.000000000 +0200 -+++ uClibc-0.9.32/ldso/ldso/dl-elf.c 2011-08-09 11:19:18.325314589 +0200 -@@ -133,53 +133,59 @@ - * in uClibc/ldso/util/ldd.c */ - static struct elf_resolve * - search_for_named_library(const char *name, int secure, const char *path_list, -- struct dyn_elf **rpnt) -+ struct dyn_elf **rpnt, const char *origin) - { -- char *path, *path_n, *mylibname; -+ char *mylibname; -+ const char *p, *pn; - struct elf_resolve *tpnt; -- int done; -+ int plen; - - if (path_list==NULL) - return NULL; - -- /* We need a writable copy of this string, but we don't -- * need this allocated permanently since we don't want -- * to leak memory, so use alloca to put path on the stack */ -- done = _dl_strlen(path_list); -- path = alloca(done + 1); -- - /* another bit of local storage */ - mylibname = alloca(2050); - -- _dl_memcpy(path, path_list, done+1); -- - /* Unlike ldd.c, don't bother to eliminate double //s */ - - /* Replace colons with zeros in path_list */ - /* : at the beginning or end of path maps to CWD */ - /* :: anywhere maps CWD */ - /* "" maps to CWD */ -- done = 0; -- path_n = path; -- do { -- if (*path == 0) { -- *path = ':'; -- done = 1; -+ for (p = path_list; p != NULL; p = pn) { -+ pn = _dl_strchr(p + 1, ':'); -+ if (pn != NULL) { -+ plen = pn - p; -+ pn++; -+ } else -+ plen = _dl_strlen(p); -+ -+ if (plen >= 7 && _dl_memcmp(p, "$ORIGIN", 7) == 0) { -+ int olen; -+ if (secure && plen != 7) -+ continue; -+ if (origin == NULL) -+ continue; -+ for (olen = _dl_strlen(origin) - 1; olen >= 0 && origin[olen] != '/'; olen--) -+ ; -+ if (olen <= 0) -+ continue; -+ _dl_memcpy(&mylibname[0], origin, olen); -+ _dl_memcpy(&mylibname[olen], p + 7, plen - 7); -+ mylibname[olen + plen - 7] = 0; -+ } else if (plen != 0) { -+ _dl_memcpy(mylibname, p, plen); -+ mylibname[plen] = 0; -+ } else { -+ _dl_strcpy(mylibname, "."); - } -- if (*path == ':') { -- *path = 0; -- if (*path_n) -- _dl_strcpy(mylibname, path_n); -- else -- _dl_strcpy(mylibname, "."); /* Assume current dir if empty path */ -- _dl_strcat(mylibname, "/"); -- _dl_strcat(mylibname, name); -- if ((tpnt = _dl_load_elf_shared_library(secure, rpnt, mylibname)) != NULL) -- return tpnt; -- path_n = path+1; -- } -- path++; -- } while (!done); -+ _dl_strcat(mylibname, "/"); -+ _dl_strcat(mylibname, name); -+ -+ tpnt = _dl_load_elf_shared_library(secure, rpnt, mylibname); -+ if (tpnt != NULL) -+ return tpnt; -+ } - return NULL; - } - -@@ -231,7 +237,7 @@ - if (pnt) { - pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB]; - _dl_if_debug_dprint("\tsearching RPATH='%s'\n", pnt); -- if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt)) != NULL) -+ if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt, tpnt->libname)) != NULL) - return tpnt1; - } - #endif -@@ -239,7 +245,7 @@ - /* Check in LD_{ELF_}LIBRARY_PATH, if specified and allowed */ - if (_dl_library_path) { - _dl_if_debug_dprint("\tsearching LD_LIBRARY_PATH='%s'\n", _dl_library_path); -- if ((tpnt1 = search_for_named_library(libname, secure, _dl_library_path, rpnt)) != NULL) -+ if ((tpnt1 = search_for_named_library(libname, secure, _dl_library_path, rpnt, NULL)) != NULL) - { - return tpnt1; - } -@@ -253,7 +259,7 @@ - if (pnt) { - pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB]; - _dl_if_debug_dprint("\tsearching RUNPATH='%s'\n", pnt); -- if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt)) != NULL) -+ if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt, NULL)) != NULL) - return tpnt1; - } - #endif -@@ -287,7 +293,7 @@ - /* Look for libraries wherever the shared library loader - * was installed */ - _dl_if_debug_dprint("\tsearching ldso dir='%s'\n", _dl_ldsopath); -- tpnt1 = search_for_named_library(libname, secure, _dl_ldsopath, rpnt); -+ tpnt1 = search_for_named_library(libname, secure, _dl_ldsopath, rpnt, NULL); - if (tpnt1 != NULL) - return tpnt1; - -@@ -300,7 +306,7 @@ - #ifndef __LDSO_CACHE_SUPPORT__ - ":" UCLIBC_RUNTIME_PREFIX "usr/X11R6/lib" - #endif -- , rpnt); -+ , rpnt, NULL); - if (tpnt1 != NULL) - return tpnt1; - -diff -Nur uClibc-0.9.32.orig//ldso/ldso/ldso.c uClibc-0.9.32/ldso/ldso/ldso.c ---- uClibc-0.9.32.orig//ldso/ldso/ldso.c 2011-06-08 21:35:20.000000000 +0200 -+++ uClibc-0.9.32/ldso/ldso/ldso.c 2011-08-09 11:15:04.135386129 +0200 -@@ -272,6 +272,20 @@ - } - } - -+static void _dl_setup_progname(const char *argv0) -+{ -+ char image[PATH_MAX]; -+ ssize_t s; -+ -+ s = _dl_readlink("/proc/self/exe", image, sizeof(image)); -+ if (s > 0 && image[0] == '/') { -+ image[s] = 0; -+ _dl_progname = _dl_strdup(image); -+ } else if (argv0) { -+ _dl_progname = argv0; -+ } -+} -+ - void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr, - ElfW(auxv_t) auxvt[AT_EGID + 1], char **envp, - char **argv -@@ -321,9 +335,7 @@ - * been fixed up by now. Still no function calls outside of this - * library, since the dynamic resolver is not yet ready. - */ -- if (argv[0]) { -- _dl_progname = argv[0]; -- } -+ _dl_setup_progname(argv[0]); - - if (_start == (void *) auxvt[AT_ENTRY].a_un.a_val) { - _dl_dprintf(_dl_debug_file, "Standalone execution is not supported yet\n"); diff --git a/toolchain/uClibc/patches/uClibc-0.9.32.1-unshare.patch b/toolchain/uClibc/patches/uClibc-0.9.32.1-unshare.patch deleted file mode 100644 index 5820e15bb..000000000 --- a/toolchain/uClibc/patches/uClibc-0.9.32.1-unshare.patch +++ /dev/null @@ -1,82 +0,0 @@ -Backport of unshare() syscall. -From uClibc git 19dd090a0f68765db87990ef8eda9bf77bb29581 - -Signed-off-by: Gustavo Zacarias - ---- -diff -Nura uClibc-0.9.32.orig/libc/sysdeps/linux/common/bits/sched.h uClibc-0.9.32/libc/sysdeps/linux/common/bits/sched.h ---- uClibc-0.9.32.orig/libc/sysdeps/linux/common/bits/sched.h 2011-12-02 23:54:30.571841170 -0300 -+++ uClibc-0.9.32/libc/sysdeps/linux/common/bits/sched.h 2011-12-02 23:57:45.874205079 -0300 -@@ -58,7 +58,13 @@ - force CLONE_PTRACE on this clone. */ - # define CLONE_CHILD_SETTID 0x01000000 /* Store TID in userlevel buffer in - the child. */ --# define CLONE_STOPPED 0x02000000 /* Start in stopped state. */ -+# define CLONE_STOPPED 0x02000000 /* Start in stopped state. */ -+# define CLONE_NEWUTS 0x04000000 /* New utsname group. */ -+# define CLONE_NEWIPC 0x08000000 /* New ipcs. */ -+# define CLONE_NEWUSER 0x10000000 /* New user namespace. */ -+# define CLONE_NEWPID 0x20000000 /* New pid namespace. */ -+# define CLONE_NEWNET 0x40000000 /* New network namespace. */ -+# define CLONE_IO 0x80000000 /* Clone I/O context. */ - #endif - - /* The official definition. */ -@@ -74,11 +80,9 @@ - extern int clone (int (*__fn) (void *__arg), void *__child_stack, - int __flags, void *__arg, ...) __THROW; - --#if 0 - /* Unshare the specified resources. */ - extern int unshare (int __flags) __THROW; - #endif --#endif - - __END_DECLS - -diff -Nura uClibc-0.9.32.orig/libc/sysdeps/linux/common/Makefile.in uClibc-0.9.32/libc/sysdeps/linux/common/Makefile.in ---- uClibc-0.9.32.orig/libc/sysdeps/linux/common/Makefile.in 2011-12-02 23:54:30.577841215 -0300 -+++ uClibc-0.9.32/libc/sysdeps/linux/common/Makefile.in 2011-12-02 23:56:08.801527166 -0300 -@@ -24,7 +24,8 @@ - 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 timerfd.c uselib.c vhangup.c -+ sync_file_range.c sysctl.c sysinfo.c timerfd.c unshare.c uselib.c \ -+ vhangup.c - # NPTL needs these internally: madvise.c - CSRC-$(findstring y,$(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_THREADS_NATIVE)) += madvise.c - ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y) -diff -Nura uClibc-0.9.32.orig/libc/sysdeps/linux/common/stubs.c uClibc-0.9.32/libc/sysdeps/linux/common/stubs.c ---- uClibc-0.9.32.orig/libc/sysdeps/linux/common/stubs.c 2011-12-02 23:54:30.577841215 -0300 -+++ uClibc-0.9.32/libc/sysdeps/linux/common/stubs.c 2011-12-02 23:58:18.803435042 -0300 -@@ -278,6 +278,10 @@ - make_stub(umount2) - #endif - -+#if !defined __NR_unshare && defined __UCLIBC_LINUX_SPECIFIC__ -+make_stub(unshare) -+#endif -+ - #ifndef __NR_utimensat - make_stub(futimens) - make_stub(utimensat) -diff -Nura uClibc-0.9.32.orig/libc/sysdeps/linux/common/unshare.c uClibc-0.9.32/libc/sysdeps/linux/common/unshare.c ---- uClibc-0.9.32.orig/libc/sysdeps/linux/common/unshare.c 1969-12-31 21:00:00.000000000 -0300 -+++ uClibc-0.9.32/libc/sysdeps/linux/common/unshare.c 2011-12-02 23:58:42.693601880 -0300 -@@ -0,0 +1,15 @@ -+/* vi: set sw=4 ts=4: */ -+/* -+ * unshare() for uClibc -+ * -+ * Copyright (C) 2011 Henning Heinold -+ * -+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. -+ */ -+ -+#include -+#include -+ -+#if defined __NR_unshare -+_syscall1(int, unshare, int, flags) -+#endif diff --git a/toolchain/uClibc/patches/uClibc-sigaction.patch b/toolchain/uClibc/patches/uClibc-sigaction.patch deleted file mode 100644 index 0077191e5..000000000 --- a/toolchain/uClibc/patches/uClibc-sigaction.patch +++ /dev/null @@ -1,155 +0,0 @@ -diff -Nur uClibc-0.9.32.1/libc/signal/sigaction.c uClibc.new/libc/signal/sigaction.c ---- uClibc-0.9.32.1/libc/signal/sigaction.c 2011-12-30 12:11:07.000000000 +0100 -+++ uClibc.new/libc/signal/sigaction.c 2012-02-17 14:49:51.000000000 +0100 -@@ -82,6 +82,11 @@ - - - #ifndef LIBC_SIGACTION -+# ifndef __UCLIBC_HAS_THREADS__ -+strong_alias(__libc_sigaction,sigaction) -+libc_hidden_def(sigaction) -+# else - weak_alias(__libc_sigaction,sigaction) - libc_hidden_weak(sigaction) -+# endif - #endif -diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/arm/sigaction.c uClibc.new/libc/sysdeps/linux/arm/sigaction.c ---- uClibc-0.9.32.1/libc/sysdeps/linux/arm/sigaction.c 2011-12-30 12:11:07.000000000 +0100 -+++ uClibc.new/libc/sysdeps/linux/arm/sigaction.c 2012-02-17 14:49:51.000000000 +0100 -@@ -96,6 +96,11 @@ - - - #ifndef LIBC_SIGACTION -+# ifndef __UCLIBC_HAS_THREADS__ -+strong_alias(__libc_sigaction,sigaction) -+libc_hidden_def(sigaction) -+# else - weak_alias(__libc_sigaction,sigaction) - libc_hidden_weak(sigaction) -+# endif - #endif -diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/avr32/sigaction.c uClibc.new/libc/sysdeps/linux/avr32/sigaction.c ---- uClibc-0.9.32.1/libc/sysdeps/linux/avr32/sigaction.c 2011-12-30 12:11:07.000000000 +0100 -+++ uClibc.new/libc/sysdeps/linux/avr32/sigaction.c 2012-02-17 14:49:51.000000000 +0100 -@@ -38,6 +38,11 @@ - } - - #ifndef LIBC_SIGACTION --weak_alias(__libc_sigaction, sigaction) -+# ifndef __UCLIBC_HAS_THREADS__ -+strong_alias(__libc_sigaction,sigaction) -+libc_hidden_def(sigaction) -+# else -+weak_alias(__libc_sigaction,sigaction) - libc_hidden_weak(sigaction) -+# endif - #endif -diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/c6x/sigaction.c uClibc.new/libc/sysdeps/linux/c6x/sigaction.c ---- uClibc-0.9.32.1/libc/sysdeps/linux/c6x/sigaction.c 2011-12-30 12:11:07.000000000 +0100 -+++ uClibc.new/libc/sysdeps/linux/c6x/sigaction.c 2012-02-17 14:49:51.000000000 +0100 -@@ -75,10 +75,16 @@ - } - - #ifndef LIBC_SIGACTION -+# ifndef __UCLIBC_HAS_THREADS__ -+strong_alias(__libc_sigaction,sigaction) -+libc_hidden_def(sigaction) -+# else - weak_alias(__libc_sigaction,sigaction) - libc_hidden_weak(sigaction) -+# endif - #endif - -+ - /* NOTE: Please think twice before making any changes to the bits of - code below. GDB needs some intimate knowledge about it to - recognize them as signal trampolines, and make backtraces through -diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/i386/sigaction.c uClibc.new/libc/sysdeps/linux/i386/sigaction.c ---- uClibc-0.9.32.1/libc/sysdeps/linux/i386/sigaction.c 2011-12-30 12:11:07.000000000 +0100 -+++ uClibc.new/libc/sysdeps/linux/i386/sigaction.c 2012-02-17 14:49:51.000000000 +0100 -@@ -95,8 +95,13 @@ - - - #ifndef LIBC_SIGACTION -+# ifndef __UCLIBC_HAS_THREADS__ -+strong_alias(__libc_sigaction,sigaction) -+libc_hidden_def(sigaction) -+# else - weak_alias(__libc_sigaction,sigaction) - libc_hidden_weak(sigaction) -+# endif - #endif - - -diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/mips/sigaction.c uClibc.new/libc/sysdeps/linux/mips/sigaction.c ---- uClibc-0.9.32.1/libc/sysdeps/linux/mips/sigaction.c 2011-12-30 12:11:07.000000000 +0100 -+++ uClibc.new/libc/sysdeps/linux/mips/sigaction.c 2012-02-17 14:49:51.000000000 +0100 -@@ -100,8 +100,13 @@ - - - #ifndef LIBC_SIGACTION -+# ifndef __UCLIBC_HAS_THREADS__ -+strong_alias(__libc_sigaction,sigaction) -+libc_hidden_def(sigaction) -+# else - weak_alias(__libc_sigaction,sigaction) - libc_hidden_weak(sigaction) -+# endif - #endif - - -diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/sparc/sigaction.c uClibc.new/libc/sysdeps/linux/sparc/sigaction.c ---- uClibc-0.9.32.1/libc/sysdeps/linux/sparc/sigaction.c 2011-12-30 12:11:07.000000000 +0100 -+++ uClibc.new/libc/sysdeps/linux/sparc/sigaction.c 2012-02-17 14:49:51.000000000 +0100 -@@ -65,11 +65,18 @@ - return ret; - } - -+ - #ifndef LIBC_SIGACTION -+# ifndef __UCLIBC_HAS_THREADS__ -+strong_alias(__libc_sigaction,sigaction) -+libc_hidden_def(sigaction) -+# else - weak_alias(__libc_sigaction,sigaction) - libc_hidden_weak(sigaction) -+# endif - #endif - -+ - static void - __rt_sigreturn_stub(void) - { -diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/x86_64/sigaction.c uClibc.new/libc/sysdeps/linux/x86_64/sigaction.c ---- uClibc-0.9.32.1/libc/sysdeps/linux/x86_64/sigaction.c 2011-12-30 12:11:07.000000000 +0100 -+++ uClibc.new/libc/sysdeps/linux/x86_64/sigaction.c 2012-02-17 14:49:51.000000000 +0100 -@@ -99,8 +99,13 @@ - - - #ifndef LIBC_SIGACTION -+# ifndef __UCLIBC_HAS_THREADS__ -+strong_alias(__libc_sigaction,sigaction) -+libc_hidden_def(sigaction) -+# else - weak_alias(__libc_sigaction,sigaction) - libc_hidden_weak(sigaction) -+# endif - #endif - - -diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/xtensa/sigaction.c uClibc.new/libc/sysdeps/linux/xtensa/sigaction.c ---- uClibc-0.9.32.1/libc/sysdeps/linux/xtensa/sigaction.c 2011-12-30 12:11:07.000000000 +0100 -+++ uClibc.new/libc/sysdeps/linux/xtensa/sigaction.c 2012-02-17 14:49:51.000000000 +0100 -@@ -34,6 +34,11 @@ - } - - #ifndef LIBC_SIGACTION --weak_alias(__libc_sigaction, sigaction) -+# ifndef __UCLIBC_HAS_THREADS__ -+strong_alias(__libc_sigaction,sigaction) -+libc_hidden_def(sigaction) -+# else -+weak_alias(__libc_sigaction,sigaction) - libc_hidden_weak(sigaction) -+# endif - #endif diff --git a/toolchain/uClibc/patches/uClibc-sigaction2.patch b/toolchain/uClibc/patches/uClibc-sigaction2.patch deleted file mode 100644 index f33e14dde..000000000 --- a/toolchain/uClibc/patches/uClibc-sigaction2.patch +++ /dev/null @@ -1,247 +0,0 @@ -diff -Nur uClibc-0.9.32.1/libc/signal/Makefile.in uClibc.new/libc/signal/Makefile.in ---- uClibc-0.9.32.1/libc/signal/Makefile.in 2011-12-30 12:11:07.000000000 +0100 -+++ uClibc.new/libc/signal/Makefile.in 2012-02-17 15:13:33.000000000 +0100 -@@ -17,7 +17,7 @@ - CSRC-$(UCLIBC_SUSV4_LEGACY) += sigintr.c - - ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y) --CSRC-y:=$(filter-out raise.c sigaction.c,$(CSRC-y)) -+CSRC-y:=$(filter-out raise.c,$(CSRC-y)) - endif - - ifneq ($(strip $(ARCH_OBJS)),) -diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/arm/Makefile.arch uClibc.new/libc/sysdeps/linux/arm/Makefile.arch ---- uClibc-0.9.32.1/libc/sysdeps/linux/arm/Makefile.arch 2011-12-30 12:11:07.000000000 +0100 -+++ uClibc.new/libc/sysdeps/linux/arm/Makefile.arch 2012-02-17 15:13:33.000000000 +0100 -@@ -5,11 +5,7 @@ - # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. - # - --CSRC := brk.c ioperm.c iopl.c mmap.c __syscall_error.c -- --ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y) --CSRC += sigaction.c --endif -+CSRC := brk.c ioperm.c iopl.c mmap.c __syscall_error.c sigaction.c - - SSRC := \ - __longjmp.S setjmp.S bsd-setjmp.S \ -diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/i386/Makefile.arch uClibc.new/libc/sysdeps/linux/i386/Makefile.arch ---- uClibc-0.9.32.1/libc/sysdeps/linux/i386/Makefile.arch 2011-12-30 12:11:07.000000000 +0100 -+++ uClibc.new/libc/sysdeps/linux/i386/Makefile.arch 2012-02-17 15:13:33.000000000 +0100 -@@ -5,11 +5,7 @@ - # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. - # - --CSRC := brk.c __syscall_error.c -- --ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y) --CSRC += sigaction.c --endif -+CSRC := brk.c __syscall_error.c sigaction.c - - SSRC := \ - __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \ -diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/mips/Makefile.arch uClibc.new/libc/sysdeps/linux/mips/Makefile.arch ---- uClibc-0.9.32.1/libc/sysdeps/linux/mips/Makefile.arch 2011-12-30 12:11:07.000000000 +0100 -+++ uClibc.new/libc/sysdeps/linux/mips/Makefile.arch 2012-02-17 15:13:33.000000000 +0100 -@@ -7,7 +7,7 @@ - - CSRC := \ - __longjmp.c brk.c setjmp_aux.c mmap.c \ -- cacheflush.c pread_write.c sysmips.c _test_and_set.c \ -+ cacheflush.c pread_write.c sigaction.c sysmips.c _test_and_set.c \ - readahead.c - - SSRC := bsd-_setjmp.S bsd-setjmp.S setjmp.S syscall.S pipe.S syscall_error.S -@@ -17,7 +17,6 @@ - endif - - ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y) --CSRC += sigaction.c - SSRC += vfork.S clone.S - endif - -diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/sparc/Makefile.arch uClibc.new/libc/sysdeps/linux/sparc/Makefile.arch ---- uClibc-0.9.32.1/libc/sysdeps/linux/sparc/Makefile.arch 2011-12-30 12:11:07.000000000 +0100 -+++ uClibc.new/libc/sysdeps/linux/sparc/Makefile.arch 2012-02-17 15:14:20.000000000 +0100 -@@ -5,15 +5,14 @@ - # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. - # - --CSRC := brk.c __syscall_error.c -+CSRC := brk.c __syscall_error.c sigaction.c - - SSRC := \ - __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \ - syscall.S urem.S udiv.S umul.S sdiv.S rem.S pipe.S - - ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y) --CSRC += sigaction.c --SSRC += fork.S vfork.S -+SSRC += fork.S vfork.S clone.S - endif - - # check weather __LONG_DOUBLE_128__ is defined (long double support) -diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/x86_64/Makefile.arch uClibc.new/libc/sysdeps/linux/x86_64/Makefile.arch ---- uClibc-0.9.32.1/libc/sysdeps/linux/x86_64/Makefile.arch 2011-12-30 12:11:07.000000000 +0100 -+++ uClibc.new/libc/sysdeps/linux/x86_64/Makefile.arch 2012-02-17 15:13:33.000000000 +0100 -@@ -5,11 +5,7 @@ - # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. - # - --CSRC := brk.c __syscall_error.c mmap.c -- --ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y) --CSRC += sigaction.c --endif -+CSRC := brk.c __syscall_error.c sigaction.c mmap.c - - SSRC := \ - __longjmp.S setjmp.S syscall.S bsd-setjmp.S bsd-_setjmp.S -diff -Nur uClibc-0.9.32.1/libpthread/nptl/.gitignore uClibc.new/libpthread/nptl/.gitignore ---- uClibc-0.9.32.1/libpthread/nptl/.gitignore 2011-12-30 12:11:07.000000000 +0100 -+++ uClibc.new/libpthread/nptl/.gitignore 2012-02-17 15:13:33.000000000 +0100 -@@ -24,6 +24,5 @@ - # - # symlinks - # --sysdeps/pthread/pt-sigaction.c - sysdeps/pthread/pt-sigfillset.c - sysdeps/pthread/pt-sigprocmask.c -diff -Nur uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/Makefile.in uClibc.new/libpthread/nptl/sysdeps/pthread/Makefile.in ---- uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/Makefile.in 2011-12-30 12:11:07.000000000 +0100 -+++ uClibc.new/libpthread/nptl/sysdeps/pthread/Makefile.in 2012-02-17 15:13:33.000000000 +0100 -@@ -42,8 +42,6 @@ - CFLAGS-pthread_spin_destroy.c = -D_GNU_SOURCE - CFLAGS-pthread_spin_init.c = -D_GNU_SOURCE - CFLAGS-pthread_spin_unlock.c = -D_GNU_SOURCE --CFLAGS-pt-sigaction.c = -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH) \ -- -I$(top_srcdir)libc/signal - CFLAGS-pt-sigfillset.c = -I$(top_srcdir)libc/signal - CFLAGS-pt-sigprocmask.c = -I$(top_srcdir)libc/sysdeps/linux/common - CFLAGS-unwind-forcedunwind.c = -fexceptions -fasynchronous-unwind-tables -@@ -58,10 +56,6 @@ - libpthread-so-y += $(patsubst %,$(libpthread_pthread_OUT)/%.oS, \ - pt-sigaction pt-sigprocmask unwind-forcedunwind) - --CFLAGS-OMIT-sigaction.c = $(CFLAGS-pthread) --CFLAGS-sigaction.c = -I$(top_srcdir)libc/signal --libc-y += $(libpthread_pthread_OUT)/sigaction.o -- - librt-pt-routines-y = librt-cancellation.c - librt-pt-shared-only-routines-y = rt-unwind-resume.c - -@@ -114,7 +108,7 @@ - # impl, but ok. - # Special rules needed since we do objdir->objdir compilation for these 3. - # First symlink them, then build them. Rob would freak out on these. Sheesh! ;) --pthread-lc-fwd = sigaction sigfillset sigprocmask -+pthread-lc-fwd = sigfillset sigprocmask - $(patsubst %,$(libpthread_pthread_OUT)/pt-%.c,$(pthread-lc-fwd)): | $(libpthread_pthread_OUT) - $(do_ln) $(call rel_srcdir)$(patsubst pt-%,$(libpthread_pthread_DIR)/%,$(@F)) $@ - $(patsubst %,$(libpthread_pthread_OUT)/pt-%.oS,$(pthread-lc-fwd)): $(libpthread_pthread_OUT)/pt-%.oS: $(libpthread_pthread_OUT)/pt-%.c -@@ -131,5 +125,5 @@ - CLEAN_libpthread/nptl/sysdeps/pthread: - $(do_rm) $(addprefix $(libpthread_pthread_OUT)/*., o os oS s S) \ - $(libpthread_pthread_OUT)/defs.h \ -- $(addprefix $(libpthread_pthread_DIR)/,pt-sigaction.c \ -+ $(addprefix $(libpthread_pthread_DIR)/, \ - pt-sigfillset.c pt-sigprocmask.c) -diff -Nur uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/pt-sigaction.c uClibc.new/libpthread/nptl/sysdeps/pthread/pt-sigaction.c ---- uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/pt-sigaction.c 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc.new/libpthread/nptl/sysdeps/pthread/pt-sigaction.c 2012-02-17 15:13:33.000000000 +0100 -@@ -0,0 +1,40 @@ -+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ Contributed by Ulrich Drepper , 2002. -+ -+ 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 -+ -+/* We use the libc implementation but we tell it to not allow -+ SIGCANCEL or SIGTIMER to be handled. */ -+ -+extern __typeof(sigaction) __libc_sigaction; -+int -+__sigaction (int sig, const struct sigaction *act, struct sigaction *oact) -+{ -+ if (unlikely (sig == SIGCANCEL || sig == SIGSETXID)) -+ { -+ __set_errno (EINVAL); -+ return -1; -+ } -+ -+ return __libc_sigaction (sig, act, oact); -+} -+libc_hidden_proto(sigaction) -+weak_alias (__sigaction, sigaction) -+libc_hidden_weak(sigaction) -diff -Nur uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/sigaction.c uClibc.new/libpthread/nptl/sysdeps/pthread/sigaction.c ---- uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/sigaction.c 2011-12-30 12:11:07.000000000 +0100 -+++ uClibc.new/libpthread/nptl/sysdeps/pthread/sigaction.c 1970-01-01 01:00:00.000000000 +0100 -@@ -1,49 +0,0 @@ --/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. -- This file is part of the GNU C Library. -- Contributed by Ulrich Drepper , 2002. -- -- 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 LIBC_SIGACTION -- --#include -- --/* We use the libc implementation but we tell it to not allow -- SIGCANCEL or SIGTIMER to be handled. */ --#define LIBC_SIGACTION 1 --#include -- --extern __typeof(sigaction) __sigaction; --int --__sigaction (int sig, const struct sigaction *act, struct sigaction *oact) --{ -- if (__builtin_expect (sig == SIGCANCEL || sig == SIGSETXID, 0)) -- { -- __set_errno (EINVAL); -- return -1; -- } -- -- return __libc_sigaction (sig, act, oact); --} --libc_hidden_proto(sigaction) --weak_alias (__sigaction, sigaction) --libc_hidden_weak(sigaction) -- --#else -- --# include_next -- --#endif /* LIBC_SIGACTION */ diff --git a/toolchain/uClibc/patches/uClibc-weak-sigprocmask.patch b/toolchain/uClibc/patches/uClibc-weak-sigprocmask.patch deleted file mode 100644 index a98f5b94d..000000000 --- a/toolchain/uClibc/patches/uClibc-weak-sigprocmask.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -Nur uClibc-0.9.32.1.orig/libc/sysdeps/linux/common/sigprocmask.c uClibc-0.9.32.1/libc/sysdeps/linux/common/sigprocmask.c ---- uClibc-0.9.32.1.orig/libc/sysdeps/linux/common/sigprocmask.c 2011-12-30 12:11:07.000000000 +0100 -+++ uClibc-0.9.32.1/libc/sysdeps/linux/common/sigprocmask.c 2012-02-18 11:40:09.000000000 +0100 -@@ -23,7 +23,7 @@ - _syscall4(int, __rt_sigprocmask, int, how, const sigset_t *, set, - sigset_t *, oldset, size_t, size) - --int sigprocmask(int how, const sigset_t * set, sigset_t * oldset) -+int weak_function sigprocmask(int how, const sigset_t * set, sigset_t * oldset) - { - #ifdef SIGCANCEL - sigset_t local_newmask; -@@ -58,7 +58,7 @@ - _syscall3(int, __syscall_sigprocmask, int, how, const sigset_t *, set, - sigset_t *, oldset) - --int sigprocmask(int how, const sigset_t * set, sigset_t * oldset) -+int weak_function sigprocmask(int how, const sigset_t * set, sigset_t * oldset) - { - #ifdef SIGCANCEL - sigset_t local_newmask; -- cgit v1.2.3