build: make sure asm gets built with -DPIC
authorPhilip Prindeville <philipp@redfish-solutions.com>
Fri, 19 Mar 2021 21:09:45 +0000 (15:09 -0600)
committerHauke Mehrtens <hauke@hauke-m.de>
Sat, 10 Apr 2021 13:05:18 +0000 (15:05 +0200)
Fixes issue openwrt/packages#14921, whereby inline ASM wasn't getting
built as PIC; look at gmp-6.2.1/mpn/x86/pentium/popcount.asm for
example:

ifdef(`PIC',`
...

for a routine that exists in both PIC and non-PIC versions.

Make sure that wherever $(FPIC) gets passed as a variable expansion
that it gets quoted where necessary (such as setting environment
variables in shell commands).

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
(cherry picked from commit af22991e03cae55f96b06996df2ff16752cec5d5)

rules.mk

index 8f41ff5861a046bcad893b9a11874f96e3f43e3e..f31d9bb113e25f83475177ca83125d98ba9346a6 100644 (file)
--- a/rules.mk
+++ b/rules.mk
@@ -75,12 +75,12 @@ IS_PACKAGE_BUILD := $(if $(filter package/%,$(BUILD_SUBDIR)),1)
 OPTIMIZE_FOR_CPU=$(subst i386,i486,$(ARCH))
 
 ifneq (,$(findstring $(ARCH) , aarch64 aarch64_be powerpc ))
-  FPIC:=-fPIC
+  FPIC:=-DPIC -fPIC
 else
-  FPIC:=-fpic
+  FPIC:=-DPIC -fpic
 endif
 
-HOST_FPIC:=-fPIC
+HOST_FPIC:=-DPIC -fPIC
 
 ARCH_SUFFIX:=$(call qstrip,$(CONFIG_CPU_TYPE))
 GCC_ARCH:=