From 2e640690ba4a52cec6e94be6fc91c03499d7e3ea Mon Sep 17 00:00:00 2001 From: Paul Mathieu Date: Fri, 27 Jun 2025 13:01:06 -0700 Subject: [PATCH] mbv: global constructors ish --- mbv/apps/app.ld | 7 +++++++ mbv/hal/start.cc | 3 +++ 2 files changed, 10 insertions(+) diff --git a/mbv/apps/app.ld b/mbv/apps/app.ld index 65189b2..083785f 100644 --- a/mbv/apps/app.ld +++ b/mbv/apps/app.ld @@ -21,6 +21,13 @@ SECTIONS *(.rodata*) } > RAM + .init : + { + __init_array_start = .; + KEEP(*(.init_array*)) + __init_array_end = .; + } + .bss (NOLOAD) : { _bss_begin = .; diff --git a/mbv/hal/start.cc b/mbv/hal/start.cc index ab4f94a..aadf195 100644 --- a/mbv/hal/start.cc +++ b/mbv/hal/start.cc @@ -2,6 +2,7 @@ extern "C" uint32_t _bss_begin, _bss_end, _initial_stack_pointer; extern "C" int main(); +extern "C" void __libc_init_array(); __attribute__((section(".start"), used, naked)) void _start() { // clear .bss @@ -11,6 +12,8 @@ __attribute__((section(".start"), used, naked)) void _start() { asm volatile("la sp, _initial_stack_pointer"); + __libc_init_array(); + main(); while (true) {