Hi Adrian, Thank you for the patch! Yet something to improve: [auto build test ERROR on pcmoore-selinux/next] [also build test ERROR on kselftest/next linus/master v5.8-rc3 next-20200701] [cannot apply to security/next-testing] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Adrian-Reber/capabilities-Introduce-CAP_CHECKPOINT_RESTORE/20200701-145119 base: https://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux.git next config: x86_64-allnoconfig (attached as .config) compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project c8f1d442d0858f66fd4128fde6f67eb5202fa2b1) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install x86_64 cross compiling tool for clang build # apt-get install binutils-x86-64-linux-gnu # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): In file included from kernel/fork.c:50: >> include/linux/security.h:1130:9: error: implicit declaration of function 'cap_prctl_set_mm_exe_file' [-Werror,-Wimplicit-function-declaration] return cap_prctl_set_mm_exe_file(exe_file); ^ include/linux/security.h:1130:9: note: did you mean 'security_prctl_set_mm_exe_file'? include/linux/security.h:1128:19: note: 'security_prctl_set_mm_exe_file' declared here static inline int security_prctl_set_mm_exe_file(struct file *exe_file) ^ 1 error generated. -- In file included from kernel/events/core.c:34: In file included from include/linux/syscalls.h:85: In file included from include/trace/syscall.h:7: In file included from include/linux/trace_events.h:10: In file included from include/linux/perf_event.h:59: >> include/linux/security.h:1130:9: error: implicit declaration of function 'cap_prctl_set_mm_exe_file' [-Werror,-Wimplicit-function-declaration] return cap_prctl_set_mm_exe_file(exe_file); ^ include/linux/security.h:1130:9: note: did you mean 'security_prctl_set_mm_exe_file'? include/linux/security.h:1128:19: note: 'security_prctl_set_mm_exe_file' declared here static inline int security_prctl_set_mm_exe_file(struct file *exe_file) ^ kernel/events/core.c:6490:6: warning: no previous prototype for function 'perf_pmu_snapshot_aux' [-Wmissing-prototypes] long perf_pmu_snapshot_aux(struct perf_buffer *rb, ^ kernel/events/core.c:6490:1: note: declare 'static' if the function is not intended to be used outside of this translation unit long perf_pmu_snapshot_aux(struct perf_buffer *rb, ^ static 1 warning and 1 error generated. -- In file included from kernel/printk/printk.c:34: >> include/linux/security.h:1130:9: error: implicit declaration of function 'cap_prctl_set_mm_exe_file' [-Werror,-Wimplicit-function-declaration] return cap_prctl_set_mm_exe_file(exe_file); ^ include/linux/security.h:1130:9: note: did you mean 'security_prctl_set_mm_exe_file'? include/linux/security.h:1128:19: note: 'security_prctl_set_mm_exe_file' declared here static inline int security_prctl_set_mm_exe_file(struct file *exe_file) ^ In file included from kernel/printk/printk.c:60: kernel/printk/internal.h:59:20: warning: no previous prototype for function 'vprintk_func' [-Wmissing-prototypes] __printf(1, 0) int vprintk_func(const char *fmt, va_list args) { return 0; } ^ kernel/printk/internal.h:59:16: note: declare 'static' if the function is not intended to be used outside of this translation unit __printf(1, 0) int vprintk_func(const char *fmt, va_list args) { return 0; } ^ static kernel/printk/printk.c:174:5: warning: no previous prototype for function 'devkmsg_sysctl_set_loglvl' [-Wmissing-prototypes] int devkmsg_sysctl_set_loglvl(struct ctl_table *table, int write, ^ kernel/printk/printk.c:174:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int devkmsg_sysctl_set_loglvl(struct ctl_table *table, int write, ^ static 2 warnings and 1 error generated. -- In file included from kernel/sched/fair.c:23: In file included from kernel/sched/sched.h:61: >> include/linux/security.h:1130:9: error: implicit declaration of function 'cap_prctl_set_mm_exe_file' [-Werror,-Wimplicit-function-declaration] return cap_prctl_set_mm_exe_file(exe_file); ^ include/linux/security.h:1130:9: note: did you mean 'security_prctl_set_mm_exe_file'? include/linux/security.h:1128:19: note: 'security_prctl_set_mm_exe_file' declared here static inline int security_prctl_set_mm_exe_file(struct file *exe_file) ^ kernel/sched/fair.c:5352:6: warning: no previous prototype for function 'init_cfs_bandwidth' [-Wmissing-prototypes] void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) {} ^ kernel/sched/fair.c:5352:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) {} ^ static kernel/sched/fair.c:11078:6: warning: no previous prototype for function 'free_fair_sched_group' [-Wmissing-prototypes] void free_fair_sched_group(struct task_group *tg) { } ^ kernel/sched/fair.c:11078:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void free_fair_sched_group(struct task_group *tg) { } ^ static kernel/sched/fair.c:11080:5: warning: no previous prototype for function 'alloc_fair_sched_group' [-Wmissing-prototypes] int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent) ^ kernel/sched/fair.c:11080:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int alloc_fair_sched_group(struct task_group *tg, struct task_group *parent) ^ static kernel/sched/fair.c:11085:6: warning: no previous prototype for function 'online_fair_sched_group' [-Wmissing-prototypes] void online_fair_sched_group(struct task_group *tg) { } ^ kernel/sched/fair.c:11085:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void online_fair_sched_group(struct task_group *tg) { } ^ static kernel/sched/fair.c:11087:6: warning: no previous prototype for function 'unregister_fair_sched_group' [-Wmissing-prototypes] void unregister_fair_sched_group(struct task_group *tg) { } ^ kernel/sched/fair.c:11087:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void unregister_fair_sched_group(struct task_group *tg) { } ^ static 5 warnings and 1 error generated. -- In file included from kernel/sched/rt.c:6: In file included from kernel/sched/sched.h:61: >> include/linux/security.h:1130:9: error: implicit declaration of function 'cap_prctl_set_mm_exe_file' [-Werror,-Wimplicit-function-declaration] return cap_prctl_set_mm_exe_file(exe_file); ^ include/linux/security.h:1130:9: note: did you mean 'security_prctl_set_mm_exe_file'? include/linux/security.h:1128:19: note: 'security_prctl_set_mm_exe_file' declared here static inline int security_prctl_set_mm_exe_file(struct file *exe_file) ^ kernel/sched/rt.c:253:6: warning: no previous prototype for function 'free_rt_sched_group' [-Wmissing-prototypes] void free_rt_sched_group(struct task_group *tg) { } ^ kernel/sched/rt.c:253:1: note: declare 'static' if the function is not intended to be used outside of this translation unit void free_rt_sched_group(struct task_group *tg) { } ^ static kernel/sched/rt.c:255:5: warning: no previous prototype for function 'alloc_rt_sched_group' [-Wmissing-prototypes] int alloc_rt_sched_group(struct task_group *tg, struct task_group *parent) ^ kernel/sched/rt.c:255:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int alloc_rt_sched_group(struct task_group *tg, struct task_group *parent) ^ static kernel/sched/rt.c:668:6: warning: no previous prototype for function 'sched_rt_bandwidth_account' [-Wmissing-prototypes] bool sched_rt_bandwidth_account(struct rt_rq *rt_rq) ^ kernel/sched/rt.c:668:1: note: declare 'static' if the function is not intended to be used outside of this translation unit bool sched_rt_bandwidth_account(struct rt_rq *rt_rq) ^ static 3 warnings and 1 error generated. -- In file included from kernel/time/hrtimer.c:30: In file included from include/linux/syscalls.h:85: In file included from include/trace/syscall.h:7: In file included from include/linux/trace_events.h:10: In file included from include/linux/perf_event.h:59: >> include/linux/security.h:1130:9: error: implicit declaration of function 'cap_prctl_set_mm_exe_file' [-Werror,-Wimplicit-function-declaration] return cap_prctl_set_mm_exe_file(exe_file); ^ include/linux/security.h:1130:9: note: did you mean 'security_prctl_set_mm_exe_file'? include/linux/security.h:1128:19: note: 'security_prctl_set_mm_exe_file' declared here static inline int security_prctl_set_mm_exe_file(struct file *exe_file) ^ kernel/time/hrtimer.c:120:21: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] [CLOCK_REALTIME] = HRTIMER_BASE_REALTIME, ^~~~~~~~~~~~~~~~~~~~~ kernel/time/hrtimer.c:118:27: note: previous initialization is here [0 ... MAX_CLOCKS - 1] = HRTIMER_MAX_CLOCK_BASES, ^~~~~~~~~~~~~~~~~~~~~~~ kernel/time/hrtimer.c:121:22: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] [CLOCK_MONOTONIC] = HRTIMER_BASE_MONOTONIC, ^~~~~~~~~~~~~~~~~~~~~~ kernel/time/hrtimer.c:118:27: note: previous initialization is here [0 ... MAX_CLOCKS - 1] = HRTIMER_MAX_CLOCK_BASES, ^~~~~~~~~~~~~~~~~~~~~~~ kernel/time/hrtimer.c:122:21: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] [CLOCK_BOOTTIME] = HRTIMER_BASE_BOOTTIME, ^~~~~~~~~~~~~~~~~~~~~ kernel/time/hrtimer.c:118:27: note: previous initialization is here [0 ... MAX_CLOCKS - 1] = HRTIMER_MAX_CLOCK_BASES, ^~~~~~~~~~~~~~~~~~~~~~~ kernel/time/hrtimer.c:123:17: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] [CLOCK_TAI] = HRTIMER_BASE_TAI, ^~~~~~~~~~~~~~~~ kernel/time/hrtimer.c:118:27: note: previous initialization is here [0 ... MAX_CLOCKS - 1] = HRTIMER_MAX_CLOCK_BASES, ^~~~~~~~~~~~~~~~~~~~~~~ 4 warnings and 1 error generated. -- In file included from kernel/time/posix-stubs.c:13: In file included from include/linux/syscalls.h:85: In file included from include/trace/syscall.h:7: In file included from include/linux/trace_events.h:10: In file included from include/linux/perf_event.h:59: >> include/linux/security.h:1130:9: error: implicit declaration of function 'cap_prctl_set_mm_exe_file' [-Werror,-Wimplicit-function-declaration] return cap_prctl_set_mm_exe_file(exe_file); ^ include/linux/security.h:1130:9: note: did you mean 'security_prctl_set_mm_exe_file'? include/linux/security.h:1128:19: note: 'security_prctl_set_mm_exe_file' declared here static inline int security_prctl_set_mm_exe_file(struct file *exe_file) ^ kernel/time/posix-stubs.c:25:17: warning: no previous prototype for function 'sys_ni_posix_timers' [-Wmissing-prototypes] asmlinkage long sys_ni_posix_timers(void) ^ kernel/time/posix-stubs.c:25:12: note: declare 'static' if the function is not intended to be used outside of this translation unit asmlinkage long sys_ni_posix_timers(void) ^ static kernel/time/posix-stubs.c:73:5: warning: no previous prototype for function 'do_clock_gettime' [-Wmissing-prototypes] int do_clock_gettime(clockid_t which_clock, struct timespec64 *tp) ^ kernel/time/posix-stubs.c:73:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int do_clock_gettime(clockid_t which_clock, struct timespec64 *tp) ^ static 2 warnings and 1 error generated. vim +/cap_prctl_set_mm_exe_file +1130 include/linux/security.h 1127 1128 static inline int security_prctl_set_mm_exe_file(struct file *exe_file) 1129 { > 1130 return cap_prctl_set_mm_exe_file(exe_file); 1131 } 1132 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org