From: Andrew Cooper Date: Thu, 27 Mar 2025 14:03:56 +0000 (+0100) Subject: xen/compiler: Fix the position of the visibility pragma X-Git-Tag: RELEASE-4.19.2~26 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=3aca2a93c0538cd31eab4ea9c4eaa7c4c5804f87;p=xen.git xen/compiler: Fix the position of the visibility pragma This needs to be ahead of everything. Right now, it is after xen/init.h being included for -DINIT_SECTIONS_ONLY # 1 "./include/xen/compiler.h" 1 # 83 "./include/xen/compiler.h" # 1 "./include/xen/init.h" 1 # 62 "./include/xen/init.h" typedef int (*initcall_t)(void); typedef void (*exitcall_t)(void); # 72 "./include/xen/init.h" void do_presmp_initcalls(void); void do_initcalls(void); # 84 "./include/xen/compiler.h" 2 # 122 "./include/xen/compiler.h" #pragma GCC visibility push(hidden) Fixes: 84c4461b7d3a ("Force out-of-line instances of inline functions into .init.text in init-only code") Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich master commit: ab7ce0c8ed90f729a186babd87e3cd1fbed8ab98 master date: 2025-03-21 11:52:39 +0000 --- diff --git a/xen/include/xen/compiler.h b/xen/include/xen/compiler.h index 444bf80142..c8a143151b 100644 --- a/xen/include/xen/compiler.h +++ b/xen/include/xen/compiler.h @@ -15,6 +15,11 @@ # endif #endif +#ifdef CONFIG_CC_HAS_VISIBILITY_ATTRIBUTE +/* Results in more efficient PIC code (no indirections through GOT or PLT). */ +#pragma GCC visibility push(hidden) +#endif + #define barrier() __asm__ __volatile__("": : :"memory") #define likely(x) __builtin_expect(!!(x),1) @@ -118,11 +123,6 @@ #define __must_be_array(a) \ BUILD_BUG_ON_ZERO(__builtin_types_compatible_p(typeof(a), typeof(&(a)[0]))) -#ifdef CONFIG_CC_HAS_VISIBILITY_ATTRIBUTE -/* Results in more efficient PIC code (no indirections through GOT or PLT). */ -#pragma GCC visibility push(hidden) -#endif - /* Make the optimizer believe the variable can be manipulated arbitrarily. */ #define OPTIMIZER_HIDE_VAR(var) __asm__ ( "" : "+g" (var) )