aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cortex-m-rt/macros/src/lib.rs6
-rw-r--r--cortex-m-rt/src/lib.rs12
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" {