tree: https://git.kernel.org/pub/scm/linux/kernel/git/jirislaby/linux.git lto head: 8565e13d5d29eb32bed9674240593315f3bdd7f5 commit: 088d326951aa790c35f1f009be5997088fe8f4bb [27/47] linkage, lto: use C version for SYSCALL_ALIAS() / cond_syscall() config: powerpc-randconfig-r034-20221024 (attached as .config) compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 791a7ae1ba3efd6bca96338e10ffde557ba83920) 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 powerpc cross compiling tool for clang build # apt-get install binutils-powerpc-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/jirislaby/linux.git/commit/?id=088d326951aa790c35f1f009be5997088fe8f4bb git remote add jirislaby https://git.kernel.org/pub/scm/linux/kernel/git/jirislaby/linux.git git fetch --no-tags jirislaby lto git checkout 088d326951aa790c35f1f009be5997088fe8f4bb # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=powerpc SHELL=/bin/bash kernel/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All errors (new ones prefixed by >>): 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:49:1: error: use of undeclared identifier 'sys_timer_create' SYS_NI(timer_create); ^ kernel/time/posix-stubs.c:34:43: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ :99:1: note: expanded from here sys_timer_create ^ >> kernel/time/posix-stubs.c:49:1: error: definition 'sys_timer_create' cannot also be an alias kernel/time/posix-stubs.c:34:23: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ include/linux/linkage.h:34:29: note: expanded from macro 'SYSCALL_ALIAS_PROTO' typeof(a) a __attribute__((alias(__stringify(name)))) ^ >> kernel/time/posix-stubs.c:50:1: error: use of undeclared identifier 'sys_timer_gettime' SYS_NI(timer_gettime); ^ kernel/time/posix-stubs.c:34:43: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ :101:1: note: expanded from here sys_timer_gettime ^ >> kernel/time/posix-stubs.c:50:1: error: definition 'sys_timer_gettime' cannot also be an alias kernel/time/posix-stubs.c:34:23: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ include/linux/linkage.h:34:29: note: expanded from macro 'SYSCALL_ALIAS_PROTO' typeof(a) a __attribute__((alias(__stringify(name)))) ^ >> kernel/time/posix-stubs.c:51:1: error: use of undeclared identifier 'sys_timer_getoverrun' SYS_NI(timer_getoverrun); ^ kernel/time/posix-stubs.c:34:43: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ :103:1: note: expanded from here sys_timer_getoverrun ^ >> kernel/time/posix-stubs.c:51:1: error: definition 'sys_timer_getoverrun' cannot also be an alias kernel/time/posix-stubs.c:34:23: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ include/linux/linkage.h:34:29: note: expanded from macro 'SYSCALL_ALIAS_PROTO' typeof(a) a __attribute__((alias(__stringify(name)))) ^ >> kernel/time/posix-stubs.c:52:1: error: use of undeclared identifier 'sys_timer_settime' SYS_NI(timer_settime); ^ kernel/time/posix-stubs.c:34:43: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ :105:1: note: expanded from here sys_timer_settime ^ >> kernel/time/posix-stubs.c:52:1: error: definition 'sys_timer_settime' cannot also be an alias kernel/time/posix-stubs.c:34:23: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ include/linux/linkage.h:34:29: note: expanded from macro 'SYSCALL_ALIAS_PROTO' typeof(a) a __attribute__((alias(__stringify(name)))) ^ >> kernel/time/posix-stubs.c:53:1: error: use of undeclared identifier 'sys_timer_delete' SYS_NI(timer_delete); ^ kernel/time/posix-stubs.c:34:43: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ :107:1: note: expanded from here sys_timer_delete ^ >> kernel/time/posix-stubs.c:53:1: error: definition 'sys_timer_delete' cannot also be an alias kernel/time/posix-stubs.c:34:23: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ include/linux/linkage.h:34:29: note: expanded from macro 'SYSCALL_ALIAS_PROTO' typeof(a) a __attribute__((alias(__stringify(name)))) ^ >> kernel/time/posix-stubs.c:54:1: error: use of undeclared identifier 'sys_clock_adjtime'; did you mean 'do_clock_adjtime'? SYS_NI(clock_adjtime); ^ kernel/time/posix-stubs.c:34:43: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ :109:1: note: expanded from here sys_clock_adjtime ^ include/linux/timex.h:163:12: note: 'do_clock_adjtime' declared here extern int do_clock_adjtime(const clockid_t which_clock, struct __kernel_timex * ktx); ^ >> kernel/time/posix-stubs.c:55:1: error: use of undeclared identifier 'sys_getitimer' SYS_NI(getitimer); ^ kernel/time/posix-stubs.c:34:43: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ :111:1: note: expanded from here sys_getitimer ^ >> kernel/time/posix-stubs.c:55:1: error: definition 'sys_getitimer' cannot also be an alias kernel/time/posix-stubs.c:34:23: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ include/linux/linkage.h:34:29: note: expanded from macro 'SYSCALL_ALIAS_PROTO' typeof(a) a __attribute__((alias(__stringify(name)))) ^ >> kernel/time/posix-stubs.c:56:1: error: use of undeclared identifier 'sys_setitimer'; did you mean 'cap_settime'? SYS_NI(setitimer); ^ kernel/time/posix-stubs.c:34:43: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ :113:1: note: expanded from here sys_setitimer ^ include/linux/security.h:144:12: note: 'cap_settime' declared here extern int cap_settime(const struct timespec64 *ts, const struct timezone *tz); ^ >> kernel/time/posix-stubs.c:57:1: error: use of undeclared identifier 'sys_clock_adjtime32'; did you mean 'sys_clock_adjtime'? SYS_NI(clock_adjtime32); ^ kernel/time/posix-stubs.c:34:43: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ :115:1: note: expanded from here sys_clock_adjtime32 ^ kernel/time/posix-stubs.c:54:1: note: 'sys_clock_adjtime' declared here SYS_NI(clock_adjtime); ^ kernel/time/posix-stubs.c:34:43: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ :109:1: note: expanded from here sys_clock_adjtime ^ >> kernel/time/posix-stubs.c:59:1: error: use of undeclared identifier 'sys_alarm' SYS_NI(alarm); ^ kernel/time/posix-stubs.c:34:43: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ :117:1: note: expanded from here sys_alarm ^ >> kernel/time/posix-stubs.c:59:1: error: definition 'sys_alarm' cannot also be an alias kernel/time/posix-stubs.c:34:23: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ include/linux/linkage.h:34:29: note: expanded from macro 'SYSCALL_ALIAS_PROTO' typeof(a) a __attribute__((alias(__stringify(name)))) ^ >> kernel/time/posix-stubs.c:183:1: error: use of undeclared identifier 'sys_timer_settime32' SYS_NI(timer_settime32); ^ kernel/time/posix-stubs.c:34:43: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ :206:1: note: expanded from here sys_timer_settime32 ^ >> kernel/time/posix-stubs.c:183:1: error: definition 'sys_timer_settime32' cannot also be an alias kernel/time/posix-stubs.c:34:23: note: expanded from macro 'SYS_NI' #define SYS_NI(name) SYSCALL_ALIAS_PROTO(sys_##name, sys_ni_posix_timers) ^ include/linux/linkage.h:34:29: note: expanded from macro 'SYSCALL_ALIAS_PROTO' typeof(a) a __attribute__((alias(__stringify(name)))) ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 1 warning and 20 errors generated. vim +/sys_timer_create +49 kernel/time/posix-stubs.c 088d326951aa79 Andi Kleen 2017-04-09 48 baa73d9e478ff3 Nicolas Pitre 2016-11-11 @49 SYS_NI(timer_create); baa73d9e478ff3 Nicolas Pitre 2016-11-11 @50 SYS_NI(timer_gettime); baa73d9e478ff3 Nicolas Pitre 2016-11-11 @51 SYS_NI(timer_getoverrun); baa73d9e478ff3 Nicolas Pitre 2016-11-11 @52 SYS_NI(timer_settime); baa73d9e478ff3 Nicolas Pitre 2016-11-11 @53 SYS_NI(timer_delete); baa73d9e478ff3 Nicolas Pitre 2016-11-11 @54 SYS_NI(clock_adjtime); baa73d9e478ff3 Nicolas Pitre 2016-11-11 @55 SYS_NI(getitimer); baa73d9e478ff3 Nicolas Pitre 2016-11-11 @56 SYS_NI(setitimer); 8dabe7245bbc13 Arnd Bergmann 2019-01-07 @57 SYS_NI(clock_adjtime32); baa73d9e478ff3 Nicolas Pitre 2016-11-11 58 #ifdef __ARCH_WANT_SYS_ALARM baa73d9e478ff3 Nicolas Pitre 2016-11-11 @59 SYS_NI(alarm); baa73d9e478ff3 Nicolas Pitre 2016-11-11 60 #endif baa73d9e478ff3 Nicolas Pitre 2016-11-11 61 088d326951aa79 Andi Kleen 2017-04-09 62 __diag_pop(); 088d326951aa79 Andi Kleen 2017-04-09 63 baa73d9e478ff3 Nicolas Pitre 2016-11-11 64 /* baa73d9e478ff3 Nicolas Pitre 2016-11-11 65 * We preserve minimal support for CLOCK_REALTIME and CLOCK_MONOTONIC baa73d9e478ff3 Nicolas Pitre 2016-11-11 66 * as it is easy to remain compatible with little code. CLOCK_BOOTTIME baa73d9e478ff3 Nicolas Pitre 2016-11-11 67 * is also included for convenience as at least systemd uses it. baa73d9e478ff3 Nicolas Pitre 2016-11-11 68 */ baa73d9e478ff3 Nicolas Pitre 2016-11-11 69 baa73d9e478ff3 Nicolas Pitre 2016-11-11 70 SYSCALL_DEFINE2(clock_settime, const clockid_t, which_clock, 6d5b84132459c6 Deepa Dinamani 2018-03-13 71 const struct __kernel_timespec __user *, tp) baa73d9e478ff3 Nicolas Pitre 2016-11-11 72 { 5c4994102fb508 Deepa Dinamani 2017-06-24 73 struct timespec64 new_tp; baa73d9e478ff3 Nicolas Pitre 2016-11-11 74 baa73d9e478ff3 Nicolas Pitre 2016-11-11 75 if (which_clock != CLOCK_REALTIME) baa73d9e478ff3 Nicolas Pitre 2016-11-11 76 return -EINVAL; 5c4994102fb508 Deepa Dinamani 2017-06-24 77 if (get_timespec64(&new_tp, tp)) baa73d9e478ff3 Nicolas Pitre 2016-11-11 78 return -EFAULT; 2ac00f17b2e110 Deepa Dinamani 2017-03-26 79 5c4994102fb508 Deepa Dinamani 2017-06-24 80 return do_sys_settimeofday64(&new_tp, NULL); baa73d9e478ff3 Nicolas Pitre 2016-11-11 81 } baa73d9e478ff3 Nicolas Pitre 2016-11-11 82 221f9d9cdf429d Jiri Slaby 2022-07-19 83 static int do_clock_gettime(clockid_t which_clock, struct timespec64 *tp) 5c4994102fb508 Deepa Dinamani 2017-06-24 84 { 5c4994102fb508 Deepa Dinamani 2017-06-24 85 switch (which_clock) { 5c4994102fb508 Deepa Dinamani 2017-06-24 86 case CLOCK_REALTIME: 5c4994102fb508 Deepa Dinamani 2017-06-24 87 ktime_get_real_ts64(tp); 5c4994102fb508 Deepa Dinamani 2017-06-24 88 break; 5c4994102fb508 Deepa Dinamani 2017-06-24 89 case CLOCK_MONOTONIC: 5c4994102fb508 Deepa Dinamani 2017-06-24 90 ktime_get_ts64(tp); 5a590f35add93c Andrei Vagin 2019-11-12 91 timens_add_monotonic(tp); 5c4994102fb508 Deepa Dinamani 2017-06-24 92 break; 5c4994102fb508 Deepa Dinamani 2017-06-24 93 case CLOCK_BOOTTIME: 58a10456d7175f Arnd Bergmann 2018-06-18 94 ktime_get_boottime_ts64(tp); 5a590f35add93c Andrei Vagin 2019-11-12 95 timens_add_boottime(tp); 5c4994102fb508 Deepa Dinamani 2017-06-24 96 break; 5c4994102fb508 Deepa Dinamani 2017-06-24 97 default: 5c4994102fb508 Deepa Dinamani 2017-06-24 98 return -EINVAL; 5c4994102fb508 Deepa Dinamani 2017-06-24 99 } 5c4994102fb508 Deepa Dinamani 2017-06-24 100 5c4994102fb508 Deepa Dinamani 2017-06-24 101 return 0; 5c4994102fb508 Deepa Dinamani 2017-06-24 102 } 221f9d9cdf429d Jiri Slaby 2022-07-19 103 baa73d9e478ff3 Nicolas Pitre 2016-11-11 104 SYSCALL_DEFINE2(clock_gettime, const clockid_t, which_clock, 6d5b84132459c6 Deepa Dinamani 2018-03-13 105 struct __kernel_timespec __user *, tp) baa73d9e478ff3 Nicolas Pitre 2016-11-11 106 { 5c4994102fb508 Deepa Dinamani 2017-06-24 107 int ret; 5c4994102fb508 Deepa Dinamani 2017-06-24 108 struct timespec64 kernel_tp; baa73d9e478ff3 Nicolas Pitre 2016-11-11 109 5c4994102fb508 Deepa Dinamani 2017-06-24 110 ret = do_clock_gettime(which_clock, &kernel_tp); 5c4994102fb508 Deepa Dinamani 2017-06-24 111 if (ret) 5c4994102fb508 Deepa Dinamani 2017-06-24 112 return ret; 3c9c12f4b4610d Deepa Dinamani 2017-03-26 113 5c4994102fb508 Deepa Dinamani 2017-06-24 114 if (put_timespec64(&kernel_tp, tp)) baa73d9e478ff3 Nicolas Pitre 2016-11-11 115 return -EFAULT; baa73d9e478ff3 Nicolas Pitre 2016-11-11 116 return 0; baa73d9e478ff3 Nicolas Pitre 2016-11-11 117 } baa73d9e478ff3 Nicolas Pitre 2016-11-11 118 6d5b84132459c6 Deepa Dinamani 2018-03-13 119 SYSCALL_DEFINE2(clock_getres, const clockid_t, which_clock, struct __kernel_timespec __user *, tp) baa73d9e478ff3 Nicolas Pitre 2016-11-11 120 { 5c4994102fb508 Deepa Dinamani 2017-06-24 121 struct timespec64 rtn_tp = { baa73d9e478ff3 Nicolas Pitre 2016-11-11 122 .tv_sec = 0, baa73d9e478ff3 Nicolas Pitre 2016-11-11 123 .tv_nsec = hrtimer_resolution, baa73d9e478ff3 Nicolas Pitre 2016-11-11 124 }; baa73d9e478ff3 Nicolas Pitre 2016-11-11 125 baa73d9e478ff3 Nicolas Pitre 2016-11-11 126 switch (which_clock) { baa73d9e478ff3 Nicolas Pitre 2016-11-11 127 case CLOCK_REALTIME: baa73d9e478ff3 Nicolas Pitre 2016-11-11 128 case CLOCK_MONOTONIC: baa73d9e478ff3 Nicolas Pitre 2016-11-11 129 case CLOCK_BOOTTIME: 5c4994102fb508 Deepa Dinamani 2017-06-24 130 if (put_timespec64(&rtn_tp, tp)) baa73d9e478ff3 Nicolas Pitre 2016-11-11 131 return -EFAULT; baa73d9e478ff3 Nicolas Pitre 2016-11-11 132 return 0; baa73d9e478ff3 Nicolas Pitre 2016-11-11 133 default: baa73d9e478ff3 Nicolas Pitre 2016-11-11 134 return -EINVAL; baa73d9e478ff3 Nicolas Pitre 2016-11-11 135 } baa73d9e478ff3 Nicolas Pitre 2016-11-11 136 } baa73d9e478ff3 Nicolas Pitre 2016-11-11 137 baa73d9e478ff3 Nicolas Pitre 2016-11-11 138 SYSCALL_DEFINE4(clock_nanosleep, const clockid_t, which_clock, int, flags, 01909974b41036 Deepa Dinamani 2018-03-13 139 const struct __kernel_timespec __user *, rqtp, 01909974b41036 Deepa Dinamani 2018-03-13 140 struct __kernel_timespec __user *, rmtp) baa73d9e478ff3 Nicolas Pitre 2016-11-11 141 { fe460423438b62 Arnd Bergmann 2017-10-13 142 struct timespec64 t; 1f9b37bfbb607a Andrei Vagin 2019-11-12 143 ktime_t texp; baa73d9e478ff3 Nicolas Pitre 2016-11-11 144 baa73d9e478ff3 Nicolas Pitre 2016-11-11 145 switch (which_clock) { baa73d9e478ff3 Nicolas Pitre 2016-11-11 146 case CLOCK_REALTIME: baa73d9e478ff3 Nicolas Pitre 2016-11-11 147 case CLOCK_MONOTONIC: baa73d9e478ff3 Nicolas Pitre 2016-11-11 148 case CLOCK_BOOTTIME: edbeda46322fbc Al Viro 2017-06-07 149 break; edbeda46322fbc Al Viro 2017-06-07 150 default: edbeda46322fbc Al Viro 2017-06-07 151 return -EINVAL; edbeda46322fbc Al Viro 2017-06-07 152 } edbeda46322fbc Al Viro 2017-06-07 153 fe460423438b62 Arnd Bergmann 2017-10-13 154 if (get_timespec64(&t, rqtp)) baa73d9e478ff3 Nicolas Pitre 2016-11-11 155 return -EFAULT; fe460423438b62 Arnd Bergmann 2017-10-13 156 if (!timespec64_valid(&t)) baa73d9e478ff3 Nicolas Pitre 2016-11-11 157 return -EINVAL; 192a82f9003fe8 Al Viro 2017-06-07 158 if (flags & TIMER_ABSTIME) 192a82f9003fe8 Al Viro 2017-06-07 159 rmtp = NULL; edbeda46322fbc Al Viro 2017-06-07 160 current->restart_block.nanosleep.type = rmtp ? TT_NATIVE : TT_NONE; 192a82f9003fe8 Al Viro 2017-06-07 161 current->restart_block.nanosleep.rmtp = rmtp; 1f9b37bfbb607a Andrei Vagin 2019-11-12 162 texp = timespec64_to_ktime(t); 1f9b37bfbb607a Andrei Vagin 2019-11-12 163 if (flags & TIMER_ABSTIME) 1f9b37bfbb607a Andrei Vagin 2019-11-12 164 texp = timens_ktime_to_host(which_clock, texp); 1f9b37bfbb607a Andrei Vagin 2019-11-12 165 return hrtimer_nanosleep(texp, flags & TIMER_ABSTIME ? baa73d9e478ff3 Nicolas Pitre 2016-11-11 166 HRTIMER_MODE_ABS : HRTIMER_MODE_REL, baa73d9e478ff3 Nicolas Pitre 2016-11-11 167 which_clock); baa73d9e478ff3 Nicolas Pitre 2016-11-11 168 } baa73d9e478ff3 Nicolas Pitre 2016-11-11 169 088d326951aa79 Andi Kleen 2017-04-09 170 __diag_push(); 088d326951aa79 Andi Kleen 2017-04-09 171 __diag_ignore(GCC, 8, "-Wattribute-alias", "Alias to nonimplemented syscall"); 088d326951aa79 Andi Kleen 2017-04-09 172 baa73d9e478ff3 Nicolas Pitre 2016-11-11 173 #ifdef CONFIG_COMPAT 63a766a1780f95 Deepa Dinamani 2017-06-24 174 COMPAT_SYS_NI(timer_create); f35deaff1b8ead Arnd Bergmann 2019-12-07 175 #endif f35deaff1b8ead Arnd Bergmann 2019-12-07 176 f35deaff1b8ead Arnd Bergmann 2019-12-07 177 #if defined(CONFIG_COMPAT) || defined(CONFIG_ALPHA) 63a766a1780f95 Deepa Dinamani 2017-06-24 178 COMPAT_SYS_NI(getitimer); 63a766a1780f95 Deepa Dinamani 2017-06-24 179 COMPAT_SYS_NI(setitimer); b5793b0d92c95c Deepa Dinamani 2018-03-13 180 #endif 63a766a1780f95 Deepa Dinamani 2017-06-24 181 b5793b0d92c95c Deepa Dinamani 2018-03-13 182 #ifdef CONFIG_COMPAT_32BIT_TIME 8dabe7245bbc13 Arnd Bergmann 2019-01-07 @183 SYS_NI(timer_settime32); 8dabe7245bbc13 Arnd Bergmann 2019-01-07 184 SYS_NI(timer_gettime32); 8dabe7245bbc13 Arnd Bergmann 2019-01-07 185 :::::: The code at line 49 was first introduced by commit :::::: baa73d9e478ff32d62f3f9422822b59dd9a95a21 posix-timers: Make them configurable :::::: TO: Nicolas Pitre :::::: CC: Thomas Gleixner -- 0-DAY CI Kernel Test Service https://01.org/lkp