]> 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>
Fri, 26 Feb 2021 15:15:29 +0000 (15:15 +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 524ba35c0d3b21ae35d099ca76abffc25fe5cced..1e06b401164c08088c3b4f143000afedceaab702 100644 (file)
@@ -42,6 +42,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 5d48e5e068528e2996e4ffd4729a219928f4e8ef..f75e592c3a8a21e4346239029ab12142bea599c1 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -136,6 +136,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
@@ -202,19 +216,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}"
@@ -568,6 +571,7 @@ enterchroot() {
                CONFIG_ROOT="${CONFIG_ROOT}" \
                CFLAGS="${CFLAGS} ${HARDENING_CFLAGS}" \
                CXXFLAGS="${CXXFLAGS} ${HARDENING_CFLAGS}" \
+               CFLAGS_LTO="${CFLAGS_LTO}" \
                RUSTFLAGS="${RUSTFLAGS}" \
                BUILDTARGET="${BUILDTARGET}" \
                CROSSTARGET="${CROSSTARGET}" \