nuttx/boards/arm
leisiji 0f4f53f3ea boards/arm/qemu: Fix KASAN global sections placement in linker script
1. The .kasan.unused and .kasan.global sections contain compiler-generated
data with the WRITE flag (.data..LASAN*), but the linker script placed
them before .text without specifying a memory region. The linker could
not put writable sections into the read-only ROM (rx) region, so it
silently placed them at 0x40000000 in RAM, creating an extra LOAD
segment that conflicts with QEMU virt's RAM layout and causes boot
failure.
2. The .kasan.global should be placed before .data because .data
patten (*(.data*)) includes .kasan.global pattern (*(.data..LASAN0)),
and it cause kasan_global.py cannot find .kasan.global section to
generate the g_global_region array.
3. Move .kasan.shadows from before .text to after .rodata. Placing it
before .text causes .text to shift when .kasan.shadows transitions
from empty (pass 1) to populated (pass 2+), preventing the multi-pass
link addresses from converging. After .rodata it does not affect any
upstream section addresses.
4. Add CMake post-build step to strip .kasan.unused and .kasan.global
sections from the final binary, matching the Makefile build behavior.

Signed-off-by: leisiji <2265215145@qq.com>
2026-07-03 10:32:00 +08:00
..
a1x/pcduino-a10 boards/comments: Remove legacy comments 2026-05-04 12:16:11 -03:00
am67/t3-gem-o1 boards/arm/am67: Add support for t3-gem-o1 board. 2026-05-28 14:16:03 +02:00
am335x/beaglebone-black boards/comments: Remove legacy comments 2026-05-04 12:16:11 -03:00
at32/at32f437-mini boards/comments: Remove legacy comments 2026-05-04 12:16:11 -03:00
c5471/c5471evm boards/arm: Replace board_app_initialize 2026-05-02 18:36:46 +08:00
common/stm32 !boards/arm/stm32: move common board sources 2026-07-03 10:27:27 +08:00
csk6 boards/arm: Replace board_app_initialize 2026-05-02 18:36:46 +08:00
cxd56xx !sched/clock: remove CONFIG_SYSTEM_TIME64 and always use 64-bit time 2026-05-19 16:21:28 +08:00
dm320/ntosd-dm320 boards/arm: Replace board_app_initialize 2026-05-02 18:36:46 +08:00
efm32 include/debug.h: Move to include/nuttx/debug.h 2026-04-07 07:50:06 -03:00
eoss3/quickfeather boards/comments: Remove legacy comments 2026-05-04 12:16:11 -03:00
fvp-v8r-aarch32/fvp-armv8r-aarch32 !sched/clock: remove CONFIG_SYSTEM_TIME64 and always use 64-bit time 2026-05-19 16:21:28 +08:00
gd32f4 boards/comments: Remove legacy comments 2026-05-04 12:16:11 -03:00
ht32f491x3/esk32 boards/config: Remove final mentions of NSH_ARCHINIT 2026-05-02 15:25:45 -03:00
imx6/sabre-6quad boards/arm: Replace board_app_initialize 2026-05-02 18:36:46 +08:00
imx9 boards/config: Remove final mentions of NSH_ARCHINIT 2026-05-02 15:25:45 -03:00
imxrt !drivers/pwm: remove PWM_MULTICHAN option 2026-05-18 11:35:25 -04:00
kinetis boards/comments: Remove legacy comments 2026-05-04 12:16:11 -03:00
kl boards/arm: Replace board_app_initialize 2026-05-02 18:36:46 +08:00
lc823450/lc823450-xgevk !sched/clock: remove CONFIG_SYSTEM_TIME64 and always use 64-bit time 2026-05-19 16:21:28 +08:00
lpc17xx_40xx boards/comments: Remove legacy comments 2026-05-04 12:16:11 -03:00
lpc31xx arch/ceva: Replace board_app_initialize 2026-05-02 18:36:46 +08:00
lpc43xx arch/ceva: Replace board_app_initialize 2026-05-02 18:36:46 +08:00
lpc54xx/lpcxpresso-lpc54628 boards/comments: Remove legacy comments 2026-05-04 12:16:11 -03:00
lpc214x boards/arm: Replace board_app_initialize 2026-05-02 18:36:46 +08:00
lpc2378/olimex-lpc2378 boards/arm: Replace board_app_initialize 2026-05-02 18:36:46 +08:00
max326xx/max32660-evsys boards/comments: Remove legacy comments 2026-05-04 12:16:11 -03:00
mcx-nxxx/frdm-mcxn236 boards/arm: Replace board_app_initialize 2026-05-02 18:36:46 +08:00
moxart/moxa !libc/stream: remove CONFIG_LIBC_LONG_LONG and always support long long 2026-05-19 16:21:28 +08:00
mps !libc/stream: remove CONFIG_LIBC_LONG_LONG and always support long long 2026-05-19 16:21:28 +08:00
mx8mp/verdin-mx8mp boards/arm: Replace board_app_initialize 2026-05-02 18:36:46 +08:00
nrf52 !drivers/pwm: remove PWM_MULTICHAN option 2026-05-18 11:35:25 -04:00
nrf53 !libc/stream: remove CONFIG_LIBC_LONG_LONG and always support long long 2026-05-19 16:21:28 +08:00
nrf91 boards/comments: Remove legacy comments 2026-05-04 12:16:11 -03:00
nuc1xx/nutiny-nuc120 boards/arm: Replace board_app_initialize 2026-05-02 18:36:46 +08:00
phy62xx/phy6222 boards/comments: Remove legacy comments 2026-05-04 12:16:11 -03:00
qemu boards/arm/qemu: Fix KASAN global sections placement in linker script 2026-07-03 10:32:00 +08:00
ra4 boards/comments: Remove legacy comments 2026-05-04 12:16:11 -03:00
rp23xx !libc/stream: remove CONFIG_LIBC_LONG_LONG and always support long long 2026-05-19 16:21:28 +08:00
rp2040 !libc/stream: remove CONFIG_LIBC_LONG_LONG and always support long long 2026-05-19 16:21:28 +08:00
s32k1xx boards/comments: Remove legacy comments 2026-05-04 12:16:11 -03:00
s32k3xx boards/comments: Remove legacy comments 2026-05-04 12:16:11 -03:00
sam34 boards/comments: Remove legacy comments 2026-05-04 12:16:11 -03:00
sama5 boards/arm: Replace board_app_initialize 2026-05-02 18:36:46 +08:00
samd2l2 boards/comments: Remove legacy comments 2026-05-04 12:16:11 -03:00
samd5e5 boards/comments: Remove legacy comments 2026-05-04 12:16:11 -03:00
samv7 !libc/stream: remove CONFIG_LIBC_LONG_LONG and always support long long 2026-05-19 16:21:28 +08:00
stm32c0 !arch/stm32f0l0g0: move stm32c0 and finalize the directory split 2026-07-03 10:27:27 +08:00
stm32f0 !arch/stm32f0l0g0: move stm32f0 to its own directory 2026-07-03 10:27:27 +08:00
stm32f1 boards: fix various stm32 boards errors 2026-07-03 10:27:27 +08:00
stm32f2 boards: fix various stm32 boards errors 2026-07-03 10:27:27 +08:00
stm32f3 !arch/stm32: move stm32f3 to its own directory 2026-07-03 10:27:27 +08:00
stm32f4 !arch/stm32: move stm32f4 to its own directory 2026-07-03 10:27:27 +08:00
stm32f7 stm32f746g-disco: Fix USERLED support 2026-07-03 10:27:39 +08:00
stm32g0 !arch/stm32f0l0g0: move stm32g0 to its own directory 2026-07-03 10:27:27 +08:00
stm32g4 !arch/stm32: move stm32g4 to its own directory 2026-07-03 10:27:27 +08:00
stm32h5/nucleo-h563zi !arch/stm32h5: use common STM32 Kconfig symbols 2026-06-24 23:14:35 +08:00
stm32h7 !arch/stm32h7: use common STM32 Kconfig symbols 2026-06-24 23:14:35 +08:00
stm32l0 !arch/stm32f0l0g0: move stm32l0 to its own directory 2026-07-03 10:27:27 +08:00
stm32l1 !arch/stm32: move stm32l1 and finalize the directory split 2026-07-03 10:27:27 +08:00
stm32l4 boards/arm/stm32l4: build through common STM32 board infrastructure 2026-07-03 10:27:27 +08:00
stm32l5 !arch/stm32l5: use common STM32 Kconfig symbols 2026-06-24 23:14:35 +08:00
stm32n6/nucleo-n657x0-q !arch/stm32n6: use common STM32 Kconfig symbols 2026-06-24 23:14:35 +08:00
stm32u5 !arch/stm32u5: use common STM32 Kconfig symbols 2026-06-24 23:14:35 +08:00
stm32wb !arch/stm32wb: use common STM32 Kconfig symbols 2026-06-24 23:14:35 +08:00
stm32wl5/nucleo-wl55jc !arch/stm32wl5: use common STM32 Kconfig symbols 2026-06-24 23:14:35 +08:00
str71x/olimex-strp711 boards/arm: Replace board_app_initialize 2026-05-02 18:36:46 +08:00
tiva board: enable LTO on g431 nsh boards and fix LTO link with toolchain switch 2026-05-19 16:21:28 +08:00
tlsr82/tlsr8278adk80d !libc/stream: remove CONFIG_LIBC_LONG_LONG and always support long long 2026-05-19 16:21:28 +08:00
tms570 boards/arm: Replace board_app_initialize 2026-05-02 18:36:46 +08:00
xmc4 boards/arm: Replace board_app_initialize 2026-05-02 18:36:46 +08:00