zephyr/cmake
Ederson de Souza 321e395a8f linker: Include libkernel.a in the whole-archive when llext is enabled
Differently from other libraries, which are included whole in the final
Zephyr ELF, libkernel.a itself isn't. Assuming this is intended to
enable optimisations (if it isn't, this patch will break things) - linker
can remove parts of the kernel that are not used by the application.

However, when considering Linkable Loadable Extensions (llext), this
optimisations can be counterproductive: for instance, syscalls that are
not used by the application won't be available for extensions. It won't
matter if someone "EXPORT_SYMBOL" for them, or even try to keep them
using LINKER_KEEP, they'll be gone.

To avoid that, this patches includes, when CONFIG_LLEXT=y, libkernel.a
inside the linker "whole-archive" block. This ends up making it consider
libkernel.a as a library whose all symbols should be kept. Note this
doesn't mean that all symbols will be there - things compiled out via
Kconfig will naturally still be out.

Signed-off-by: Ederson de Souza <ederson.desouza@intel.com>
2024-03-26 19:31:56 -04:00
..
app
bintools buildsystem: Add an option to enable LTO 2024-02-02 19:49:36 +01:00
compiler cmake clang/compiler_flags.cmake: Clarify comment for native targets 2024-03-20 15:43:05 +01:00
emu config: qemu: Add QEMU_EXTRA_FLAGS config option 2023-10-20 15:03:55 +02:00
flash west runner: Add exe file to configuration 2023-10-10 15:26:09 +02:00
ide
linker linker: Include libkernel.a in the whole-archive when llext is enabled 2024-03-26 19:31:56 -04:00
linker_script input: rename the internal callback struct to input_callback 2024-03-19 14:30:39 +01:00
makefile_exports
modules cmake: boards: Error out if multiple boards use the same name 2024-03-26 16:20:08 -04:00
reports
sca cmake: sca: codechecker: Allow processing results even on errors 2024-03-11 10:39:48 -04:00
toolchain kconfig: llvm: riscv: Advertise TLS support when using llvm for RISC-V 2024-03-18 13:16:06 +01:00
usage cmake: add initlevels to usage 2023-11-24 11:39:21 +01:00
util
cfb.cmake
extra_flags.cmake cmake: extra_flags: Use zephyr_get 2023-10-24 11:35:27 +02:00
gcc-m-cpu.cmake soc: arm64: Add agilex5 soc folder and its configurations 2023-07-25 16:58:01 +00:00
gcc-m-fpu.cmake
gen_version_h.cmake cmake: generalize VERSION infrastructure for better reuse 2023-05-17 13:56:58 +02:00
hex.cmake cmake: hex: deprecate use of to_hex() and from_hex() utility functions 2024-01-22 09:48:33 +00:00
kobj.cmake
mcuboot.cmake cmake: mcuboot: set align to 1 for overwrite only mode 2024-01-12 09:59:51 +01:00
package_helper.cmake cmake: stub zephyr_set(... SCOPE ...) function in package helper 2023-10-05 09:43:28 +01:00
pristine.cmake
target_toolchain_flags.cmake
verify-toolchain.cmake
vif.cmake USB-C: genVIF: Cleanup and add support to pick static data from input 2023-05-26 13:54:43 -04:00