diff options
author | Kay Sievers <kay@vrfy.org> | 2015-06-03 17:17:08 +0200 |
---|---|---|
committer | Kay Sievers <kay@vrfy.org> | 2015-06-03 17:38:26 +0200 |
commit | 2b4919a68cf826efbe939291e6dc4f08e824dc41 (patch) | |
tree | b2bb291e359cf6266eb32dfc8a7d3ec8bfc172ec | |
parent | ce54255fa599d32738a311c77331fa611e6cfa5e (diff) |
build-sys: disable gc-sections if optimization is disabled
This way, development builds will not rely on gc-sections to
paper over cyclic link dependencies. Newly introduced broken
link requirements will immediatley fail.
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | configure.ac | 15 |
2 files changed, 12 insertions, 5 deletions
diff --git a/Makefile.am b/Makefile.am index 2e2abaead6..7603b2c0e1 100644 --- a/Makefile.am +++ b/Makefile.am @@ -6549,9 +6549,7 @@ clean-local: $(CLEAN_LOCAL_HOOKS) rm -f $(abs_srcdir)/hwdb/usb.ids $(abs_srcdir)/hwdb/pci.ids $(abs_srcdir)/hwdb/oui.txt \ $(abs_srcdir)/hwdb/iab.txt -# disable gc-sections to check limited toolchains for link breakage DISTCHECK_CONFIGURE_FLAGS = \ - CFLAGS='-fno-lto' LDFLAGS='-Wl,--as-needed -Wl,--no-gc-sections' \ --with-dbuspolicydir=$$dc_install_base/$(dbuspolicydir) \ --with-dbussessionservicedir=$$dc_install_base/$(dbussessionservicedir) \ --with-dbussystemservicedir=$$dc_install_base/$(dbussystemservicedir) \ diff --git a/configure.ac b/configure.ac index deafcc195b..ea29ab475a 100644 --- a/configure.ac +++ b/configure.ac @@ -183,8 +183,6 @@ CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\ -fdiagnostics-show-option \ -fno-strict-aliasing \ -fvisibility=hidden \ - -ffunction-sections \ - -fdata-sections \ -fstack-protector \ -fstack-protector-strong \ -fPIE \ @@ -208,10 +206,21 @@ AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*], [AC_MSG_RESULT([skipping -D_FORTIFY_SOURCE, optimization not enabled])]) AC_SUBST([OUR_CPPFLAGS], "$with_cppflags $sanitizer_cppflags") +AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*], + [CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\ + -Wl,--gc-sections])], + [AC_MSG_RESULT([skipping --gc-sections, optimization not enabled])]) +AC_SUBST([OUR_CFLAGS], "$with_ldflags $sanitizer_cflags") + +AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*], + [CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\ + -ffunction-sections -fdata-sections])], + [AC_MSG_RESULT([skipping -ffunction/data-section, optimization not enabled])]) +AC_SUBST([OUR_CFLAGS], "$with_cflags $sanitizer_cflags") + CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\ -Wl,--as-needed \ -Wl,--no-undefined \ - -Wl,--gc-sections \ -Wl,-z,relro \ -Wl,-z,now \ -pie \ |