summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2010-12-31 14:45:38 +0100
committerWaldemar Brodkorb <wbx@openadk.org>2010-12-31 14:45:38 +0100
commit099aecb016cc3a4aa8a00c801fb7cb79ecc6d7cd (patch)
tree23795cd5ace86c429c831aee56cf859b95699258
parentf90936ae8ecd92261804e63bb27ac3939c631900 (diff)
add patch from uClibc trunk, otherwise mipsel build breaks
-rw-r--r--toolchain/uClibc/patches/trunk.patch196
1 files changed, 196 insertions, 0 deletions
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 <resolv.h>
+ # 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