https://github.com/rust-embedded/cortex-m/blob/0aa7b9023474ea04df1167125e90e9922ae8523f/cortex-m-rt/link.x.in#L147 the .gnu.sgstubs section in link.x doesn't seem to work with lld. It only works if I specify an exact start address, like: .gnu.sgstubs ORIGIN(NSC_STUBS) : ALIGN(32) { . = ALIGN(32); __veneer_base = .; *(.gnu.sgstubs*) . = ALIGN(32); } > NSC_STUBS