From: Michael Tremer Date: Fri, 26 Feb 2021 11:26:57 +0000 (+0000) Subject: make.sh: Add -flto to CFLAGS X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bbc5eb3662c1ae22cce7e92ca48caf7b7614f0d0;p=people%2Fms%2Fipfire-2.x.git make.sh: Add -flto to CFLAGS 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 --- diff --git a/lfs/Config b/lfs/Config index eadbbc4081..1bbb58f63d 100644 --- a/lfs/Config +++ b/lfs/Config @@ -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 0993247b28..fe76657e0b 100755 --- 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}" \