From 501f33edead48d32aeacbc2b9e077d27ef74fbae Mon Sep 17 00:00:00 2001 From: Christoph Winklhofer Date: Fri, 18 Apr 2025 08:40:35 +0200 Subject: [PATCH] arch: Unify declaration of text region The declaration for the text region '__text_region_start' and '__text_region_end' should be consistent with the declaration in the include file 'zephyr/linker/linker-defs.h'. The local declarations are: extern uintptr_t __text_region_start, __text_region_end; whereas 'linker_defs.h' declares them as: extern char __text_region_start[]; extern char __text_region_end[]; This may result in conflicting types when 'linker_defs.h' is indirectly included. Hence, remove the local declarations. Signed-off-by: Christoph Winklhofer --- arch/riscv/core/stacktrace.c | 5 ++--- subsys/profiling/perf/backends/perf_riscv.c | 5 ++--- subsys/profiling/perf/backends/perf_x86.c | 5 ++--- subsys/profiling/perf/backends/perf_x86_64.c | 5 ++--- 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/arch/riscv/core/stacktrace.c b/arch/riscv/core/stacktrace.c index 361e152f00c..74f94d4eb86 100644 --- a/arch/riscv/core/stacktrace.c +++ b/arch/riscv/core/stacktrace.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -90,9 +91,7 @@ static bool in_stack_bound(uintptr_t addr, const struct k_thread *const thread, static inline bool in_text_region(uintptr_t addr) { - extern uintptr_t __text_region_start, __text_region_end; - - return (addr >= (uintptr_t)&__text_region_start) && (addr < (uintptr_t)&__text_region_end); + return (addr >= (uintptr_t)__text_region_start) && (addr < (uintptr_t)__text_region_end); } #ifdef CONFIG_FRAME_POINTER diff --git a/subsys/profiling/perf/backends/perf_riscv.c b/subsys/profiling/perf/backends/perf_riscv.c index 94073ededcd..8eb1f1828b3 100644 --- a/subsys/profiling/perf/backends/perf_riscv.c +++ b/subsys/profiling/perf/backends/perf_riscv.c @@ -5,6 +5,7 @@ */ #include +#include static bool valid_stack(uintptr_t addr, k_tid_t current) { @@ -14,9 +15,7 @@ static bool valid_stack(uintptr_t addr, k_tid_t current) static inline bool in_text_region(uintptr_t addr) { - extern uintptr_t __text_region_start, __text_region_end; - - return (addr >= (uintptr_t)&__text_region_start) && (addr < (uintptr_t)&__text_region_end); + return (addr >= (uintptr_t)__text_region_start) && (addr < (uintptr_t)__text_region_end); } /* diff --git a/subsys/profiling/perf/backends/perf_x86.c b/subsys/profiling/perf/backends/perf_x86.c index e62ad64b74a..5bc12c0b77b 100644 --- a/subsys/profiling/perf/backends/perf_x86.c +++ b/subsys/profiling/perf/backends/perf_x86.c @@ -6,6 +6,7 @@ */ #include +#include static bool valid_stack(uintptr_t addr, k_tid_t current) { @@ -15,9 +16,7 @@ static bool valid_stack(uintptr_t addr, k_tid_t current) static inline bool in_text_region(uintptr_t addr) { - extern uintptr_t __text_region_start, __text_region_end; - - return (addr >= (uintptr_t)&__text_region_start) && (addr < (uintptr_t)&__text_region_end); + return (addr >= (uintptr_t)__text_region_start) && (addr < (uintptr_t)__text_region_end); } /* interruption stack frame */ diff --git a/subsys/profiling/perf/backends/perf_x86_64.c b/subsys/profiling/perf/backends/perf_x86_64.c index 84e45024c3c..fa6c77f527b 100644 --- a/subsys/profiling/perf/backends/perf_x86_64.c +++ b/subsys/profiling/perf/backends/perf_x86_64.c @@ -6,6 +6,7 @@ */ #include +#include static bool valid_stack(uintptr_t addr, k_tid_t current) { @@ -15,9 +16,7 @@ static bool valid_stack(uintptr_t addr, k_tid_t current) static inline bool in_text_region(uintptr_t addr) { - extern uintptr_t __text_region_start, __text_region_end; - - return (addr >= (uintptr_t)&__text_region_start) && (addr < (uintptr_t)&__text_region_end); + return (addr >= (uintptr_t)__text_region_start) && (addr < (uintptr_t)__text_region_end); } /*