diff options
author | 2021-01-27 11:14:20 +0000 | |
---|---|---|
committer | 2021-01-27 12:51:26 +0000 | |
commit | f0e2218330adcffe7dc8a05869dac0e5399058c3 (patch) | |
tree | 8aa463a93a2f9a2a8e07cd97278ed6df85f5fb96 /cortex-m-rt/src | |
parent | 8a64815108bf266e97a82c9be89bbc2ccbf0a5c3 (diff) | |
download | cortex-m-f0e2218330adcffe7dc8a05869dac0e5399058c3.tar.gz cortex-m-f0e2218330adcffe7dc8a05869dac0e5399058c3.tar.zst cortex-m-f0e2218330adcffe7dc8a05869dac0e5399058c3.zip |
Only emit link_section for cortex-m.
Previously we always emitted link_section, even though it only had an
effect when our linker script was being used (and only made sense on
cortex-m targets). This breaks building the code for a MacOS target,
which is occasionally useful for running `cargo check` etc.
In the macros crate we don't have the target information available, so
instead we continue to emit link_section except specifically on MacOS.
Diffstat (limited to 'cortex-m-rt/src')
-rw-r--r-- | cortex-m-rt/src/lib.rs | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/cortex-m-rt/src/lib.rs b/cortex-m-rt/src/lib.rs index 93125b7..cb1b5f7 100644 --- a/cortex-m-rt/src/lib.rs +++ b/cortex-m-rt/src/lib.rs @@ -910,15 +910,13 @@ pub fn heap_start() -> *mut u32 { // Entry point is Reset. #[doc(hidden)] -#[cfg_attr(target_os = "macos", link_section = ".vector_table,reset_vector")] -#[cfg_attr(not(target_os = "macos"), link_section = ".vector_table.reset_vector")] +#[cfg_attr(cortex_m, link_section = ".vector_table.reset_vector")] #[no_mangle] pub static __RESET_VECTOR: unsafe extern "C" fn() -> ! = Reset; #[allow(unused_variables)] #[doc(hidden)] -#[cfg_attr(target_os = "macos", link_section = ".HardFault,default")] -#[cfg_attr(not(target_os = "macos"), link_section = ".HardFault.default")] +#[cfg_attr(cortex_m, link_section = ".HardFault.default")] #[no_mangle] pub unsafe extern "C" fn HardFault_(ef: &ExceptionFrame) -> ! { loop { @@ -1010,8 +1008,7 @@ pub union Vector { } #[doc(hidden)] -#[cfg_attr(target_os = "macos", link_section = ".vector_table,exceptions")] -#[cfg_attr(not(target_os = "macos"), link_section = ".vector_table.exceptions")] +#[cfg_attr(cortex_m, link_section = ".vector_table.exceptions")] #[no_mangle] pub static __EXCEPTIONS: [Vector; 14] = [ // Exception 2: Non Maskable Interrupt. @@ -1073,8 +1070,7 @@ pub static __EXCEPTIONS: [Vector; 14] = [ // to the default handler #[cfg(all(any(not(feature = "device"), test), not(armv6m)))] #[doc(hidden)] -#[cfg_attr(target_os = "macos", link_section = ".vector_table,interrupts")] -#[cfg_attr(not(target_os = "macos"), link_section = ".vector_table.interrupts")] +#[cfg_attr(cortex_m, link_section = ".vector_table.interrupts")] #[no_mangle] pub static __INTERRUPTS: [unsafe extern "C" fn(); 240] = [{ extern "C" { |