diff --git a/arch/arm/src/eoss3/eoss3_start.c b/arch/arm/src/eoss3/eoss3_start.c index 57a3a83aac..d2238e26fa 100644 --- a/arch/arm/src/eoss3/eoss3_start.c +++ b/arch/arm/src/eoss3/eoss3_start.c @@ -98,7 +98,7 @@ static inline void eoss3_fpuconfig(void); #ifdef CONFIG_ARMV7M_STACKCHECK /* we need to get r10 set before we can allow instrumentation calls */ -void __start(void) __attribute__ ((no_instrument_function)); +void __start(void) noinstrument_function; #endif /**************************************************************************** diff --git a/arch/arm/src/imxrt/imxrt_start.c b/arch/arm/src/imxrt/imxrt_start.c index 681910d776..d3417ea47a 100644 --- a/arch/arm/src/imxrt/imxrt_start.c +++ b/arch/arm/src/imxrt/imxrt_start.c @@ -81,7 +81,7 @@ static inline void imxrt_fpuconfig(void); #ifdef CONFIG_ARMV7M_STACKCHECK /* we need to get r10 set before we can allow instrumentation calls */ -void __start(void) __attribute__ ((no_instrument_function)); +void __start(void) noinstrument_function; #endif /**************************************************************************** diff --git a/arch/arm/src/kinetis/kinetis_start.c b/arch/arm/src/kinetis/kinetis_start.c index 13ea9f1753..53ac7f2681 100644 --- a/arch/arm/src/kinetis/kinetis_start.c +++ b/arch/arm/src/kinetis/kinetis_start.c @@ -95,7 +95,7 @@ const uintptr_t g_idle_topstack = HEAP_BASE; #ifdef CONFIG_ARMV7M_STACKCHECK /* we need to get r10 set before we can allow instrumentation calls */ -void __start(void) __attribute__ ((no_instrument_function)); +void __start(void) noinstrument_function; #endif /**************************************************************************** diff --git a/arch/arm/src/lpc17xx_40xx/lpc17_40_start.c b/arch/arm/src/lpc17xx_40xx/lpc17_40_start.c index eeef875f14..c78db9653b 100644 --- a/arch/arm/src/lpc17xx_40xx/lpc17_40_start.c +++ b/arch/arm/src/lpc17xx_40xx/lpc17_40_start.c @@ -184,7 +184,7 @@ static inline void lpc17_40_fpuconfig(void) #ifdef CONFIG_ARMV7M_STACKCHECK /* we need to get r10 set before we can allow instrumentation calls */ -void __start(void) __attribute__ ((no_instrument_function)); +void __start(void) noinstrument_function; #endif /**************************************************************************** diff --git a/arch/arm/src/nrf52/nrf52_start.c b/arch/arm/src/nrf52/nrf52_start.c index 58edc37aef..811e759f21 100644 --- a/arch/arm/src/nrf52/nrf52_start.c +++ b/arch/arm/src/nrf52/nrf52_start.c @@ -69,7 +69,7 @@ #ifdef CONFIG_ARMV7M_STACKCHECK /* we need to get r10 set before we can allow instrumentation calls */ -void __start(void) __attribute__ ((no_instrument_function)); +void __start(void) noinstrument_function; #endif /**************************************************************************** diff --git a/arch/arm/src/rtl8720c/ameba_start.c b/arch/arm/src/rtl8720c/ameba_start.c index 813becd5ae..3cafd0240a 100644 --- a/arch/arm/src/rtl8720c/ameba_start.c +++ b/arch/arm/src/rtl8720c/ameba_start.c @@ -42,7 +42,7 @@ const hal_irq_api_t sys_irq_api = /* We need to get r10 set before we can allow instrumentation calls */ -void __start(void) __attribute__((no_instrument_function)); +void __start(void) noinstrument_function; #endif void __start(void) { diff --git a/arch/arm/src/sam34/sam_start.c b/arch/arm/src/sam34/sam_start.c index c251498f01..7a1464f7d9 100644 --- a/arch/arm/src/sam34/sam_start.c +++ b/arch/arm/src/sam34/sam_start.c @@ -79,7 +79,7 @@ static inline void sam_fpuconfig(void); #ifdef CONFIG_ARMV7M_STACKCHECK /* We need to get r10 set before we can allow instrumentation calls */ -void __start(void) __attribute__ ((no_instrument_function)); +void __start(void) noinstrument_function; #endif /**************************************************************************** diff --git a/arch/arm/src/samd5e5/sam_start.c b/arch/arm/src/samd5e5/sam_start.c index 5dc64767db..c1563fb868 100644 --- a/arch/arm/src/samd5e5/sam_start.c +++ b/arch/arm/src/samd5e5/sam_start.c @@ -81,7 +81,7 @@ static inline void sam_fpu_configure(void); #ifdef CONFIG_ARMV7M_STACKCHECK /* We need to get r10 set before we can allow instrumentation calls */ -void __start(void) __attribute__ ((no_instrument_function)); +void __start(void) noinstrument_function; #endif /**************************************************************************** diff --git a/arch/arm/src/samv7/sam_start.c b/arch/arm/src/samv7/sam_start.c index f20eb01f7f..33c027fcdc 100644 --- a/arch/arm/src/samv7/sam_start.c +++ b/arch/arm/src/samv7/sam_start.c @@ -94,7 +94,7 @@ static inline void sam_fpuconfig(void); #ifdef CONFIG_ARMV7M_STACKCHECK /* we need to get r10 set before we can allow instrumentation calls */ -void __start(void) __attribute__ ((no_instrument_function)); +void __start(void) noinstrument_function; #endif /**************************************************************************** diff --git a/arch/arm/src/stm32/stm32_start.c b/arch/arm/src/stm32/stm32_start.c index 38c0330aa5..91287529b3 100644 --- a/arch/arm/src/stm32/stm32_start.c +++ b/arch/arm/src/stm32/stm32_start.c @@ -100,7 +100,7 @@ static inline void stm32_fpuconfig(void); #ifdef CONFIG_ARMV7M_STACKCHECK /* we need to get r10 set before we can allow instrumentation calls */ -void __start(void) __attribute__ ((no_instrument_function)); +void __start(void) noinstrument_function; #endif /**************************************************************************** diff --git a/arch/arm/src/stm32f7/stm32_start.c b/arch/arm/src/stm32f7/stm32_start.c index f5753f1b84..47edd1d2b2 100644 --- a/arch/arm/src/stm32f7/stm32_start.c +++ b/arch/arm/src/stm32f7/stm32_start.c @@ -94,7 +94,7 @@ static inline void stm32_fpuconfig(void); #ifdef CONFIG_ARMV7M_STACKCHECK /* we need to get r10 set before we can allow instrumentation calls */ -void __start(void) __attribute__ ((no_instrument_function)); +void __start(void) noinstrument_function; #endif /**************************************************************************** diff --git a/arch/arm/src/stm32h7/stm32_start.c b/arch/arm/src/stm32h7/stm32_start.c index 9da6a4dfa0..c8442eb0d8 100644 --- a/arch/arm/src/stm32h7/stm32_start.c +++ b/arch/arm/src/stm32h7/stm32_start.c @@ -109,7 +109,7 @@ static inline void stm32_fpuconfig(void); #ifdef CONFIG_ARMV7M_STACKCHECK /* we need to get r10 set before we can allow instrumentation calls */ -void __start(void) __attribute__ ((no_instrument_function)); +void __start(void) noinstrument_function; #endif /**************************************************************************** diff --git a/arch/arm/src/stm32l4/stm32l4_start.c b/arch/arm/src/stm32l4/stm32l4_start.c index eacb5bd4c5..3faecf7ae8 100644 --- a/arch/arm/src/stm32l4/stm32l4_start.c +++ b/arch/arm/src/stm32l4/stm32l4_start.c @@ -109,7 +109,7 @@ static inline void stm32l4_fpuconfig(void); #ifdef CONFIG_ARMV7M_STACKCHECK /* we need to get r10 set before we can allow instrumentation calls */ -void __start(void) __attribute__ ((no_instrument_function)); +void __start(void) noinstrument_function; #endif /**************************************************************************** diff --git a/arch/arm/src/stm32l5/stm32l5_start.c b/arch/arm/src/stm32l5/stm32l5_start.c index 689fb2bc51..5bb21d5b48 100644 --- a/arch/arm/src/stm32l5/stm32l5_start.c +++ b/arch/arm/src/stm32l5/stm32l5_start.c @@ -111,7 +111,7 @@ static inline void stm32l5_fpuconfig(void); #ifdef CONFIG_ARMV8M_STACKCHECK /* we need to get r10 set before we can allow instrumentation calls */ -void __start(void) __attribute__ ((no_instrument_function)); +void __start(void) noinstrument_function; #endif /**************************************************************************** diff --git a/arch/arm/src/xmc4/xmc4_start.c b/arch/arm/src/xmc4/xmc4_start.c index 5b400704a8..34012ab80f 100644 --- a/arch/arm/src/xmc4/xmc4_start.c +++ b/arch/arm/src/xmc4/xmc4_start.c @@ -117,7 +117,7 @@ const uintptr_t g_idle_topstack = HEAP_BASE; #ifdef CONFIG_ARMV7M_STACKCHECK /* we need to get r10 set before we can allow instrumentation calls */ -void __start(void) __attribute__ ((no_instrument_function)); +void __start(void) noinstrument_function; #endif /**************************************************************************** diff --git a/arch/risc-v/src/bl602/bl602_start.c b/arch/risc-v/src/bl602/bl602_start.c index 10288833e5..d6a32c4e87 100644 --- a/arch/risc-v/src/bl602/bl602_start.c +++ b/arch/risc-v/src/bl602/bl602_start.c @@ -97,7 +97,7 @@ extern void bl602_boardinitialize(void); * Name: boot2_get_flash_addr ****************************************************************************/ -uint32_t __attribute__((no_instrument_function)) boot2_get_flash_addr(void) +uint32_t noinstrument_function boot2_get_flash_addr(void) { extern uint8_t __boot2_flash_cfg_src; @@ -107,7 +107,7 @@ uint32_t __attribute__((no_instrument_function)) boot2_get_flash_addr(void) } #ifdef CONFIG_STACK_OVERFLOW_CHECK -void __attribute__(((no_instrument_function))) locate_code(".tcm_code") +void noinstrument_function locate_code(".tcm_code") __cyg_profile_func_enter(void *this_fn, void *call_site) { register uintptr_t *sp; @@ -149,7 +149,7 @@ __cyg_profile_func_enter(void *this_fn, void *call_site) return; } -void __attribute__((no_instrument_function)) locate_code(".tcm_code") +void noinstrument_function locate_code(".tcm_code") __cyg_profile_func_exit(void *this_fn, void *call_site) { return; diff --git a/include/nuttx/compiler.h b/include/nuttx/compiler.h index 988a3d032a..79e5eed024 100644 --- a/include/nuttx/compiler.h +++ b/include/nuttx/compiler.h @@ -143,6 +143,10 @@ # define inline_function __attribute__ ((always_inline,no_instrument_function)) # define noinline_function __attribute__ ((noinline)) +/* The noinstrument_function attribute informs GCC don't instrument it */ + +# define noinstrument_function __attribute__ ((no_instrument_function)) + /* Some versions of GCC have a separate __syslog__ format. * http://mail-index.netbsd.org/source-changes/2015/10/14/msg069435.html * Use it if available. Otherwise, assume __printf__ accepts %m. @@ -398,6 +402,7 @@ # define inline_function # define noinline_function +# define noinstrument_function # define printflike(a, b) # define sysloglike(a, b) @@ -530,6 +535,7 @@ # define naked_function # define inline_function # define noinline_function +# define noinstrument_function # define printflike(a, b) # define sysloglike(a, b) # define scanflike(a, b) @@ -634,6 +640,7 @@ # define naked_function # define inline_function # define noinline_function +# define noinstrument_function # define printflike(a, b) # define sysloglike(a, b) # define scanflike(a, b) @@ -693,6 +700,7 @@ # define naked_function # define inline_function # define noinline_function +# define noinstrument_function # define printflike(a, b) # define sysloglike(a, b) # define scanflike(a, b)