LLVM assembler compatibility for ARM_CRx_MPU #1303
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.



Description
Add
"ax"flags to.sectiondirectives forfreertos_system_callsin mpu_wrappers_v2_asm.S andprivileged_functionsin portASM.S.GNU as makes unrecognized sections loadable and writable by default, but LLVM's assembler requires specifying flags explicitly. Without them, the linker generates "has non-ABS relocation" errors when trying to link the resulting object files.
Test Steps
CMAKE_C_COMPILERandCMAKE_ASM_COMPILERto thebin/clangin your newly unpacked ATfE tree.cmake -B build-clang -S . && cmake --build build-clang --parallelBuilt against FreeRTOS-Kernel's main branch, you should see many "non-ABS relocation" linker errors. They look like these two examples below:
These errors should be resolved by this PR, and the demo binary images should compile and link without error (albeit with plenty of warnings).
NOTE: I don't have a LAUNCHXL2-RM46 or TMDXRM46HDK development kit, so I was only able to confirm that the demo compiles after my PR, not that it runs. I have tested this same change on my own project, though, and it works for me.
Checklist:
CORTEX_MPU_R4F_TI_RM46_HERCULES_GCC-clang.patch
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.