]> git.ipfire.org Git - people/ms/ipfire-2.x.git/commitdiff
make.sh: Add -flto to CFLAGS
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 26 Feb 2021 11:26:57 +0000 (11:26 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 15 Apr 2021 14:05:49 +0000 (14:05 +0000)
This will compile the whole distribition with LTO.

GCC will generate some intermediate representation of the code which
will be compiled into binary at linking stage, after an optimizer
has removed any unneeded symbols and the inliner has had a chance to
inline functions across source files.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
lfs/Config
make.sh

index eadbbc408184304234eb80825acc22bba6b90b19..1bbb58f63dd429c53a555f5c6f6edfc133bd3f5a 100644 (file)
@@ -44,6 +44,9 @@ PARALLELISM = $(shell echo $$( \
        fi) \
 )
 
+# Enable LTO
+CFLAGS += $(CFLAGS_LTO)
+
 MAKETUNING = -j$(PARALLELISM)
 
 ifeq "$(BUILD_ARCH)" "aarch64"
diff --git a/make.sh b/make.sh
index 0993247b2872421bfc501fa4b3fe0d73f030a27b..fe76657e0b555e6cb79cc33eac13e59eabe94f75 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -144,6 +144,20 @@ system_memory() {
 configure_build() {
        local build_arch="${1}"
 
+       # Determine parallelism
+       # We assume that each process consumes about
+       # 128MB of memory. Therefore we find out how
+       # many processes fit into memory.
+       local mem_max=$(( ${SYSTEM_MEMORY} / 128 ))
+       local cpu_max=$(( ${SYSTEM_PROCESSORS} + 1 ))
+
+       local parallelism
+       if [ ${mem_max} -lt ${cpu_max} ]; then
+               parallelism=${mem_max}
+       else
+               parallelism=${cpu_max}
+       fi
+
        if [ "${build_arch}" = "default" ]; then
                build_arch="$(configure_build_guess)"
        fi
@@ -217,19 +231,8 @@ configure_build() {
        CFLAGS="-O2 -pipe -Wall -fexceptions -fPIC ${CFLAGS_ARCH}"
        CXXFLAGS="${CFLAGS}"
 
-       # Determine parallelism
-       # We assume that each process consumes about
-       # 128MB of memory. Therefore we find out how
-       # many processes fit into memory.
-       local mem_max=$(( ${SYSTEM_MEMORY} / 128 ))
-       local cpu_max=$(( ${SYSTEM_PROCESSORS} + 1 ))
-
-       local parallelism
-       if [ ${mem_max} -lt ${cpu_max} ]; then
-               parallelism=${mem_max}
-       else
-               parallelism=${cpu_max}
-       fi
+       # Enable LTO
+       CFLAGS_LTO="-flto=${parallelism} -ffat-lto-objects"
 
        # Use this as default PARALLELISM
        DEFAULT_PARALLELISM="${parallelism}"
@@ -587,6 +590,7 @@ enterchroot() {
                CONFIG_ROOT="${CONFIG_ROOT}" \
                CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \
                CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \
+               CFLAGS_LTO="${CFLAGS_LTO}" \
                RUSTFLAGS="${RUSTFLAGS}" \
                BUILDTARGET="${BUILDTARGET}" \
                CROSSTARGET="${CROSSTARGET}" \