mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2024-12-24 07:33:04 +00:00
59 lines
2.0 KiB
Diff
59 lines
2.0 KiB
Diff
|
From 7ec87fbbc3cac99b4173d082dd6195f47c9a32e7 Mon Sep 17 00:00:00 2001
|
||
|
From: Steven Barth <steven@midlink.org>
|
||
|
Date: Mon, 22 Jun 2015 11:01:56 +0200
|
||
|
Subject: [PATCH] Add libssp_nonshared.a so GCC's is not needed
|
||
|
|
||
|
Signed-off-by: Steven Barth <steven@midlink.org>
|
||
|
---
|
||
|
Makefile | 10 ++++++++--
|
||
|
libssp_nonshared/__stack_chk_fail_local.c | 2 ++
|
||
|
2 files changed, 10 insertions(+), 2 deletions(-)
|
||
|
create mode 100644 libssp_nonshared/__stack_chk_fail_local.c
|
||
|
|
||
|
diff --git a/Makefile b/Makefile
|
||
|
index 2eb7b30..bfcabf7 100644
|
||
|
--- a/Makefile
|
||
|
+++ b/Makefile
|
||
|
@@ -48,7 +48,7 @@ CRT_LIBS = lib/crt1.o lib/Scrt1.o lib/rcrt1.o lib/crti.o lib/crtn.o
|
||
|
STATIC_LIBS = lib/libc.a
|
||
|
SHARED_LIBS = lib/libc.so
|
||
|
TOOL_LIBS = lib/musl-gcc.specs
|
||
|
-ALL_LIBS = $(CRT_LIBS) $(STATIC_LIBS) $(SHARED_LIBS) $(EMPTY_LIBS) $(TOOL_LIBS)
|
||
|
+ALL_LIBS = $(CRT_LIBS) $(STATIC_LIBS) $(SHARED_LIBS) $(EMPTY_LIBS) $(TOOL_LIBS) lib/libssp_nonshared.a
|
||
|
ALL_TOOLS = tools/musl-gcc
|
||
|
|
||
|
LDSO_PATHNAME = $(syslibdir)/ld-musl-$(ARCH)$(SUBARCH).so.1
|
||
|
@@ -103,7 +103,8 @@ NOSSP_SRCS = $(wildcard crt/*.c) \
|
||
|
src/env/__libc_start_main.c src/env/__init_tls.c \
|
||
|
src/thread/__set_thread_area.c src/env/__stack_chk_fail.c \
|
||
|
src/string/memset.c src/string/memcpy.c \
|
||
|
- src/ldso/dlstart.c src/ldso/dynlink.c
|
||
|
+ src/ldso/dlstart.c src/ldso/dynlink.c \
|
||
|
+ libssp_nonshared/__stack_chk_fail_local.c
|
||
|
$(NOSSP_SRCS:%.c=%.o) $(NOSSP_SRCS:%.c=%.lo): CFLAGS += $(CFLAGS_NOSSP)
|
||
|
|
||
|
$(CRT_LIBS:lib/%=crt/%): CFLAGS += -DCRT
|
||
|
@@ -144,6 +145,11 @@ lib/libc.a: $(OBJS)
|
||
|
$(AR) rc $@ $(OBJS)
|
||
|
$(RANLIB) $@
|
||
|
|
||
|
+lib/libssp_nonshared.a: libssp_nonshared/__stack_chk_fail_local.o
|
||
|
+ rm -f $@
|
||
|
+ $(AR) rc $@ $<
|
||
|
+ $(RANLIB) $@
|
||
|
+
|
||
|
$(EMPTY_LIBS):
|
||
|
rm -f $@
|
||
|
$(AR) rc $@
|
||
|
diff --git a/libssp_nonshared/__stack_chk_fail_local.c b/libssp_nonshared/__stack_chk_fail_local.c
|
||
|
new file mode 100644
|
||
|
index 0000000..2b403a6
|
||
|
--- /dev/null
|
||
|
+++ b/libssp_nonshared/__stack_chk_fail_local.c
|
||
|
@@ -0,0 +1,2 @@
|
||
|
+extern void __stack_chk_fail(void);
|
||
|
+void __attribute__((visibility ("hidden"))) __stack_chk_fail_local(void) { __stack_chk_fail(); }
|
||
|
--
|
||
|
2.1.4
|
||
|
|