From 96cea217ae8bb0464d7e5774d806435abd6ebb7f Mon Sep 17 00:00:00 2001 From: Ian McIntyre Date: Fri, 29 Sep 2023 16:16:43 -0400 Subject: Ensure __pre_init remains in binary GNU's LTO has a tendency to remove __pre_init, which is written in inline assembly. It doesn't realize that the reset handler references this symbol, because the reset handler is also written in inline assembly. Not sure why LLVM's linker doesn't also optimize it away, but this commit ensures that __pre_init remains in the output file. --- src/host/imxrt-link.x | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/host/imxrt-link.x b/src/host/imxrt-link.x index 71b697e..6c28f99 100644 --- a/src/host/imxrt-link.x +++ b/src/host/imxrt-link.x @@ -15,6 +15,7 @@ ENTRY(Reset); EXTERN(__EXCEPTIONS); /* depends on all the these PROVIDED symbols */ EXTERN(DefaultHandler); +EXTERN(__pre_init); PROVIDE(NonMaskableInt = DefaultHandler); EXTERN(HardFaultTrampoline); -- cgit v1.2.3