| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 | diff --git a/Makefile.in b/Makefile.inindex 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/Makefileindex 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)Makerulesdiff --git a/libc/sysdeps/linux/sparc/Makefile.arch b/libc/sysdeps/linux/sparc/Makefile.archindex 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+endifdiff --git a/libpthread/linuxthreads/pthread.c b/libpthread/linuxthreads/pthread.cindex 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.cindex 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.cindex 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.inindex 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.archindex 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_REENTRANTdiff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pt-__syscall_error.c b/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pt-__syscall_error.cnew file mode 100644index 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.inindex 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
 |