]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
bpf: GCC requires function attributes before the declarator
authorJose E. Marchesi <jose.marchesi@oracle.com>
Tue, 6 Jan 2026 17:36:50 +0000 (18:36 +0100)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 7 Jan 2026 05:04:11 +0000 (21:04 -0800)
GCC insists in placing attributes before the declarators in function
declarations.  Now that GCC supports btf_decl_tag and therefore __tag1
and __tag2 expand to actual attributes, the compiler is complaining
about it for

  static __noinline int foo(int x __tag1 __tag2) __tag1 __tag2

progs/test_btf_decl_tag.c:36:1: error: attributes should be specified \
before the declarator in a function definition

This patch simply places the tags before the declarator.

Signed-off-by: Jose E. Marchesi <jose.marchesi@oracle.com>
Cc: david.faust@oracle.com
Cc: cupertino.miranda@oracle.com
Cc: Eduard Zingerman <eddyz87@gmail.com>
Cc: Yonghong Song <yonghong.song@linux.dev>
Link: https://lore.kernel.org/r/20260106173650.18191-3-jose.marchesi@oracle.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/progs/test_btf_decl_tag.c

index c88ccc53529aab0909b7afb991c236e586d56c44..0c3df19626cb6cd724f574f909376e7dbad53d23 100644 (file)
@@ -33,7 +33,7 @@ struct {
 } hashmap1 SEC(".maps");
 
 
-static __noinline int foo(int x __tag1 __tag2) __tag1 __tag2
+static __noinline __tag1 __tag2 int foo(int x __tag1 __tag2)
 {
        struct key_t key;
        value_t val = {};