arm-trusted-firmware/make_helpers
Boyan Karatotev 316f5c97f2 perf(build): don't check the compiler's flags for every target
The TF_FLAGS variable must be recursively expanded as the rules that use
it are defined before it has been fully defined. That has the
unfortunate side effect of spawning a subshell that calls the compiler
for every file that is being built, thrashing multicore build times.

We don't cater to the possibility of the toolchain changing mid build so
precomputing this value would be more sensible. Doing a clean build on
an Intel dual socket Xeon Gold 5218 (i.e. 64 threads) workstation used
to take about 9 seconds. After this patch it takes about 1.5. Single
core performance went from ~45 seconds to about 25.

Change-Id: If56ed0ab3cc42bc482d9dd05a41ffbff4dd7f147
Signed-off-by: Boyan Karatotev <boyan.karatotev@arm.com>
2024-11-08 12:27:46 +00:00
..
tbbr fix(tbbr): unrecognised 'tos-fw-key-cert' option 2023-09-07 11:14:52 +01:00
toolchains build: make Poetry optional 2024-09-26 14:23:20 +00:00
arch_features.mk feat(cpufeat): add ENABLE_FEAT_LS64_ACCDATA 2024-11-06 16:52:12 +01:00
armv7-a-cpus.mk refactor(build): merge march32/64 directives 2023-06-22 16:37:03 -05:00
build-rules.mk build: consolidate directory creation rules 2024-07-22 09:41:30 +00:00
build_env.mk build: consolidate directory creation rules 2024-07-22 09:41:30 +00:00
build_macros.mk perf(build): don't check the compiler's flags for every target 2024-11-08 12:27:46 +00:00
common.mk perf(build): be clever about uppercasing 2024-11-08 12:27:46 +00:00
cygwin.mk Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
defaults.mk feat(rmmd): el3 token sign during attestation 2024-10-15 08:20:28 -07:00
march.mk build: skip toolchain detection for some targets 2024-05-14 15:41:15 +00:00
msys.mk Use SPDX license identifiers 2017-05-03 09:39:28 +01:00
plat_helpers.mk feat(build): add ability to define platform specific defaults 2024-09-17 21:44:39 +03:00
toolchain.mk build: make Poetry optional 2024-09-26 14:23:20 +00:00
unix.mk build: consolidate directory creation rules 2024-07-22 09:41:30 +00:00
utilities.mk build: fix grouped targets on Make <= 4.2 2024-10-28 12:10:36 +00:00
windows.mk build: consolidate directory creation rules 2024-07-22 09:41:30 +00:00