From 38da12f7e40e2917878ca90e02f680ea480439bc Mon Sep 17 00:00:00 2001
From: Steven Barth <cyrus@openwrt.org>
Date: Fri, 19 Jun 2015 14:09:02 +0000
Subject: uclibc++: honor ldflags, disable SSP

Signed-off-by: Steven Barth <steven@midlink.org>

SVN-Revision: 46066
---
 package/libs/uclibc++/Makefile                     |  7 ++++---
 .../libs/uclibc++/patches/010-honor-ldflags.patch  | 23 ++++++++++++++++++++++
 2 files changed, 27 insertions(+), 3 deletions(-)
 create mode 100644 package/libs/uclibc++/patches/010-honor-ldflags.patch

(limited to 'package/libs')

diff --git a/package/libs/uclibc++/Makefile b/package/libs/uclibc++/Makefile
index 1196926..a726a1e 100644
--- a/package/libs/uclibc++/Makefile
+++ b/package/libs/uclibc++/Makefile
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=uclibc++
 PKG_VERSION:=0.2.4
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=uClibc++-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://cxx.uclibc.org/src/
@@ -44,7 +44,7 @@ UCLIBC_TARGET_ARCH:=$(shell echo $(ARCH) | sed -e s'/-.*//' \
 	-e 's/mipsel.*/mips/' \
 )
 
-TARGET_CFLAGS += $(FPIC)
+TARGET_CFLAGS += $(FPIC) -fno-stack-protector
 
 ifneq ($(CONFIG_CCACHE),)
 TARGET_CXX=$(TARGET_CXX_NOCACHE)
@@ -55,8 +55,9 @@ MAKE_FLAGS:= \
 	$(TARGET_CONFIGURE_OPTS) \
 	CPU_CFLAGS="$(TARGET_CFLAGS)" \
 	CROSS="$(TARGET_CROSS)" \
+	LDFLAGS="-Wl,--warn-common -Wl,--warn-once -Wl,-z,combreloc -Wl,-z,defs $(TARGET_LDFLAGS)" \
 	CP="$(CP)" \
-	GEN_LIBS="-lc $(LIBGCC_S)" \
+	GEN_LIBS="-lc $(LIBGCC_S) -lssp" \
 	check_as_needed=
 
 # check_as_needed overrides dependency on libgcc_s
diff --git a/package/libs/uclibc++/patches/010-honor-ldflags.patch b/package/libs/uclibc++/patches/010-honor-ldflags.patch
new file mode 100644
index 0000000..b1050cb
--- /dev/null
+++ b/package/libs/uclibc++/patches/010-honor-ldflags.patch
@@ -0,0 +1,23 @@
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -3,9 +3,9 @@ include $(TOPDIR)Rules.mak
+ 
+ WR_CXX := WRAPPER_INCLUDEDIR=-I$(TOPDIR)include $(TOPDIR)bin/g++-uc
+ 
+-LDFLAGS += -nodefaultlibs -shared -Wl,-soname,$(SHARED_MAJORNAME) $(BUILD_EXTRA_LIBRARIES)
++EXTRA_LDFLAGS += -nodefaultlibs -shared -Wl,-soname,$(SHARED_MAJORNAME) $(BUILD_EXTRA_LIBRARIES)
+ ifneq ($(DODEBUG),y)
+-LDFLAGS += -Wl,-s
++EXTRA_LDFLAGS += -Wl,-s
+ endif
+ 
+ SRCS =	$(wildcard *.cpp)
+@@ -60,7 +60,7 @@ $(LIBNAME).a: libgcc_eh libsupc $(EXOBJS
+ 	$(RANLIB) $@
+ 
+ $(SHARED_FULLNAME): libgcc_eh libsupc $(EXOBJS)
+-	$(CC) $(LDFLAGS) -o $@ $(EXOBJS) $(SUPOBJS) $(GCCOBJS) $(LIBS)
++	$(CC) $(LDFLAGS) $(EXTRA_LDFLAGS) -o $@ $(EXOBJS) $(SUPOBJS) $(GCCOBJS) $(LIBS)
+ 	$(LN) $@ $(SHARED_MAJORNAME)
+ 	$(LN) $(SHARED_MAJORNAME) $(LIBNAME).so
+ 
-- 
cgit v1.1