rules.mk: use -fPIC instead of -fpic on arm64
authorStijn Tintel <stijn@linux-ipv6.be>
Fri, 4 Dec 2020 16:32:46 +0000 (18:32 +0200)
committerStijn Tintel <stijn@linux-ipv6.be>
Mon, 7 Dec 2020 16:23:13 +0000 (18:23 +0200)
Some packages fail to build on arm64 when PKG_ASLR_PIE_ALL=y, due to
machine-specific size restrictions on the global offset table.
While the manual instructs to recompile with -fPIC if it fails with
-fpic, by doing this per package, there is still a risk of random
breakage due to version bumps or other changes, so let's use -fPIC on
arm64 by default.

While comparing the sizes of 141 packages built with -fpic vs -fPIC,
most packages are either equal or smaller in size. Only 9 of the
compared packages turned out slightly larger.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
rules.mk

index 34222a3a71994c49445a3e2b2ef959bbeaad4f1e..f79340b1240a0c06d078115aea66ed6aec7e325b 100644 (file)
--- a/rules.mk
+++ b/rules.mk
@@ -77,7 +77,7 @@ IS_PACKAGE_BUILD := $(if $(filter package/%,$(BUILD_SUBDIR)),1)
 
 OPTIMIZE_FOR_CPU=$(subst i386,i486,$(ARCH))
 
-ifeq ($(ARCH),powerpc)
+ifneq (,$(findstring $(ARCH) , aarch64 aarch64_be powerpc ))
   FPIC:=-fPIC
 else
   FPIC:=-fpic