From b7676e029c848bc6a8abbe9dd3399623cdb3ce20 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 20 Jan 2011 18:27:38 +0100 Subject: disable NLS, allows toolchain building on native ADK systems --- toolchain/libelf/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/toolchain/libelf/Makefile b/toolchain/libelf/Makefile index 485978cf0..c243cdd00 100644 --- a/toolchain/libelf/Makefile +++ b/toolchain/libelf/Makefile @@ -15,6 +15,7 @@ $(WRKBUILD)/.configured: (cd $(WRKBUILD); \ $(WRKBUILD)/configure \ --prefix=$(STAGING_HOST_DIR) \ + --disable-nls \ --disable-shared \ --enable-static \ ); -- cgit v1.2.3 From b93120252893422b92cf4c6a55aa075d8c04fa4a Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 20 Jan 2011 19:46:49 +0100 Subject: sync gcc patches from toolchain --- package/gcc/patches/cflags.patch | 253 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 package/gcc/patches/cflags.patch diff --git a/package/gcc/patches/cflags.patch b/package/gcc/patches/cflags.patch new file mode 100644 index 000000000..0d5815a54 --- /dev/null +++ b/package/gcc/patches/cflags.patch @@ -0,0 +1,253 @@ + + This patch brings over a few features from MirBSD: + * -fhonour-copts + If this option is not given, it's warned (depending + on environment variables). This is to catch errors + of misbuilt packages which override CFLAGS themselves. + * -Werror-maybe-reset + Has the effect of -Wno-error if GCC_NO_WERROR is + set and not '0', a no-operation otherwise. This is + to be able to use -Werror in "make" but prevent + GNU autoconf generated configure scripts from + freaking out. + * Make -fno-strict-aliasing and -fno-delete-null-pointer-checks + the default for -O2/-Os, because they trigger gcc bugs + and can delete code with security implications. + + This patch was authored by Thorsten Glaser + with copyright assignment to the FSF in effect. + +--- a/gcc/c-opts.c ++++ b/gcc/c-opts.c +@@ -105,6 +105,9 @@ + /* Number of deferred options scanned for -include. */ + static size_t include_cursor; + ++/* Check if a port honours COPTS. */ ++static int honour_copts = 0; ++ + static void set_Wimplicit (int); + static void handle_OPT_d (const char *); + static void set_std_cxx98 (int); +@@ -454,6 +457,9 @@ + enable_warning_as_error ("implicit-function-declaration", value, CL_C | CL_ObjC); + break; + ++ case OPT_Werror_maybe_reset: ++ break; ++ + case OPT_Wformat: + set_Wformat (value); + break; +@@ -690,6 +701,12 @@ + flag_exceptions = value; + break; + ++ case OPT_fhonour_copts: ++ if (c_language == clk_c) { ++ honour_copts++; ++ } ++ break; ++ + case OPT_fimplement_inlines: + flag_implement_inlines = value; + break; +@@ -1209,6 +1226,47 @@ + return false; + } + ++ if (c_language == clk_c) { ++ char *ev = getenv ("GCC_HONOUR_COPTS"); ++ int evv; ++ if (ev == NULL) ++ evv = -1; ++ else if ((*ev == '0') || (*ev == '\0')) ++ evv = 0; ++ else if (*ev == '1') ++ evv = 1; ++ else if (*ev == '2') ++ evv = 2; ++ else if (*ev == 's') ++ evv = -1; ++ else { ++ warning (0, "unknown GCC_HONOUR_COPTS value, assuming 1"); ++ evv = 1; /* maybe depend this on something like MIRBSD_NATIVE? */ ++ } ++ if (evv == 1) { ++ if (honour_copts == 0) { ++ error ("someone does not honour COPTS at all in lenient mode"); ++ return false; ++ } else if (honour_copts != 1) { ++ warning (0, "someone does not honour COPTS correctly, passed %d times", ++ honour_copts); ++ } ++ } else if (evv == 2) { ++ if (honour_copts == 0) { ++ error ("someone does not honour COPTS at all in strict mode"); ++ return false; ++ } else if (honour_copts != 1) { ++ error ("someone does not honour COPTS correctly, passed %d times", ++ honour_copts); ++ return false; ++ } ++ } else if (evv == 0) { ++ if (honour_copts != 1) ++ inform (0, "someone does not honour COPTS correctly, passed %d times", ++ honour_copts); ++ } ++ } ++ + return true; + } + +--- a/gcc/c.opt ++++ b/gcc/c.opt +@@ -215,6 +215,10 @@ + C ObjC RejectNegative Warning + This switch is deprecated; use -Werror=implicit-function-declaration instead + ++Werror-maybe-reset ++C ObjC C++ ObjC++ ++; Documented in common.opt ++ + Wfloat-equal + C ObjC C++ ObjC++ Var(warn_float_equal) Warning + Warn if testing floating point numbers for equality +@@ -609,6 +613,9 @@ + fhonor-std + C++ ObjC++ + ++fhonour-copts ++C ObjC C++ ObjC++ RejectNegative ++ + fhosted + C ObjC + Assume normal C execution environment +--- a/gcc/common.opt ++++ b/gcc/common.opt +@@ -102,6 +102,10 @@ + Common Joined + Treat specified warning as error + ++Werror-maybe-reset ++Common ++If environment variable GCC_NO_WERROR is set, act as -Wno-error ++ + Wextra + Common Warning + Print extra (possibly unwanted) warnings +@@ -573,6 +577,9 @@ + Common Report Var(flag_guess_branch_prob) Optimization + Enable guessing of branch probabilities + ++fhonour-copts ++Common RejectNegative ++ + ; Nonzero means ignore `#ident' directives. 0 means handle them. + ; Generate position-independent code for executables if possible + ; On SVR4 targets, it also controls whether or not to emit a +--- a/gcc/opts.c ++++ b/gcc/opts.c +@@ -896,8 +896,6 @@ + flag_schedule_insns_after_reload = opt2; + #endif + flag_regmove = opt2; +- flag_strict_aliasing = opt2; +- flag_strict_overflow = opt2; + flag_reorder_blocks = opt2; + flag_reorder_functions = opt2; + flag_tree_vrp = opt2; +@@ -922,6 +919,8 @@ + + /* -O3 optimizations. */ + opt3 = (optimize >= 3); ++ flag_strict_aliasing = opt3; ++ flag_strict_overflow = opt3; + flag_predictive_commoning = opt3; + flag_inline_functions = opt3; + flag_unswitch_loops = opt3; +@@ -1601,6 +1601,17 @@ + enable_warning_as_error (arg, value, lang_mask); + break; + ++ case OPT_Werror_maybe_reset: ++ { ++ char *ev = getenv ("GCC_NO_WERROR"); ++ if ((ev != NULL) && (*ev != '0')) ++ warnings_are_errors = 0; ++ } ++ break; ++ ++ case OPT_fhonour_copts: ++ break; ++ + case OPT_Wlarger_than_: + /* This form corresponds to -Wlarger-than-. + Kept for backward compatibility. +--- a/gcc/doc/cppopts.texi ++++ b/gcc/doc/cppopts.texi +@@ -164,6 +164,11 @@ + Make all warnings into hard errors. Source code which triggers warnings + will be rejected. + ++ at item -Werror-maybe-reset ++ at opindex Werror-maybe-reset ++Act like @samp{-Wno-error} if the @env{GCC_NO_WERROR} environment ++variable is set to anything other than 0 or empty. ++ + @item -Wsystem-headers + @opindex Wsystem-headers + Issue warnings for code in system headers. These are normally unhelpful +--- a/gcc/doc/invoke.texi ++++ b/gcc/doc/invoke.texi +@@ -234,7 +234,7 @@ + -Wconversion -Wcoverage-mismatch -Wno-deprecated @gol + -Wno-deprecated-declarations -Wdisabled-optimization @gol + -Wno-div-by-zero -Wempty-body -Wenum-compare -Wno-endif-labels @gol +--Werror -Werror=* @gol ++-Werror -Werror=* -Werror-maybe-reset @gol + -Wfatal-errors -Wfloat-equal -Wformat -Wformat=2 @gol + -Wno-format-contains-nul -Wno-format-extra-args -Wformat-nonliteral @gol + -Wformat-security -Wformat-y2k @gol +@@ -4161,6 +4161,22 @@ + @option{-Wall} and by @option{-pedantic}, which can be disabled with + @option{-Wno-pointer-sign}. + ++ at item -Werror-maybe-reset ++ at opindex Werror-maybe-reset ++Act like @samp{-Wno-error} if the @env{GCC_NO_WERROR} environment ++variable is set to anything other than 0 or empty. ++ ++ at item -fhonour-copts ++ at opindex fhonour-copts ++If @env{GCC_HONOUR_COPTS} is set to 1, abort if this option is not ++given at least once, and warn if it is given more than once. ++If @env{GCC_HONOUR_COPTS} is set to 2, abort if this option is not ++given exactly once. ++If @env{GCC_HONOUR_COPTS} is set to 0 or unset, warn if this option ++is not given exactly once. ++The warning is quelled if @env{GCC_HONOUR_COPTS} is set to @samp{s}. ++This flag and environment variable only affect the C language. ++ + @item -Wstack-protector + @opindex Wstack-protector + @opindex Wno-stack-protector +@@ -5699,7 +5715,7 @@ + second branch or a point immediately following it, depending on whether + the condition is known to be true or false. + +-Enabled at levels @option{-O2}, @option{-O3}, @option{-Os}. ++Enabled at levels @option{-O3}. + + @item -fsplit-wide-types + @opindex fsplit-wide-types +--- a/gcc/java/jvspec.c ++++ b/gcc/java/jvspec.c +@@ -670,6 +670,7 @@ + class name. Append dummy `.c' that can be stripped by set_input so %b + is correct. */ + set_input (concat (main_class_name, "main.c", NULL)); ++ putenv ("GCC_HONOUR_COPTS=s"); /* XXX hack! */ + err = do_spec (jvgenmain_spec); + if (err == 0) + { -- cgit v1.2.3 From 19cbcb1b7ff6e1640bcfe442297d0bbaeac57656 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 20 Jan 2011 21:26:42 +0100 Subject: update to rc2, remove obsolete patches --- toolchain/uClibc/Makefile.inc | 4 +- toolchain/uClibc/patches/cris.patch | 97 ------------- toolchain/uClibc/patches/netlinkaccess.patch | 20 --- toolchain/uClibc/patches/trunk.patch | 196 --------------------------- 4 files changed, 2 insertions(+), 315 deletions(-) delete mode 100644 toolchain/uClibc/patches/cris.patch delete mode 100644 toolchain/uClibc/patches/netlinkaccess.patch delete mode 100644 toolchain/uClibc/patches/trunk.patch diff --git a/toolchain/uClibc/Makefile.inc b/toolchain/uClibc/Makefile.inc index 0b7812b5f..bc389ca8a 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-rc1 +PKG_VERSION:= 0.9.32-rc2 PKG_RELEASE:= 1 -PKG_MD5SUM:= ec2ec3e187bd68327ee94c31846d275a +PKG_MD5SUM:= c8d2cd2c4dbcf5218b6db843cf66ac0f PKG_SITES:= http://uclibc.org/downloads/ DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.bz2 diff --git a/toolchain/uClibc/patches/cris.patch b/toolchain/uClibc/patches/cris.patch deleted file mode 100644 index 9bd2ce795..000000000 --- a/toolchain/uClibc/patches/cris.patch +++ /dev/null @@ -1,97 +0,0 @@ -diff -Nur uClibc-0.9.32-rc1.orig/libc/sysdeps/linux/cris/sys/user.h uClibc-0.9.32-rc1/libc/sysdeps/linux/cris/sys/user.h ---- uClibc-0.9.32-rc1.orig/libc/sysdeps/linux/cris/sys/user.h 1970-01-01 01:00:00.000000000 +0100 -+++ uClibc-0.9.32-rc1/libc/sysdeps/linux/cris/sys/user.h 2010-12-28 16:41:14.000000000 +0100 -@@ -0,0 +1,81 @@ -+#ifndef __ASM_CRIS_USER_H -+#define __ASM_CRIS_USER_H -+ -+/* User-mode register used for core dumps. */ -+ -+struct user_fpregs { -+}; -+ -+struct user_regs_struct { -+ unsigned long r0; /* General registers. */ -+ unsigned long r1; -+ unsigned long r2; -+ unsigned long r3; -+ unsigned long r4; -+ unsigned long r5; -+ unsigned long r6; -+ unsigned long r7; -+ unsigned long r8; -+ unsigned long r9; -+ unsigned long r10; -+ unsigned long r11; -+ unsigned long r12; -+ unsigned long r13; -+ unsigned long sp; /* R14, Stack pointer. */ -+ unsigned long acr; /* R15, Address calculation register. */ -+ unsigned long bz; /* P0, Constant zero (8-bits). */ -+ unsigned long vr; /* P1, Version register (8-bits). */ -+ unsigned long pid; /* P2, Process ID (8-bits). */ -+ unsigned long srs; /* P3, Support register select (8-bits). */ -+ unsigned long wz; /* P4, Constant zero (16-bits). */ -+ unsigned long exs; /* P5, Exception status. */ -+ unsigned long eda; /* P6, Exception data address. */ -+ unsigned long mof; /* P7, Multiply overflow regiter. */ -+ unsigned long dz; /* P8, Constant zero (32-bits). */ -+ unsigned long ebp; /* P9, Exception base pointer. */ -+ unsigned long erp; /* P10, Exception return pointer. */ -+ unsigned long srp; /* P11, Subroutine return pointer. */ -+ unsigned long nrp; /* P12, NMI return pointer. */ -+ unsigned long ccs; /* P13, Condition code stack. */ -+ unsigned long usp; /* P14, User mode stack pointer. */ -+ unsigned long spc; /* P15, Single step PC. */ -+}; -+ -+/* -+ * Core file format: The core file is written in such a way that gdb -+ * can understand it and provide useful information to the user (under -+ * linux we use the `trad-core' bfd). The file contents are as follows: -+ * -+ * upage: 1 page consisting of a user struct that tells gdb -+ * what is present in the file. Directly after this is a -+ * copy of the task_struct, which is currently not used by gdb, -+ * but it may come in handy at some point. All of the registers -+ * are stored as part of the upage. The upage should always be -+ * only one page long. -+ * data: The data segment follows next. We use current->end_text to -+ * current->brk to pick up all of the user variables, plus any memory -+ * that may have been sbrk'ed. No attempt is made to determine if a -+ * page is demand-zero or if a page is totally unused, we just cover -+ * the entire range. All of the addresses are rounded in such a way -+ * that an integral number of pages is written. -+ * stack: We need the stack information in order to get a meaningful -+ * backtrace. We need to write the data from usp to -+ * current->start_stack, so we round each of these in order to be able -+ * to write an integer number of pages. -+ */ -+ -+struct user { -+ struct user_regs_struct regs; /* entire machine state */ -+ size_t u_tsize; /* text size (pages) */ -+ size_t u_dsize; /* data size (pages) */ -+ size_t u_ssize; /* stack size (pages) */ -+ unsigned long start_code; /* text starting address */ -+ unsigned long start_data; /* data starting address */ -+ unsigned long start_stack; /* stack starting address */ -+ long int signal; /* signal causing core dump */ -+ unsigned long u_ar0; /* help gdb find registers */ -+ unsigned long magic; /* identifies a core file */ -+ char u_comm[32]; /* user command name */ -+}; -+ -+#endif /* __ASM_CRIS_USER_H */ -diff -Nur uClibc-0.9.32-rc1.orig/libc/sysdeps/linux/cris/sysdep.h uClibc-0.9.32-rc1/libc/sysdeps/linux/cris/sysdep.h ---- uClibc-0.9.32-rc1.orig/libc/sysdeps/linux/cris/sysdep.h 2010-12-17 20:05:17.000000000 +0100 -+++ uClibc-0.9.32-rc1/libc/sysdeps/linux/cris/sysdep.h 2010-12-28 16:41:08.000000000 +0100 -@@ -20,6 +20,8 @@ - #ifndef _SYSDEP_H_ - #define _SYSDEP_H_ - -+#include -+ - #ifndef C_LABEL - - /* Define a macro we can use to construct the asm name for a C symbol. */ diff --git a/toolchain/uClibc/patches/netlinkaccess.patch b/toolchain/uClibc/patches/netlinkaccess.patch deleted file mode 100644 index a022d53fa..000000000 --- a/toolchain/uClibc/patches/netlinkaccess.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff -Nur uClibc-0.9.32-rc1.orig/libc/inet/netlinkaccess.h uClibc-0.9.32-rc1/libc/inet/netlinkaccess.h ---- uClibc-0.9.32-rc1.orig/libc/inet/netlinkaccess.h 2010-12-17 20:05:17.000000000 +0100 -+++ uClibc-0.9.32-rc1/libc/inet/netlinkaccess.h 2011-01-01 15:49:58.906931975 +0100 -@@ -22,15 +22,8 @@ - #include - #include - #include --#include -- - #if defined __ASSUME_NETLINK_SUPPORT || defined __UCLIBC_USE_NETLINK__ --#define _LINUX_TYPES_H --typedef uint8_t __u8; --typedef uint16_t __u16; --typedef uint32_t __u32; --typedef uint64_t __u64; --typedef int32_t __s32; -+#include - #include - #include - diff --git a/toolchain/uClibc/patches/trunk.patch b/toolchain/uClibc/patches/trunk.patch deleted file mode 100644 index 2d2c9f683..000000000 --- a/toolchain/uClibc/patches/trunk.patch +++ /dev/null @@ -1,196 +0,0 @@ -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