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 <sebastian_ml@gmx.net>
This commit is contained in:
Sebastian Kemper 2017-12-07 21:32:45 +01:00
parent 37603d22fb
commit d3a784ca78
5 changed files with 11 additions and 15 deletions

View File

@ -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

View File

@ -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

View File

@ -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" \

View File

@ -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" \

View File

@ -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" \