From d3a784ca7829973a7ac0379ba33b2f0ba1597941 Mon Sep 17 00:00:00 2001 From: Sebastian Kemper Date: Thu, 7 Dec 2017 21:32:45 +0100 Subject: [PATCH] baresip: fix build failure on 32bit x86 targets re and baresip builds for 32bit x86 targets are currently failing: build-i386/sip/auth.o: In function `sip_auth_encode': /build/lede-snapshots/i386_pentium/build/sdk/build_dir/target-i386_pentium_musl/re-0.5.6/src/sip/auth.c:279: undefined reference to `__stack_chk_fail_local' The undefined references occur because there is no linking done to ssp. Fix this by setting LD to TARGET_CC, so ld is not called directly. This also means one patch is not needed anymore. Do the same for rem and restund as they basically all share the same build system. Compile-tested for x86, x86_64 and mips. Signed-off-by: Sebastian Kemper --- libs/re/Makefile | 6 +++++- libs/re/patches/003-fix-linker-call.patch | 11 ----------- libs/rem/Makefile | 3 ++- net/baresip/Makefile | 3 ++- net/restund/Makefile | 3 ++- 5 files changed, 11 insertions(+), 15 deletions(-) delete mode 100644 libs/re/patches/003-fix-linker-call.patch diff --git a/libs/re/Makefile b/libs/re/Makefile index d1fc68c..5ce0c58 100644 --- a/libs/re/Makefile +++ b/libs/re/Makefile @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=re PKG_VERSION:=0.5.6 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://www.creytiv.com/pub @@ -41,6 +41,9 @@ endef # CFLAGS are picked up from the environment, as well as CPPFLAGS (and LD etc.). # But LDFLAGS aren't picked up, so they need to be handed over via # EXTRA_LFLAGS. +# +# LD is changed to TARGET_CC to fix build failures on x86 32bit. Without this +# there's no linking to ssp, which results in undefined references. ifneq ($(CONFIG_USE_GLIBC)$(CONFIG_USE_MUSL),) TARGET_CFLAGS+=-D_GNU_SOURCE @@ -48,6 +51,7 @@ endif MAKE_FLAGS+= \ EXTRA_LFLAGS="$(TARGET_LDFLAGS)" \ + LD="$(TARGET_CC)" \ SYSROOT="$(shell $(FIND) $(TOOLCHAIN_DIR) -path '*/include/pthread.h' | sed -ne '1s|/include/pthread.h||p')" \ SYSROOT_ALT="$(STAGING_DIR)/usr" \ RELEASE=1 diff --git a/libs/re/patches/003-fix-linker-call.patch b/libs/re/patches/003-fix-linker-call.patch deleted file mode 100644 index 263bbb2..0000000 --- a/libs/re/patches/003-fix-linker-call.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/mk/re.mk -+++ b/mk/re.mk -@@ -235,7 +235,7 @@ ifeq ($(OS),linux) - LFLAGS += -fPIC - SH_LFLAGS += -shared - MOD_LFLAGS += -- APP_LFLAGS += -rdynamic -+ APP_LFLAGS += --export-dynamic - AR := ar - AFLAGS := crD - endif diff --git a/libs/rem/Makefile b/libs/rem/Makefile index ab4f503..d50ae87 100644 --- a/libs/rem/Makefile +++ b/libs/rem/Makefile @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=rem PKG_VERSION:=0.5.2 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://www.creytiv.com/pub @@ -35,6 +35,7 @@ endef MAKE_FLAGS+= \ EXTRA_LFLAGS="$(TARGET_LDFLAGS)" \ + LD="$(TARGET_CC)" \ LIBRE_MK="$(STAGING_DIR)/usr/share/re/re.mk" \ LIBRE_INC="$(STAGING_DIR)/usr/include/re" \ LIBRE_SO="$(STAGING_DIR)/usr/lib" \ diff --git a/net/baresip/Makefile b/net/baresip/Makefile index 9e47f59..65d199b 100644 --- a/net/baresip/Makefile +++ b/net/baresip/Makefile @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=baresip PKG_VERSION:=0.5.6 -PKG_RELEASE:=3 +PKG_RELEASE:=4 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://www.creytiv.com/pub @@ -93,6 +93,7 @@ BARESIP_MOD_OPTIONS:= \ MAKE_FLAGS+= \ EXTRA_LFLAGS="$(TARGET_LDFLAGS)" \ + LD="$(TARGET_CC)" \ LIBRE_MK="$(STAGING_DIR)/usr/share/re/re.mk" \ LIBRE_INC="$(STAGING_DIR)/usr/include/re" \ LIBRE_SO="$(STAGING_DIR)/usr/lib" \ diff --git a/net/restund/Makefile b/net/restund/Makefile index d2518cd..21c956e 100644 --- a/net/restund/Makefile +++ b/net/restund/Makefile @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=restund PKG_VERSION:=0.4.12 -PKG_RELEASE:=3 +PKG_RELEASE:=4 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://www.creytiv.com/pub @@ -48,6 +48,7 @@ RESTUND_MOD_OPTIONS:= \ MAKE_FLAGS+= \ EXTRA_LFLAGS="$(TARGET_LDFLAGS)" \ + LD="$(TARGET_CC)" \ LIBRE_MK="$(STAGING_DIR)/usr/share/re/re.mk" \ LIBRE_INC="$(STAGING_DIR)/usr/include/re" \ LIBRE_SO="$(STAGING_DIR)/usr/lib" \ -- 2.30.2