summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2020-12-16 21:53:05 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2020-12-16 21:53:05 +0100
commit39646dce329c1b88b1de8ef0c450813765fda202 (patch)
tree19941ae07e43f177ae667f84abe3fd19e0d8b64c
parenteb0c2e218ca1b0d733157bc2a11f8621d4ed2409 (diff)
build system: make -static-libgcc selectable in config
OpenWrt wants this off. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--Config.in8
-rw-r--r--Makefile.flags3
2 files changed, 10 insertions, 1 deletions
diff --git a/Config.in b/Config.in
index ac5b13b8d..a98a8b15b 100644
--- a/Config.in
+++ b/Config.in
@@ -529,6 +529,14 @@ config STACK_OPTIMIZATION_386
do not work with it (they use SSE instructions without
ensuring stack alignment).
+config STATIC_LIBGCC
+ bool "Use -static-libgcc"
+ default y
+ help
+ This option instructs gcc to link in a static version of its
+ support library, libgcc. This means that the binary will require
+ one fewer dynamic library at run time.
+
comment 'Installation Options ("make install" behavior)'
choice
diff --git a/Makefile.flags b/Makefile.flags
index cff935ff5..6ff4d7239 100644
--- a/Makefile.flags
+++ b/Makefile.flags
@@ -58,7 +58,8 @@ CFLAGS += $(call cc-option,-fno-builtin-strlen -fomit-frame-pointer -ffunction-s
CFLAGS += $(call cc-option,-fno-guess-branch-probability,)
CFLAGS += $(call cc-option,-funsigned-char,)
-ifneq ($(CC),clang)
+ifeq ($(CONFIG_STATIC_LIBGCC),y)
+# Disable it, for example, if you get
# "clang-9: warning: argument unused during compilation: '-static-libgcc'"
CFLAGS += $(call cc-option,-static-libgcc,)
endif