summaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2014-09-17 23:41:56 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2014-09-17 23:41:56 +0200
commit2695bf4142b3d7154ef123dcc34d531c155af510 (patch)
treea0f7237e770533b262d22becdb14954b504c65b8 /libc
parentdef0d92193606e184d356c4d2d1752526573f87c (diff)
parenta9bdc5d28e692c04f51bcea1bb8e87f9c72ad09f (diff)
Merge remote-tracking branch 'origin/upstream'
Diffstat (limited to 'libc')
-rw-r--r--libc/Makefile.in4
-rw-r--r--libc/inet/Makefile.in2
-rw-r--r--libc/inet/rpc/Makefile.in2
-rw-r--r--libc/stdlib/system.c2
-rw-r--r--libc/sysdeps/linux/Makefile.commonarch12
-rw-r--r--libc/sysdeps/linux/common/Makefile.in2
-rw-r--r--libc/sysdeps/linux/m68k/__longjmp.S4
-rw-r--r--libc/sysdeps/linux/x86_64/crt1.S4
8 files changed, 22 insertions, 10 deletions
diff --git a/libc/Makefile.in b/libc/Makefile.in
index 3b6a17b32..9c8152d44 100644
--- a/libc/Makefile.in
+++ b/libc/Makefile.in
@@ -15,11 +15,9 @@ ifneq ($(VERSION_SCRIPT),)
VERSION_SCRIPT := -Wl,--version-script,$(VERSION_SCRIPT)
endif
+CFLAGS-libc :=# intentionally left blank
LDFLAGS-$(UCLIBC_FORMAT_DSBT_ELF)-libc.so := -Wl,--dsbt-index=2
LDFLAGS-libc.so := $(LDFLAGS) $(VERSION_SCRIPT) -Wl,-init,$(SYMBOL_PREFIX)__uClibc_init
-ifeq ($(UCLIBC_HAS_STDIO_FUTEXES),y)
-CFLAGS += -D__USE_STDIO_FUTEXES__
-endif
LIBS-libc.so := $(interp) $(ldso) $(top_builddir)lib/$(NONSHARED_LIBNAME)
# we have SHARED_LIBNAME=libc.so.$(ABI_VERSION) defined in Rules.mak
diff --git a/libc/inet/Makefile.in b/libc/inet/Makefile.in
index 5a5593838..3bfe4b29e 100644
--- a/libc/inet/Makefile.in
+++ b/libc/inet/Makefile.in
@@ -13,7 +13,7 @@ INET_DIR := $(top_srcdir)libc/inet
INET_OUT := $(top_builddir)libc/inet
V4_OR_V6 := $(findstring y,$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6))
-CFLAGS-inet := -DRESOLVER="\"resolv.c\""
+CFLAGS-y-libc/inet := -DRESOLVER="\"resolv.c\""
CSRC-y :=
# des uses ntohl
CSRC-$(findstring y,$(UCLIBC_HAS_CRYPT_IMPL)$(V4_OR_V6)) += ntohl.c
diff --git a/libc/inet/rpc/Makefile.in b/libc/inet/rpc/Makefile.in
index 65afc5359..9abe85dc8 100644
--- a/libc/inet/rpc/Makefile.in
+++ b/libc/inet/rpc/Makefile.in
@@ -7,7 +7,7 @@
subdirs += libc/inet/rpc
-CFLAGS-rpc := -fno-strict-aliasing
+CFLAGS-y-libc/inet/rpc := -fno-strict-aliasing
# For now, only compile the stuff needed to do an NFS mount....
CSRC_NFS = authunix_prot.c auth_none.c auth_unix.c bindresvport.c \
diff --git a/libc/stdlib/system.c b/libc/stdlib/system.c
index 8c5d25d51..3ef9a8b1c 100644
--- a/libc/stdlib/system.c
+++ b/libc/stdlib/system.c
@@ -18,6 +18,7 @@
#include <sysdep-cancel.h>
#endif
+extern __typeof(system) __libc_system;
#if !defined __UCLIBC_HAS_THREADS_NATIVE__
/* uClinux-2.0 has vfork, but Linux 2.0 doesn't */
#include <sys/syscall.h>
@@ -25,7 +26,6 @@
# define vfork fork
#endif
-extern __typeof(system) __libc_system;
int __libc_system(const char *command)
{
int wait_val, pid;
diff --git a/libc/sysdeps/linux/Makefile.commonarch b/libc/sysdeps/linux/Makefile.commonarch
index a001a44f1..1bf2dc511 100644
--- a/libc/sysdeps/linux/Makefile.commonarch
+++ b/libc/sysdeps/linux/Makefile.commonarch
@@ -20,8 +20,16 @@ libc-y += $(ARCH_OBJS-y)
libc-nomulti-y += $(ARCH_SOBJ)
objclean-y += CLEAN_$(subst $(top_builddir),,$(ARCH_OUT))
-CFLAGS-crti.S+=$(PICFLAG)
-CFLAGS-crtn.S+=$(PICFLAG)
+CFLAGS-OMIT-crt1.S := -D_LIBC_REENTRANT
+CFLAGS-OMIT-crti.S := -D_LIBC_REENTRANT
+CFLAGS-OMIT-crtn.S := -D_LIBC_REENTRANT
+CFLAGS-OMIT-crtreloc.c := -D_LIBC_REENTRANT
+CFLAGS-crti.S += $(PICFLAG)
+CFLAGS-crtn.S += $(PICFLAG)
+# Due to a "bug" in make these order_only prereqs inherit per-target flags.
+# Attempt to workaround this inconvenient behaviour:
+CFLAGS-OMIT-crt1.S += $(CFLAGS-rtld) -DIN_LIB=%
+CFLAGS-OMIT-crtreloc.c += $(CFLAGS-rtld) -DIN_LIB=%
CLEAN_$(subst $(top_builddir),,$(ARCH_OUT)):
$(do_rm) $(addprefix $(ARCH_OUT)/*., o os oS) $(CTOR_TARGETS) $(CRTS)
diff --git a/libc/sysdeps/linux/common/Makefile.in b/libc/sysdeps/linux/common/Makefile.in
index 85621544c..a175ab64c 100644
--- a/libc/sysdeps/linux/common/Makefile.in
+++ b/libc/sysdeps/linux/common/Makefile.in
@@ -115,6 +115,8 @@ ifneq ($(strip $(ARCH_OBJS-y)),)
CSRC-y := $(filter-out $(notdir $(ARCH_OBJS-y:.o=.c)) $(ARCH_OBJ_FILTEROUT-y),$(CSRC-y))
endif
+CFLAGS-OMIT-ssp.c := $(CFLAG_-fstack-protector) $(CFLAG_-fstack-protector-all) $(CFLAG_-fstack-protector-strong)
+CFLAGS-OMIT-ssp-local.c := $(CFLAG_-fstack-protector) $(CFLAG_-fstack-protector-all) $(CFLAG_-fstack-protector-strong)
CFLAGS-ssp.c := $(SSP_DISABLE_FLAGS)
CFLAGS-ssp-local.c := $(SSP_DISABLE_FLAGS)
diff --git a/libc/sysdeps/linux/m68k/__longjmp.S b/libc/sysdeps/linux/m68k/__longjmp.S
index 5033f02b4..a93d92bff 100644
--- a/libc/sysdeps/linux/m68k/__longjmp.S
+++ b/libc/sysdeps/linux/m68k/__longjmp.S
@@ -15,7 +15,9 @@ __longjmp:
movel #1, %d0
1:
moveml %a0@(JB_REGS), %d2-%d7/%a2-%a7
-#if defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
+#if defined __mcffpu__ && defined __UCLIBC_HAS_FPU__
+ fmovem %a0@(JB_FPREGS), %fp2-%fp7
+#elif defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
fmovemx %a0@(JB_FPREGS), %fp2-%fp7
#endif
movel %a0@(JB_PC), %sp@
diff --git a/libc/sysdeps/linux/x86_64/crt1.S b/libc/sysdeps/linux/x86_64/crt1.S
index 52b564cc8..87777dd5d 100644
--- a/libc/sysdeps/linux/x86_64/crt1.S
+++ b/libc/sysdeps/linux/x86_64/crt1.S
@@ -54,7 +54,9 @@
...
NULL
*/
-
+#if defined NOT_IN_libc
+# error error in build framework
+#endif
#include <features.h>
.text