From 099aecb016cc3a4aa8a00c801fb7cb79ecc6d7cd Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Fri, 31 Dec 2010 14:45:38 +0100 Subject: add patch from uClibc trunk, otherwise mipsel build breaks --- toolchain/uClibc/patches/trunk.patch | 196 +++++++++++++++++++++++++++++++++++ 1 file changed, 196 insertions(+) create mode 100644 toolchain/uClibc/patches/trunk.patch (limited to 'toolchain/uClibc') diff --git a/toolchain/uClibc/patches/trunk.patch b/toolchain/uClibc/patches/trunk.patch new file mode 100644 index 000000000..2d2c9f683 --- /dev/null +++ b/toolchain/uClibc/patches/trunk.patch @@ -0,0 +1,196 @@ +diff --git a/Makefile.in b/Makefile.in +index b4dcf6b..d7a5fca 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -23,7 +23,7 @@ export KCONFIG_CONFIG + + ifeq ($(HAVE_DOT_CONFIG),y) + +-all: pregen libs ++all: headers pregen libs + libs: pregen + + # In this section, we need .config +@@ -260,6 +260,7 @@ HEADERS_RM-$(UCLIBC_HAS_WCHAR) += wchar.h wctype.h + HEADERS_RM-$(UCLIBC_HAS_WORDEXP) += wordexp.h + HEADERS_RM-$(UCLIBC_HAS_XATTR) += sys/xattr.h + HEADERS_RM-$(UCLIBC_HAS_XLOCALE) += xlocale.h ++HEADERS_RM-$(UCLIBC_HAS_LOCALE) += bits/uClibc_ctype.h + HEADERS_RM-$(UCLIBC_LINUX_SPECIFIC) += sys/fsuid.h sys/inotify.h sys/perm.h \ + sys/personality.h \ + sys/prctl.h \ +diff --git a/extra/locale/Makefile b/extra/locale/Makefile +index 11f362a..ff229e2 100644 +--- a/extra/locale/Makefile ++++ b/extra/locale/Makefile +@@ -4,10 +4,10 @@ + # + # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. + # +- + top_srcdir=../../ +-top_builddir=../../ ++top_builddir=$(if $(O),$(O),../../)/ ++ + all: objs +-include $(top_builddir)Rules.mak ++include $(top_srcdir)Rules.mak + include Makefile.in + include $(top_srcdir)Makerules +diff --git a/libc/sysdeps/linux/sparc/Makefile.arch b/libc/sysdeps/linux/sparc/Makefile.arch +index 91c6e85..d0cae9f 100644 +--- a/libc/sysdeps/linux/sparc/Makefile.arch ++++ b/libc/sysdeps/linux/sparc/Makefile.arch +@@ -16,9 +16,15 @@ CSRC += sigaction.c + SSRC += fork.S vfork.S + endif + ++# check weather __LONG_DOUBLE_128__ is defined (long double support) ++UCLIBC_SPARC_HAS_LONG_DOUBLE=$(shell if [ "x`$(CC) -E -dM -xc /dev/null 2>&1 | grep __LONG_DOUBLE_128__`" != "x" ]; then echo "y"; fi) ++ifeq ($(UCLIBC_SPARC_HAS_LONG_DOUBLE),y) + CSRC += $(foreach f, \ + q_div.c q_fle.c q_mul.c q_qtoll.c q_stoq.c \ + mp_clz_tab.c q_dtoq.c q_flt.c q_neg.c q_qtos.c q_sub.c \ + q_add.c q_feq.c q_fne.c q_qtod.c q_qtou.c q_ulltoq.c \ + q_cmp.c q_fge.c q_itoq.c q_qtoull.c q_util.c \ + q_cmpe.c q_fgt.c q_lltoq.c q_qtoi.c q_sqrt.c q_utoq.c, soft-fp/$(f)) ++else ++CSRC += qp_ops.c ++endif +diff --git a/libpthread/linuxthreads/pthread.c b/libpthread/linuxthreads/pthread.c +index 614cad1..db43634 100644 +--- a/libpthread/linuxthreads/pthread.c ++++ b/libpthread/linuxthreads/pthread.c +@@ -49,7 +49,7 @@ extern int _h_errno; + /* We need the global/static resolver state here. */ + # include + # undef _res +-extern struct __res_state _res; ++extern struct __res_state *__resp; + # endif + #endif + +@@ -73,9 +73,6 @@ struct _pthread_descr_struct __pthread_initial_thread = { + #if !(USE_TLS && HAVE___THREAD) + .p_errnop = &_errno, + .p_h_errnop = &_h_errno, +-# if defined __UCLIBC_HAS_IPv4__ || defined __UCLIBC_HAS_IPV6__ +- .p_resp = &_res, +-# endif + #endif + .p_userstack = 1, + .p_resume_count = __ATOMIC_INITIALIZER, +@@ -544,14 +541,14 @@ static void pthread_initialize(void) + THREAD_SETMEM (((pthread_descr) NULL), p_pid, __getpid()); + # if !defined HAVE___THREAD && (defined __UCLIBC_HAS_IPv4__ || defined __UCLIBC_HAS_IPV6__) + /* Likewise for the resolver state _res. */ +- THREAD_SETMEM (((pthread_descr) NULL), p_resp, &_res); ++ THREAD_SETMEM (((pthread_descr) NULL), p_resp, __resp); + # endif + #else + /* Update the descriptor for the initial thread. */ + __pthread_initial_thread.p_pid = __getpid(); + # if defined __UCLIBC_HAS_IPv4__ || defined __UCLIBC_HAS_IPV6__ + /* Likewise for the resolver state _res. */ +- __pthread_initial_thread.p_resp = &_res; ++ __pthread_initial_thread.p_resp = __resp; + # endif + #endif + #if !__ASSUME_REALTIME_SIGNALS +@@ -1129,7 +1126,7 @@ void __pthread_reset_main_thread(void) + THREAD_SETMEM(self, p_errnop, &_errno); + THREAD_SETMEM(self, p_h_errnop, &_h_errno); + # if defined __UCLIBC_HAS_IPv4__ || defined __UCLIBC_HAS_IPV6__ +- THREAD_SETMEM(self, p_resp, &_res); ++ THREAD_SETMEM(self, p_resp, __resp); + # endif + #endif + +diff --git a/libpthread/nptl/sem_open.c b/libpthread/nptl/sem_open.c +index 28dd3aa..71bebb0 100644 +--- a/libpthread/nptl/sem_open.c ++++ b/libpthread/nptl/sem_open.c +@@ -248,7 +248,7 @@ sem_open (const char *name, int oflag, ...) + int fd; + + /* Determine where the shmfs is mounted. */ +- __pthread_once (&__namedsem_once, __where_is_shmfs); ++ INTUSE(__pthread_once) (&__namedsem_once, __where_is_shmfs); + + /* If we don't know the mount points there is nothing we can do. Ever. */ + if (mountpoint.dir == NULL) +diff --git a/libpthread/nptl/sem_unlink.c b/libpthread/nptl/sem_unlink.c +index beed02e..f3e7f1a 100644 +--- a/libpthread/nptl/sem_unlink.c ++++ b/libpthread/nptl/sem_unlink.c +@@ -33,7 +33,7 @@ sem_unlink ( + size_t namelen; + + /* Determine where the shmfs is mounted. */ +- __pthread_once (&__namedsem_once, __where_is_shmfs); ++ INTUSE(__pthread_once) (&__namedsem_once, __where_is_shmfs); + + /* If we don't know the mount points there is nothing we can do. Ever. */ + if (mountpoint.dir == NULL) +diff --git a/libpthread/nptl/sysdeps/pthread/Makefile.in b/libpthread/nptl/sysdeps/pthread/Makefile.in +index 8ccf96d..fc0c6ac 100644 +--- a/libpthread/nptl/sysdeps/pthread/Makefile.in ++++ b/libpthread/nptl/sysdeps/pthread/Makefile.in +@@ -95,6 +95,10 @@ $(patsubst %,$(libpthread_pthread_OUT)/pt-%.oS,$(pthread-lc-fwd)): $(libpthread_ + $(compile.c) + $(patsubst %,$(libpthread_pthread_OUT)/pt-%.o,$(pthread-lc-fwd)): $(libpthread_pthread_OUT)/pt-%.o: $(libpthread_pthread_OUT)/pt-%.c + $(compile.c) ++ifeq ($(DOPIC),y) ++$(patsubst %,$(libpthread_pthread_OUT)/pt-%.os,$(pthread-lc-fwd)): $(libpthread_pthread_OUT)/pt-%.os: $(libpthread_pthread_OUT)/pt-%.c ++ $(compile.c) ++endif + + objclean-y += CLEAN_libpthread/nptl/sysdeps/pthread + +diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/Makefile.arch +index 88ca01a..102c0da 100644 +--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/Makefile.arch ++++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/Makefile.arch +@@ -7,16 +7,20 @@ + + libpthread_linux_arch_SSRC = pt-vfork.S clone.S + libpthread_linux_arch_CSRC = pthread_once.c lowlevellock.c \ +- pthread_barrier_init.c pthread_barrier_wait.c pthread_barrier_destroy.c ++ pthread_barrier_init.c pthread_barrier_wait.c pthread_barrier_destroy.c \ ++ pt-__syscall_error.c + + libc_linux_arch_CSRC = fork.c libc-lowlevellock.c + libc_linux_arch_SSRC = clone.S vfork.S + ++librt_linux_arch_CSRC = pt-__syscall_error.c ++ + ASFLAGS += -DUSE___THREAD + + ASFLAGS-pt-vfork.S = -DNOT_IN_libc -DIS_IN_libpthread -D_LIBC_REENTRANT + CFLAGS-pthread_once.c = -DNOT_IN_libc -DIS_IN_libpthread + CFLAGS-lowlevellock.c = -DNOT_IN_libc -DIS_IN_libpthread ++CFLAGS-pt-__syscall_error.c = -DNOT_IN_libc -DIS_IN_libpthread + + ASFLAGS-clone.S = -D_LIBC_REENTRANT + ASFLAGS-vfork.S = -D_LIBC_REENTRANT +diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pt-__syscall_error.c b/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pt-__syscall_error.c +new file mode 100644 +index 0000000..872e4ef +--- /dev/null ++++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pt-__syscall_error.c +@@ -0,0 +1 @@ ++#include <../../../../../../../libc/sysdeps/linux/sparc/__syscall_error.c> +diff --git a/libpthread/nptl_db/Makefile.in b/libpthread/nptl_db/Makefile.in +index 644ec55..a3fc1cd 100644 +--- a/libpthread/nptl_db/Makefile.in ++++ b/libpthread/nptl_db/Makefile.in +@@ -12,8 +12,7 @@ CFLAGS-nptl_db := -DLIBPTHREAD_SO="\"libpthread.so.$(ABI_VERSION)\"" + CFLAGS-nptl_db += -I$(top_srcdir)libpthread/nptl -D_GNU_SOURCE + CFLAGS-nptl_db += -DIS_IN_libthread_db=1 -DNOT_IN_libc -std=gnu99 -I$(top_srcdir)ldso/include + +-LDFLAGS-libthread_db.so := $(LDFLAGS_NOSTRIP) -s --warn-unresolved-symbols +- ++LDFLAGS-libthread_db.so := $(LDFLAGS_NOSTRIP) $(if $(call check_ld,--warn-unresolved-symbols),-Wl$(comma)--warn-unresolved-symbols) + LIBS-libthread_db.so := $(LIBS) + + libthread_db_FULL_NAME := libthread_db-$(VERSION).so -- cgit v1.2.3