diff options
-rw-r--r-- | cortex-m-rt/macros/src/lib.rs | 6 | ||||
-rw-r--r-- | cortex-m-rt/src/lib.rs | 12 |
2 files changed, 8 insertions, 10 deletions
diff --git a/cortex-m-rt/macros/src/lib.rs b/cortex-m-rt/macros/src/lib.rs index 74041ef..fe0264f 100644 --- a/cortex-m-rt/macros/src/lib.rs +++ b/cortex-m-rt/macros/src/lib.rs @@ -278,8 +278,10 @@ pub fn exception(args: TokenStream, input: TokenStream) -> TokenStream { #(#attrs)* #[doc(hidden)] #[export_name = "HardFault"] - #[cfg_attr(target_os = "macos", link_section = ".HardFault,user")] - #[cfg_attr(not(target_os = "macos"), link_section = ".HardFault.user")] + // Only emit link_section when building for embedded targets, + // because some hosted platforms (used to check the build) + // cannot handle the long link section names. + #[cfg_attr(target_os = "none", link_section = ".HardFault.user")] pub unsafe extern "C" fn #tramp_ident(frame: &::cortex_m_rt::ExceptionFrame) { #ident(frame) } 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" { |