With latest bpf/bpf-next tree and latest pahole master, I got the following build failure: $ make LLVM=1 -j ... LD vmlinux.o GEN .vmlinux.objs ... BTF .tmp_vmlinux1.btf.o ... AS .tmp_vmlinux2.kallsyms.o LD vmlinux.unstripped BTFIDS vmlinux.unstripped WARN: resolve_btfids: unresolved symbol migrate_enable WARN: resolve_btfids: unresolved symbol migrate_disable make[2]: *** [/home/yhs/work/bpf-next/scripts/Makefile.vmlinux:72: vmlinux.unstripped] Error 255 make[2]: *** Deleting file 'vmlinux.unstripped' make[1]: *** [/home/yhs/work/bpf-next/Makefile:1242: vmlinux] Error 2 make: *** [/home/yhs/work/bpf-next/Makefile:248: __sub-make] Error 2 In pahole patch [1], if two functions having identical names but different addresses, then this function name is considered ambiguous and later on this function will not be added to vmlinux/module BTF. Commit 378b7708194f ("sched: Make migrate_{en,dis}able() inline") changed original global funcitons migrate_{enable,disable} to - in kernel/sched/core.c, migrate_{enable,disable} are global funcitons. - in other places, migrate_{enable,disable} may survive as static functions since they are marked as 'inline' in include/linux/sched.h and the 'inline' attribute does not garantee inlining. If I build with clang compiler (make LLVM=1 -j) (llvm21 and llvm22), I found there are four symbols for migrate_{enable,disable} respectively, three static functions and one global function. With the above pahole patch [1], migrate_{enable,disable} are not in vmlinux BTF and this will cause later resolve_btfids failure. Making migrate_{enable,disable} always inline in include/linux/sched.h can fix the problem. [1] https://lore.kernel.org/dwarves/79a329ef-9bb3-454e-9135-731f2fd51951@oracle.com/ Fixes: 378b7708194f ("sched: Make migrate_{en,dis}able() inline") Cc: Menglong Dong Cc: Ihor Solodrai Signed-off-by: Yonghong Song --- include/linux/sched.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h index cbb7340c5866..b469878de25c 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -2407,12 +2407,12 @@ static inline void __migrate_enable(void) { } * be defined in kernel/sched/core.c. */ #ifndef INSTANTIATE_EXPORTED_MIGRATE_DISABLE -static inline void migrate_disable(void) +static __always_inline void migrate_disable(void) { __migrate_disable(); } -static inline void migrate_enable(void) +static __always_inline void migrate_enable(void) { __migrate_enable(); } -- 2.47.3