zephyr/subsys/llext
Mathieu Choplain a07d493c9d llext: relocate all symbols regardless of type
In the current implementation, the LLEXT linker will only apply
relocations targeting a given symbol if it has a specfic symbol type.
This is overzealous and causes issues on some platforms, as some symbols
that need to be relocated are skipped due to being of a "bad" type.

Ignore the symbol type when performing relocation to solve this problem,
but also add checks to ensure we don't attempt to relocate symbols with
an invalid section index. If such a relocation is found, return an error
instead of ignoring the relocation entry to ensure that it is impossible
to execute code from a (partially) unrelocated LLEXT.

Also remove all hacks added to circumvent this issue:
* qemu_cortex_r5 exclusion from test cases
* unnecessary exclusion of some flags when building with LLEXT EDK

Fixes #72832.

Signed-off-by: Mathieu Choplain <mathieu.choplain@st.com>
2024-05-31 16:38:09 -05:00
..
buf_loader.c
CMakeLists.txt llext: export some symbols 2023-12-01 10:08:12 -05:00
Kconfig llext: (cosmetic) fix a misplaced space and re-use a variable 2024-05-30 09:50:17 -05:00
llext_export.c build: namespace syscall sources to zephyr/ 2024-05-28 22:03:55 +02:00
llext.c llext: relocate all symbols regardless of type 2024-05-31 16:38:09 -05:00
shell.c llext: shell: fix command completions 2023-12-06 18:01:34 -05:00