Tree/Branch: next-20151210 Git describe: next-20151210 Commit: 8225f4e85c Add linux-next specific files for 20151210
Build Time: 0 min 24 sec
Passed: 5 / 9 ( 55.56 %) Failed: 4 / 9 ( 44.44 %)
Errors: 56 Warnings: 43 Section Mismatches: 0
Failed defconfigs: arm64-allnoconfig arm64-allmodconfig arm-allmodconfig arm64-defconfig
Errors:
arm64-allnoconfig ../include/linux/wait.h:1217:2: error: implicit declaration of function 'atomic_read' [-Werror=implicit-function-declaration] ../include/linux/jiffies.h:61:39: error: division by zero in #if ../include/linux/jiffies.h:289:36: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/jiffies.h:303:33: error: division by zero in #if ../include/linux/jiffies.h:323:11: error: 'MSEC_PER_SEC' undeclared (first use in this function) ../include/linux/jiffies.h:369:15: error: 'USEC_PER_SEC' undeclared (first use in this function) ../include/linux/jiffies.h:417:9: error: variable 'ts' has initializer but incomplete type ../include/linux/jiffies.h:417:9: error: implicit declaration of function 'timespec_to_timespec64' [-Werror=implicit-function-declaration] ../include/linux/jiffies.h:417:48: error: dereferencing pointer to incomplete type ../include/linux/jiffies.h:417:20: error: storage size of 'ts' isn't known ../include/linux/jiffies.h:425:20: error: storage size of 'ts' isn't known ../include/linux/jiffies.h:428:2: error: dereferencing pointer to incomplete type ../include/linux/jiffies.h:428:2: error: implicit declaration of function 'timespec64_to_timespec' [-Werror=implicit-function-declaration] ../include/linux/ktime.h:52:23: error: 'KTIME_SEC_MAX' undeclared (first use in this function) ../include/linux/ktime.h:53:29: error: 'KTIME_MAX' undeclared (first use in this function) ../include/linux/ktime.h:55:36: error: 'NSEC_PER_SEC' undeclared (first use in this function) ../include/linux/ktime.h:81:57: error: parameter 1 ('ts') has incomplete type ../include/linux/ktime.h:81:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] ../include/linux/ktime.h:87:61: error: parameter 1 ('ts') has incomplete type ../include/linux/ktime.h:87:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] ../include/linux/ktime.h:93:55: error: parameter 1 ('tv') has incomplete type ../include/linux/ktime.h:93:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] ../include/linux/ktime.h:95:43: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:201:25: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:206:25: error: 'NSEC_PER_MSEC' undeclared (first use in this function) ../include/linux/ktime.h:221:33: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:226:33: error: 'NSEC_PER_MSEC' undeclared (first use in this function) ../include/linux/ktime.h:231:33: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:248:3: error: dereferencing pointer to incomplete type ../include/linux/ktime.h:248:3: error: implicit declaration of function 'ns_to_timespec' [-Werror=implicit-function-declaration] ../include/linux/ktime.h:267:3: error: dereferencing pointer to incomplete type ../include/linux/ktime.h:267:3: error: implicit declaration of function 'ns_to_timespec64' [-Werror=implicit-function-declaration] ../include/linux/timekeeping.h:25:31: error: return type is an incomplete type ../include/linux/timekeeping.h:27:9: error: variable 'now' has initializer but incomplete type ../include/linux/timekeeping.h:27:9: error: invalid use of undefined type 'struct timespec64' ../include/linux/timekeeping.h:27:20: error: storage size of 'now' isn't known ../include/linux/timekeeping.h:38:8: error: unknown type name 'time64_t' ../include/linux/timekeeping.h:39:8: error: unknown type name 'time64_t' ../include/linux/timekeeping.h:79:31: error: return type is an incomplete type ../include/linux/timekeeping.h:81:2: error: invalid use of undefined type 'struct timespec64' ../include/linux/timekeeping.h:242:2: error: dereferencing pointer to incomplete type ../include/linux/timekeeping.h:247:2: error: dereferencing pointer to incomplete type ../include/linux/timekeeping.h:252:2: error: dereferencing pointer to incomplete type ../include/linux/jump_label.h:187:2: error: implicit declaration of function 'atomic_inc' [-Werror=implicit-function-declaration] ../include/linux/jump_label.h:193:2: error: implicit declaration of function 'atomic_dec' [-Werror=implicit-function-declaration] ../include/linux/time64.h:45:31: error: conflicting types for 'timespec64_to_timespec' ../include/linux/time64.h:50:33: error: conflicting types for 'timespec_to_timespec64' ../include/linux/time.h:215:24: error: conflicting types for 'ns_to_timespec'
arm64-allmodconfig ../include/linux/wait.h:40:2: error: unknown type name 'spinlock_t' ../include/linux/wait.h:1217:2: error: implicit declaration of function 'atomic_read' [-Werror=implicit-function-declaration] ../include/linux/wait.h:76:32: error: storage size of '__key' isn't known ../include/linux/jiffies.h:61:39: error: division by zero in #if ../include/linux/jiffies.h:289:36: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/jiffies.h:303:33: error: division by zero in #if ../include/linux/jiffies.h:323:11: error: 'MSEC_PER_SEC' undeclared (first use in this function) ../include/linux/jiffies.h:369:15: error: 'USEC_PER_SEC' undeclared (first use in this function) ../include/linux/jiffies.h:417:9: error: variable 'ts' has initializer but incomplete type ../include/linux/jiffies.h:417:9: error: implicit declaration of function 'timespec_to_timespec64' [-Werror=implicit-function-declaration] ../include/linux/jiffies.h:417:48: error: dereferencing pointer to incomplete type ../include/linux/jiffies.h:417:20: error: storage size of 'ts' isn't known ../include/linux/jiffies.h:425:20: error: storage size of 'ts' isn't known ../include/linux/jiffies.h:428:2: error: dereferencing pointer to incomplete type ../include/linux/jiffies.h:428:2: error: implicit declaration of function 'timespec64_to_timespec' [-Werror=implicit-function-declaration] ../include/linux/ktime.h:52:23: error: 'KTIME_SEC_MAX' undeclared (first use in this function) ../include/linux/ktime.h:53:29: error: 'KTIME_MAX' undeclared (first use in this function) ../include/linux/ktime.h:55:36: error: 'NSEC_PER_SEC' undeclared (first use in this function) ../include/linux/ktime.h:81:57: error: parameter 1 ('ts') has incomplete type ../include/linux/ktime.h:81:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] ../include/linux/ktime.h:87:61: error: parameter 1 ('ts') has incomplete type ../include/linux/ktime.h:87:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] ../include/linux/ktime.h:93:55: error: parameter 1 ('tv') has incomplete type ../include/linux/ktime.h:93:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] ../include/linux/ktime.h:95:43: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:201:25: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:206:25: error: 'NSEC_PER_MSEC' undeclared (first use in this function) ../include/linux/ktime.h:221:33: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:226:33: error: 'NSEC_PER_MSEC' undeclared (first use in this function) ../include/linux/ktime.h:231:33: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:248:3: error: dereferencing pointer to incomplete type ../include/linux/ktime.h:248:3: error: implicit declaration of function 'ns_to_timespec' [-Werror=implicit-function-declaration] ../include/linux/ktime.h:267:3: error: dereferencing pointer to incomplete type ../include/linux/ktime.h:267:3: error: implicit declaration of function 'ns_to_timespec64' [-Werror=implicit-function-declaration] ../include/linux/timekeeping.h:25:31: error: return type is an incomplete type ../include/linux/timekeeping.h:27:9: error: variable 'now' has initializer but incomplete type ../include/linux/timekeeping.h:27:9: error: invalid use of undefined type 'struct timespec64' ../include/linux/timekeeping.h:27:20: error: storage size of 'now' isn't known ../include/linux/timekeeping.h:38:8: error: unknown type name 'time64_t' ../include/linux/timekeeping.h:39:8: error: unknown type name 'time64_t' ../include/linux/timekeeping.h:79:31: error: return type is an incomplete type ../include/linux/timekeeping.h:81:2: error: invalid use of undefined type 'struct timespec64' ../include/linux/timekeeping.h:242:2: error: dereferencing pointer to incomplete type ../include/linux/timekeeping.h:247:2: error: dereferencing pointer to incomplete type ../include/linux/timekeeping.h:252:2: error: dereferencing pointer to incomplete type ../include/linux/rcupdate.h:490:2: error: implicit declaration of function 'lock_acquire' [-Werror=implicit-function-declaration] ../include/linux/rcupdate.h:495:2: error: implicit declaration of function 'lock_release' [-Werror=implicit-function-declaration] ../include/linux/rcupdate.h:572:2: error: implicit declaration of function 'lock_is_held' [-Werror=implicit-function-declaration] ../include/linux/rcupdate.h:572:2: error: implicit declaration of function 'lockdep_rcu_suspicious' [-Werror=implicit-function-declaration] ../include/linux/time64.h:45:31: error: conflicting types for 'timespec64_to_timespec' ../include/linux/time64.h:50:33: error: conflicting types for 'timespec_to_timespec64' ../include/linux/time.h:215:24: error: conflicting types for 'ns_to_timespec'
arm-allmodconfig ../fs/overlayfs/super.c:939:19: error: 'PAGE_CACHE_SIZE' undeclared (first use in this function)
arm64-defconfig ../include/linux/jiffies.h:10:33: fatal error: generated/timeconst.h: No such file or directory
------------------------------------------------------------------------------- defconfigs with issues (other than build errors): 29 warnings 0 mismatches : arm64-allnoconfig 34 warnings 0 mismatches : arm64-allmodconfig 3 warnings 0 mismatches : arm-multi_v5_defconfig 8 warnings 0 mismatches : arm-multi_v7_defconfig 2 warnings 0 mismatches : arm-allmodconfig 1 warnings 0 mismatches : arm-allnoconfig
-------------------------------------------------------------------------------
Errors summary: 56 2 ../include/linux/wait.h:1217:2: error: implicit declaration of function 'atomic_read' [-Werror=implicit-function-declaration] 2 ../include/linux/timekeeping.h:81:2: error: invalid use of undefined type 'struct timespec64' 2 ../include/linux/timekeeping.h:79:31: error: return type is an incomplete type 2 ../include/linux/timekeeping.h:39:8: error: unknown type name 'time64_t' 2 ../include/linux/timekeeping.h:38:8: error: unknown type name 'time64_t' 2 ../include/linux/timekeeping.h:27:9: error: variable 'now' has initializer but incomplete type 2 ../include/linux/timekeeping.h:27:9: error: invalid use of undefined type 'struct timespec64' 2 ../include/linux/timekeeping.h:27:20: error: storage size of 'now' isn't known 2 ../include/linux/timekeeping.h:25:31: error: return type is an incomplete type 2 ../include/linux/timekeeping.h:252:2: error: dereferencing pointer to incomplete type 2 ../include/linux/timekeeping.h:247:2: error: dereferencing pointer to incomplete type 2 ../include/linux/timekeeping.h:242:2: error: dereferencing pointer to incomplete type 2 ../include/linux/time64.h:50:33: error: conflicting types for 'timespec_to_timespec64' 2 ../include/linux/time64.h:45:31: error: conflicting types for 'timespec64_to_timespec' 2 ../include/linux/time.h:215:24: error: conflicting types for 'ns_to_timespec' 2 ../include/linux/ktime.h:95:43: error: 'NSEC_PER_USEC' undeclared (first use in this function) 2 ../include/linux/ktime.h:93:55: error: parameter 1 ('tv') has incomplete type 2 ../include/linux/ktime.h:93:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] 2 ../include/linux/ktime.h:87:61: error: parameter 1 ('ts') has incomplete type 2 ../include/linux/ktime.h:87:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] 2 ../include/linux/ktime.h:81:57: error: parameter 1 ('ts') has incomplete type 2 ../include/linux/ktime.h:81:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] 2 ../include/linux/ktime.h:55:36: error: 'NSEC_PER_SEC' undeclared (first use in this function) 2 ../include/linux/ktime.h:53:29: error: 'KTIME_MAX' undeclared (first use in this function) 2 ../include/linux/ktime.h:52:23: error: 'KTIME_SEC_MAX' undeclared (first use in this function) 2 ../include/linux/ktime.h:267:3: error: implicit declaration of function 'ns_to_timespec64' [-Werror=implicit-function-declaration] 2 ../include/linux/ktime.h:267:3: error: dereferencing pointer to incomplete type 2 ../include/linux/ktime.h:248:3: error: implicit declaration of function 'ns_to_timespec' [-Werror=implicit-function-declaration] 2 ../include/linux/ktime.h:248:3: error: dereferencing pointer to incomplete type 2 ../include/linux/ktime.h:231:33: error: 'NSEC_PER_USEC' undeclared (first use in this function) 2 ../include/linux/ktime.h:226:33: error: 'NSEC_PER_MSEC' undeclared (first use in this function) 2 ../include/linux/ktime.h:221:33: error: 'NSEC_PER_USEC' undeclared (first use in this function) 2 ../include/linux/ktime.h:206:25: error: 'NSEC_PER_MSEC' undeclared (first use in this function) 2 ../include/linux/ktime.h:201:25: error: 'NSEC_PER_USEC' undeclared (first use in this function) 2 ../include/linux/jiffies.h:61:39: error: division by zero in #if 2 ../include/linux/jiffies.h:428:2: error: implicit declaration of function 'timespec64_to_timespec' [-Werror=implicit-function-declaration] 2 ../include/linux/jiffies.h:428:2: error: dereferencing pointer to incomplete type 2 ../include/linux/jiffies.h:425:20: error: storage size of 'ts' isn't known 2 ../include/linux/jiffies.h:417:9: error: variable 'ts' has initializer but incomplete type 2 ../include/linux/jiffies.h:417:9: error: implicit declaration of function 'timespec_to_timespec64' [-Werror=implicit-function-declaration] 2 ../include/linux/jiffies.h:417:48: error: dereferencing pointer to incomplete type 2 ../include/linux/jiffies.h:417:20: error: storage size of 'ts' isn't known 2 ../include/linux/jiffies.h:369:15: error: 'USEC_PER_SEC' undeclared (first use in this function) 2 ../include/linux/jiffies.h:323:11: error: 'MSEC_PER_SEC' undeclared (first use in this function) 2 ../include/linux/jiffies.h:303:33: error: division by zero in #if 2 ../include/linux/jiffies.h:289:36: error: 'NSEC_PER_USEC' undeclared (first use in this function) 1 ../include/linux/wait.h:76:32: error: storage size of '__key' isn't known 1 ../include/linux/wait.h:40:2: error: unknown type name 'spinlock_t' 1 ../include/linux/rcupdate.h:572:2: error: implicit declaration of function 'lockdep_rcu_suspicious' [-Werror=implicit-function-declaration] 1 ../include/linux/rcupdate.h:572:2: error: implicit declaration of function 'lock_is_held' [-Werror=implicit-function-declaration] 1 ../include/linux/rcupdate.h:495:2: error: implicit declaration of function 'lock_release' [-Werror=implicit-function-declaration] 1 ../include/linux/rcupdate.h:490:2: error: implicit declaration of function 'lock_acquire' [-Werror=implicit-function-declaration] 1 ../include/linux/jump_label.h:193:2: error: implicit declaration of function 'atomic_dec' [-Werror=implicit-function-declaration] 1 ../include/linux/jump_label.h:187:2: error: implicit declaration of function 'atomic_inc' [-Werror=implicit-function-declaration] 1 ../include/linux/jiffies.h:10:33: fatal error: generated/timeconst.h: No such file or directory 1 ../fs/overlayfs/super.c:939:19: error: 'PAGE_CACHE_SIZE' undeclared (first use in this function)
Warnings Summary: 43 6 <stdin>:1307:2: warning: #warning syscall copy_file_range not implemented [-Wcpp] 2 ../include/linux/timekeeping.h:86:23: warning: passing argument 1 of 'getboottime64' from incompatible pointer type 2 ../include/linux/timekeeping.h:81:2: warning: 'return' with a value, in function returning void 2 ../include/linux/timekeeping.h:76:20: warning: passing argument 1 of 'getrawmonotonic64' from incompatible pointer type 2 ../include/linux/timekeeping.h:71:19: warning: passing argument 1 of 'getnstimeofday64' from incompatible pointer type 2 ../include/linux/timekeeping.h:66:17: warning: passing argument 1 of 'ktime_get_ts64' from incompatible pointer type 2 ../include/linux/timekeeping.h:61:19: warning: passing argument 1 of 'getnstimeofday64' from incompatible pointer type 2 ../include/linux/timekeeping.h:56:28: warning: passing argument 1 of '__getnstimeofday64' from incompatible pointer type 2 ../include/linux/timekeeping.h:51:27: warning: passing argument 1 of 'do_settimeofday64' from incompatible pointer type 2 ../include/linux/timekeeping.h:29:2: warning: 'return' with a value, in function returning void 2 ../include/linux/timekeeping.h:27:20: warning: unused variable 'now' [-Wunused-variable] 2 ../include/linux/timekeeping.h:15:24: warning: 'struct timezone' declared inside parameter list 2 ../include/linux/timekeeping.h:13:43: warning: 'struct timespec64' declared inside parameter list 2 ../include/linux/timekeeping.h:12:36: warning: 'struct timeval' declared inside parameter list 2 ../include/linux/ktime.h:93:47: warning: 'struct timeval' declared inside parameter list 2 ../include/linux/ktime.h:87:50: warning: 'struct timespec64' declared inside parameter list 2 ../include/linux/ktime.h:264:21: warning: 'struct timespec64' declared inside parameter list 2 ../include/linux/jiffies.h:61:21: warning: "NSEC_PER_SEC" is not defined [-Wundef] 2 ../include/linux/jiffies.h:433:18: warning: 'struct timeval' declared inside parameter list 2 ../include/linux/jiffies.h:431:54: warning: 'struct timeval' declared inside parameter list 2 ../include/linux/jiffies.h:425:20: warning: unused variable 'ts' [-Wunused-variable] 2 ../include/linux/jiffies.h:417:20: warning: unused variable 'ts' [-Wunused-variable] 2 ../include/linux/jiffies.h:414:14: warning: 'struct timespec64' declared inside parameter list 2 ../include/linux/jiffies.h:412:57: warning: 'struct timespec64' declared inside parameter list 2 ../include/linux/jiffies.h:366:7: warning: "USEC_PER_SEC" is not defined [-Wundef] 2 ../include/linux/jiffies.h:303:35: warning: "MSEC_PER_SEC" is not defined [-Wundef] 2 ../include/linux/jiffies.h:303:12: warning: "MSEC_PER_SEC" is not defined [-Wundef] 2 ../include/linux/jiffies.h:293:11: warning: "MSEC_PER_SEC" is not defined [-Wundef] 2 ../include/linux/jiffies.h:257:10: warning: "NSEC_PER_SEC" is not defined [-Wundef] 2 ../drivers/gpio/gpiolib.c:225:31: warning: 'iterator' may be used uninitialized in this function [-Wmaybe-uninitialized] 1 ../sound/soc/sh/rcar/mix.c:135:13: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized] 1 ../sound/soc/sh/rcar/dvc.c:337:13: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized] 1 ../sound/soc/sh/rcar/ctu.c:88:13: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized] 1 ../net/bluetooth/mgmt.c:5471:8: warning: 'r192' may be used uninitialized in this function [-Wmaybe-uninitialized] 1 ../net/bluetooth/mgmt.c:5471:8: warning: 'h192' may be used uninitialized in this function [-Wmaybe-uninitialized] 1 ../include/linux/wait.h:76:32: warning: unused variable '__key' [-Wunused-variable] 1 ../include/linux/wait.h:72:82: warning: its scope is only this definition or declaration, which is probably not what you want 1 ../include/linux/wait.h:72:82: warning: 'struct lock_class_key' declared inside parameter list 1 ../include/linux/lockdep.h:545:6: warning: conflicting types for 'lockdep_rcu_suspicious' 1 ../include/linux/lockdep.h:337:13: warning: conflicting types for 'lock_release' 1 ../include/linux/lockdep.h:333:13: warning: conflicting types for 'lock_acquire' 1 ../include/linux/jiffies.h:412:57: warning: its scope is only this definition or declaration, which is probably not what you want 1 ../crypto/wp512.c:987:1: warning: the frame size of 1112 bytes is larger than 1024 bytes [-Wframe-larger-than=]
=============================================================================== Detailed per-defconfig build reports below:
------------------------------------------------------------------------------- arm64-allnoconfig : FAIL, 48 errors, 29 warnings, 0 section mismatches
Errors: ../include/linux/wait.h:1217:2: error: implicit declaration of function 'atomic_read' [-Werror=implicit-function-declaration] ../include/linux/jiffies.h:61:39: error: division by zero in #if ../include/linux/jiffies.h:289:36: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/jiffies.h:303:33: error: division by zero in #if ../include/linux/jiffies.h:323:11: error: 'MSEC_PER_SEC' undeclared (first use in this function) ../include/linux/jiffies.h:369:15: error: 'USEC_PER_SEC' undeclared (first use in this function) ../include/linux/jiffies.h:417:9: error: variable 'ts' has initializer but incomplete type ../include/linux/jiffies.h:417:9: error: implicit declaration of function 'timespec_to_timespec64' [-Werror=implicit-function-declaration] ../include/linux/jiffies.h:417:48: error: dereferencing pointer to incomplete type ../include/linux/jiffies.h:417:20: error: storage size of 'ts' isn't known ../include/linux/jiffies.h:425:20: error: storage size of 'ts' isn't known ../include/linux/jiffies.h:428:2: error: dereferencing pointer to incomplete type ../include/linux/jiffies.h:428:2: error: implicit declaration of function 'timespec64_to_timespec' [-Werror=implicit-function-declaration] ../include/linux/ktime.h:52:23: error: 'KTIME_SEC_MAX' undeclared (first use in this function) ../include/linux/ktime.h:53:29: error: 'KTIME_MAX' undeclared (first use in this function) ../include/linux/ktime.h:55:36: error: 'NSEC_PER_SEC' undeclared (first use in this function) ../include/linux/ktime.h:81:57: error: parameter 1 ('ts') has incomplete type ../include/linux/ktime.h:81:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] ../include/linux/ktime.h:87:61: error: parameter 1 ('ts') has incomplete type ../include/linux/ktime.h:87:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] ../include/linux/ktime.h:93:55: error: parameter 1 ('tv') has incomplete type ../include/linux/ktime.h:93:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] ../include/linux/ktime.h:95:43: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:201:25: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:206:25: error: 'NSEC_PER_MSEC' undeclared (first use in this function) ../include/linux/ktime.h:221:33: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:226:33: error: 'NSEC_PER_MSEC' undeclared (first use in this function) ../include/linux/ktime.h:231:33: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:248:3: error: dereferencing pointer to incomplete type ../include/linux/ktime.h:248:3: error: implicit declaration of function 'ns_to_timespec' [-Werror=implicit-function-declaration] ../include/linux/ktime.h:267:3: error: dereferencing pointer to incomplete type ../include/linux/ktime.h:267:3: error: implicit declaration of function 'ns_to_timespec64' [-Werror=implicit-function-declaration] ../include/linux/timekeeping.h:25:31: error: return type is an incomplete type ../include/linux/timekeeping.h:27:9: error: variable 'now' has initializer but incomplete type ../include/linux/timekeeping.h:27:9: error: invalid use of undefined type 'struct timespec64' ../include/linux/timekeeping.h:27:20: error: storage size of 'now' isn't known ../include/linux/timekeeping.h:38:8: error: unknown type name 'time64_t' ../include/linux/timekeeping.h:39:8: error: unknown type name 'time64_t' ../include/linux/timekeeping.h:79:31: error: return type is an incomplete type ../include/linux/timekeeping.h:81:2: error: invalid use of undefined type 'struct timespec64' ../include/linux/timekeeping.h:242:2: error: dereferencing pointer to incomplete type ../include/linux/timekeeping.h:247:2: error: dereferencing pointer to incomplete type ../include/linux/timekeeping.h:252:2: error: dereferencing pointer to incomplete type ../include/linux/jump_label.h:187:2: error: implicit declaration of function 'atomic_inc' [-Werror=implicit-function-declaration] ../include/linux/jump_label.h:193:2: error: implicit declaration of function 'atomic_dec' [-Werror=implicit-function-declaration] ../include/linux/time64.h:45:31: error: conflicting types for 'timespec64_to_timespec' ../include/linux/time64.h:50:33: error: conflicting types for 'timespec_to_timespec64' ../include/linux/time.h:215:24: error: conflicting types for 'ns_to_timespec'
Warnings: ../include/linux/jiffies.h:257:10: warning: "NSEC_PER_SEC" is not defined [-Wundef] ../include/linux/jiffies.h:61:21: warning: "NSEC_PER_SEC" is not defined [-Wundef] ../include/linux/jiffies.h:293:11: warning: "MSEC_PER_SEC" is not defined [-Wundef] ../include/linux/jiffies.h:303:12: warning: "MSEC_PER_SEC" is not defined [-Wundef] ../include/linux/jiffies.h:303:35: warning: "MSEC_PER_SEC" is not defined [-Wundef] ../include/linux/jiffies.h:366:7: warning: "USEC_PER_SEC" is not defined [-Wundef] ../include/linux/jiffies.h:412:57: warning: 'struct timespec64' declared inside parameter list ../include/linux/jiffies.h:412:57: warning: its scope is only this definition or declaration, which is probably not what you want ../include/linux/jiffies.h:414:14: warning: 'struct timespec64' declared inside parameter list ../include/linux/jiffies.h:417:20: warning: unused variable 'ts' [-Wunused-variable] ../include/linux/jiffies.h:425:20: warning: unused variable 'ts' [-Wunused-variable] ../include/linux/jiffies.h:431:54: warning: 'struct timeval' declared inside parameter list ../include/linux/jiffies.h:433:18: warning: 'struct timeval' declared inside parameter list ../include/linux/ktime.h:87:50: warning: 'struct timespec64' declared inside parameter list ../include/linux/ktime.h:93:47: warning: 'struct timeval' declared inside parameter list ../include/linux/ktime.h:264:21: warning: 'struct timespec64' declared inside parameter list ../include/linux/timekeeping.h:12:36: warning: 'struct timeval' declared inside parameter list ../include/linux/timekeeping.h:13:43: warning: 'struct timespec64' declared inside parameter list ../include/linux/timekeeping.h:15:24: warning: 'struct timezone' declared inside parameter list ../include/linux/timekeeping.h:29:2: warning: 'return' with a value, in function returning void ../include/linux/timekeeping.h:27:20: warning: unused variable 'now' [-Wunused-variable] ../include/linux/timekeeping.h:51:27: warning: passing argument 1 of 'do_settimeofday64' from incompatible pointer type ../include/linux/timekeeping.h:56:28: warning: passing argument 1 of '__getnstimeofday64' from incompatible pointer type ../include/linux/timekeeping.h:61:19: warning: passing argument 1 of 'getnstimeofday64' from incompatible pointer type ../include/linux/timekeeping.h:66:17: warning: passing argument 1 of 'ktime_get_ts64' from incompatible pointer type ../include/linux/timekeeping.h:71:19: warning: passing argument 1 of 'getnstimeofday64' from incompatible pointer type ../include/linux/timekeeping.h:76:20: warning: passing argument 1 of 'getrawmonotonic64' from incompatible pointer type ../include/linux/timekeeping.h:81:2: warning: 'return' with a value, in function returning void ../include/linux/timekeeping.h:86:23: warning: passing argument 1 of 'getboottime64' from incompatible pointer type
------------------------------------------------------------------------------- arm64-allmodconfig : FAIL, 52 errors, 34 warnings, 0 section mismatches
Errors: ../include/linux/wait.h:40:2: error: unknown type name 'spinlock_t' ../include/linux/wait.h:1217:2: error: implicit declaration of function 'atomic_read' [-Werror=implicit-function-declaration] ../include/linux/wait.h:76:32: error: storage size of '__key' isn't known ../include/linux/jiffies.h:61:39: error: division by zero in #if ../include/linux/jiffies.h:289:36: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/jiffies.h:303:33: error: division by zero in #if ../include/linux/jiffies.h:323:11: error: 'MSEC_PER_SEC' undeclared (first use in this function) ../include/linux/jiffies.h:369:15: error: 'USEC_PER_SEC' undeclared (first use in this function) ../include/linux/jiffies.h:417:9: error: variable 'ts' has initializer but incomplete type ../include/linux/jiffies.h:417:9: error: implicit declaration of function 'timespec_to_timespec64' [-Werror=implicit-function-declaration] ../include/linux/jiffies.h:417:48: error: dereferencing pointer to incomplete type ../include/linux/jiffies.h:417:20: error: storage size of 'ts' isn't known ../include/linux/jiffies.h:425:20: error: storage size of 'ts' isn't known ../include/linux/jiffies.h:428:2: error: dereferencing pointer to incomplete type ../include/linux/jiffies.h:428:2: error: implicit declaration of function 'timespec64_to_timespec' [-Werror=implicit-function-declaration] ../include/linux/ktime.h:52:23: error: 'KTIME_SEC_MAX' undeclared (first use in this function) ../include/linux/ktime.h:53:29: error: 'KTIME_MAX' undeclared (first use in this function) ../include/linux/ktime.h:55:36: error: 'NSEC_PER_SEC' undeclared (first use in this function) ../include/linux/ktime.h:81:57: error: parameter 1 ('ts') has incomplete type ../include/linux/ktime.h:81:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] ../include/linux/ktime.h:87:61: error: parameter 1 ('ts') has incomplete type ../include/linux/ktime.h:87:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] ../include/linux/ktime.h:93:55: error: parameter 1 ('tv') has incomplete type ../include/linux/ktime.h:93:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] ../include/linux/ktime.h:95:43: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:201:25: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:206:25: error: 'NSEC_PER_MSEC' undeclared (first use in this function) ../include/linux/ktime.h:221:33: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:226:33: error: 'NSEC_PER_MSEC' undeclared (first use in this function) ../include/linux/ktime.h:231:33: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:248:3: error: dereferencing pointer to incomplete type ../include/linux/ktime.h:248:3: error: implicit declaration of function 'ns_to_timespec' [-Werror=implicit-function-declaration] ../include/linux/ktime.h:267:3: error: dereferencing pointer to incomplete type ../include/linux/ktime.h:267:3: error: implicit declaration of function 'ns_to_timespec64' [-Werror=implicit-function-declaration] ../include/linux/timekeeping.h:25:31: error: return type is an incomplete type ../include/linux/timekeeping.h:27:9: error: variable 'now' has initializer but incomplete type ../include/linux/timekeeping.h:27:9: error: invalid use of undefined type 'struct timespec64' ../include/linux/timekeeping.h:27:20: error: storage size of 'now' isn't known ../include/linux/timekeeping.h:38:8: error: unknown type name 'time64_t' ../include/linux/timekeeping.h:39:8: error: unknown type name 'time64_t' ../include/linux/timekeeping.h:79:31: error: return type is an incomplete type ../include/linux/timekeeping.h:81:2: error: invalid use of undefined type 'struct timespec64' ../include/linux/timekeeping.h:242:2: error: dereferencing pointer to incomplete type ../include/linux/timekeeping.h:247:2: error: dereferencing pointer to incomplete type ../include/linux/timekeeping.h:252:2: error: dereferencing pointer to incomplete type ../include/linux/rcupdate.h:490:2: error: implicit declaration of function 'lock_acquire' [-Werror=implicit-function-declaration] ../include/linux/rcupdate.h:495:2: error: implicit declaration of function 'lock_release' [-Werror=implicit-function-declaration] ../include/linux/rcupdate.h:572:2: error: implicit declaration of function 'lock_is_held' [-Werror=implicit-function-declaration] ../include/linux/rcupdate.h:572:2: error: implicit declaration of function 'lockdep_rcu_suspicious' [-Werror=implicit-function-declaration] ../include/linux/time64.h:45:31: error: conflicting types for 'timespec64_to_timespec' ../include/linux/time64.h:50:33: error: conflicting types for 'timespec_to_timespec64' ../include/linux/time.h:215:24: error: conflicting types for 'ns_to_timespec'
Warnings: ../include/linux/wait.h:72:82: warning: 'struct lock_class_key' declared inside parameter list ../include/linux/wait.h:72:82: warning: its scope is only this definition or declaration, which is probably not what you want ../include/linux/wait.h:76:32: warning: unused variable '__key' [-Wunused-variable] ../include/linux/jiffies.h:257:10: warning: "NSEC_PER_SEC" is not defined [-Wundef] ../include/linux/jiffies.h:61:21: warning: "NSEC_PER_SEC" is not defined [-Wundef] ../include/linux/jiffies.h:293:11: warning: "MSEC_PER_SEC" is not defined [-Wundef] ../include/linux/jiffies.h:303:12: warning: "MSEC_PER_SEC" is not defined [-Wundef] ../include/linux/jiffies.h:303:35: warning: "MSEC_PER_SEC" is not defined [-Wundef] ../include/linux/jiffies.h:366:7: warning: "USEC_PER_SEC" is not defined [-Wundef] ../include/linux/jiffies.h:412:57: warning: 'struct timespec64' declared inside parameter list ../include/linux/jiffies.h:414:14: warning: 'struct timespec64' declared inside parameter list ../include/linux/jiffies.h:417:20: warning: unused variable 'ts' [-Wunused-variable] ../include/linux/jiffies.h:425:20: warning: unused variable 'ts' [-Wunused-variable] ../include/linux/jiffies.h:431:54: warning: 'struct timeval' declared inside parameter list ../include/linux/jiffies.h:433:18: warning: 'struct timeval' declared inside parameter list ../include/linux/ktime.h:87:50: warning: 'struct timespec64' declared inside parameter list ../include/linux/ktime.h:93:47: warning: 'struct timeval' declared inside parameter list ../include/linux/ktime.h:264:21: warning: 'struct timespec64' declared inside parameter list ../include/linux/timekeeping.h:12:36: warning: 'struct timeval' declared inside parameter list ../include/linux/timekeeping.h:13:43: warning: 'struct timespec64' declared inside parameter list ../include/linux/timekeeping.h:15:24: warning: 'struct timezone' declared inside parameter list ../include/linux/timekeeping.h:29:2: warning: 'return' with a value, in function returning void ../include/linux/timekeeping.h:27:20: warning: unused variable 'now' [-Wunused-variable] ../include/linux/timekeeping.h:51:27: warning: passing argument 1 of 'do_settimeofday64' from incompatible pointer type ../include/linux/timekeeping.h:56:28: warning: passing argument 1 of '__getnstimeofday64' from incompatible pointer type ../include/linux/timekeeping.h:61:19: warning: passing argument 1 of 'getnstimeofday64' from incompatible pointer type ../include/linux/timekeeping.h:66:17: warning: passing argument 1 of 'ktime_get_ts64' from incompatible pointer type ../include/linux/timekeeping.h:71:19: warning: passing argument 1 of 'getnstimeofday64' from incompatible pointer type ../include/linux/timekeeping.h:76:20: warning: passing argument 1 of 'getrawmonotonic64' from incompatible pointer type ../include/linux/timekeeping.h:81:2: warning: 'return' with a value, in function returning void ../include/linux/timekeeping.h:86:23: warning: passing argument 1 of 'getboottime64' from incompatible pointer type ../include/linux/lockdep.h:333:13: warning: conflicting types for 'lock_acquire' ../include/linux/lockdep.h:337:13: warning: conflicting types for 'lock_release' ../include/linux/lockdep.h:545:6: warning: conflicting types for 'lockdep_rcu_suspicious'
------------------------------------------------------------------------------- arm-multi_v5_defconfig : PASS, 0 errors, 3 warnings, 0 section mismatches
Warnings: <stdin>:1307:2: warning: #warning syscall copy_file_range not implemented [-Wcpp] ../drivers/gpio/gpiolib.c:225:31: warning: 'iterator' may be used uninitialized in this function [-Wmaybe-uninitialized] <stdin>:1307:2: warning: #warning syscall copy_file_range not implemented [-Wcpp]
------------------------------------------------------------------------------- arm-multi_v7_defconfig : PASS, 0 errors, 8 warnings, 0 section mismatches
Warnings: <stdin>:1307:2: warning: #warning syscall copy_file_range not implemented [-Wcpp] ../net/bluetooth/mgmt.c:5471:8: warning: 'r192' may be used uninitialized in this function [-Wmaybe-uninitialized] ../net/bluetooth/mgmt.c:5471:8: warning: 'h192' may be used uninitialized in this function [-Wmaybe-uninitialized] ../sound/soc/sh/rcar/ctu.c:88:13: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized] ../sound/soc/sh/rcar/mix.c:135:13: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized] ../sound/soc/sh/rcar/dvc.c:337:13: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized] ../drivers/gpio/gpiolib.c:225:31: warning: 'iterator' may be used uninitialized in this function [-Wmaybe-uninitialized] <stdin>:1307:2: warning: #warning syscall copy_file_range not implemented [-Wcpp]
------------------------------------------------------------------------------- arm-allmodconfig : FAIL, 1 errors, 2 warnings, 0 section mismatches
Errors: ../fs/overlayfs/super.c:939:19: error: 'PAGE_CACHE_SIZE' undeclared (first use in this function)
Warnings: <stdin>:1307:2: warning: #warning syscall copy_file_range not implemented [-Wcpp] ../crypto/wp512.c:987:1: warning: the frame size of 1112 bytes is larger than 1024 bytes [-Wframe-larger-than=]
------------------------------------------------------------------------------- arm-allnoconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings: <stdin>:1307:2: warning: #warning syscall copy_file_range not implemented [-Wcpp]
------------------------------------------------------------------------------- arm64-defconfig : FAIL, 1 errors, 0 warnings, 0 section mismatches
Errors: ../include/linux/jiffies.h:10:33: fatal error: generated/timeconst.h: No such file or directory -------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
x86_64-allnoconfig x86_64-defconfig
On Thu, Dec 10, 2015 at 08:06:07AM +0000, Build bot for Mark Brown wrote:
Today's -next fails to build most arm64 configs with some rather spectacular errors below introduced by 02598e94ed5a78 (mm, printk: introduce new format string for flags) from Andrew's tree. These in turn stem from the fact that we introduce an inclusion of linux/tracepoint.h into linux/mmdebug.h which through a chain of nested inclusions means that we end up attempting to use definitions from headers before they have finished including. For example:
arm64-allnoconfig ../include/linux/wait.h:1217:2: error: implicit declaration of function 'atomic_read' [-Werror=implicit-function-declaration]
is a result of:
In file included from include/linux/completion.h:11:0, from include/linux/rcupdate.h:43, from include/linux/tracepoint.h:19, from include/linux/mmdebug.h:6, from ./arch/arm64/include/asm/cmpxchg.h:22, from ./arch/arm64/include/asm/atomic.h:41, from include/linux/atomic.h:4, from include/linux/spinlock.h:406, from include/linux/seqlock.h:35, from include/linux/time.h:5, from include/uapi/linux/timex.h:56, from include/linux/timex.h:56, from include/linux/sched.h:19, from arch/arm64/kernel/asm-offsets.c:21: include/linux/wait.h: In function 'wait_on_atomic_t': include/linux/wait.h:1218:2: error: implicit declaration of function 'atomic_read' [-Werror=implicit-function-declaration] if (atomic_read(val) == 0)
where atomic_read() will be defined in atomic.h which is part of the inclusion chain above but hasn't yet parsed far enough to actually define anything. This is all a bit of a horrific mess the root cause of which appears to be that arm64 is unusual in including linux/mmdebug.h in asm/cmpxchg.h which triggers the mess. There doesn't seem to be any reason for this inclusion, I've just sent a patch removing it. It'd be good to get this into -next as a matter of urgency.
../include/linux/jiffies.h:61:39: error: division by zero in #if ../include/linux/jiffies.h:289:36: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/jiffies.h:303:33: error: division by zero in #if ../include/linux/jiffies.h:323:11: error: 'MSEC_PER_SEC' undeclared (first use in this function) ../include/linux/jiffies.h:369:15: error: 'USEC_PER_SEC' undeclared (first use in this function) ../include/linux/jiffies.h:417:9: error: variable 'ts' has initializer but incomplete type ../include/linux/jiffies.h:417:9: error: implicit declaration of function 'timespec_to_timespec64' [-Werror=implicit-function-declaration] ../include/linux/jiffies.h:417:48: error: dereferencing pointer to incomplete type ../include/linux/jiffies.h:417:20: error: storage size of 'ts' isn't known ../include/linux/jiffies.h:425:20: error: storage size of 'ts' isn't known ../include/linux/jiffies.h:428:2: error: dereferencing pointer to incomplete type ../include/linux/jiffies.h:428:2: error: implicit declaration of function 'timespec64_to_timespec' [-Werror=implicit-function-declaration] ../include/linux/ktime.h:52:23: error: 'KTIME_SEC_MAX' undeclared (first use in this function) ../include/linux/ktime.h:53:29: error: 'KTIME_MAX' undeclared (first use in this function) ../include/linux/ktime.h:55:36: error: 'NSEC_PER_SEC' undeclared (first use in this function) ../include/linux/ktime.h:81:57: error: parameter 1 ('ts') has incomplete type ../include/linux/ktime.h:81:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] ../include/linux/ktime.h:87:61: error: parameter 1 ('ts') has incomplete type ../include/linux/ktime.h:87:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] ../include/linux/ktime.h:93:55: error: parameter 1 ('tv') has incomplete type ../include/linux/ktime.h:93:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] ../include/linux/ktime.h:95:43: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:201:25: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:206:25: error: 'NSEC_PER_MSEC' undeclared (first use in this function) ../include/linux/ktime.h:221:33: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:226:33: error: 'NSEC_PER_MSEC' undeclared (first use in this function) ../include/linux/ktime.h:231:33: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:248:3: error: dereferencing pointer to incomplete type ../include/linux/ktime.h:248:3: error: implicit declaration of function 'ns_to_timespec' [-Werror=implicit-function-declaration] ../include/linux/ktime.h:267:3: error: dereferencing pointer to incomplete type ../include/linux/ktime.h:267:3: error: implicit declaration of function 'ns_to_timespec64' [-Werror=implicit-function-declaration] ../include/linux/timekeeping.h:25:31: error: return type is an incomplete type ../include/linux/timekeeping.h:27:9: error: variable 'now' has initializer but incomplete type ../include/linux/timekeeping.h:27:9: error: invalid use of undefined type 'struct timespec64' ../include/linux/timekeeping.h:27:20: error: storage size of 'now' isn't known ../include/linux/timekeeping.h:38:8: error: unknown type name 'time64_t' ../include/linux/timekeeping.h:39:8: error: unknown type name 'time64_t' ../include/linux/timekeeping.h:79:31: error: return type is an incomplete type ../include/linux/timekeeping.h:81:2: error: invalid use of undefined type 'struct timespec64' ../include/linux/timekeeping.h:242:2: error: dereferencing pointer to incomplete type ../include/linux/timekeeping.h:247:2: error: dereferencing pointer to incomplete type ../include/linux/timekeeping.h:252:2: error: dereferencing pointer to incomplete type ../include/linux/jump_label.h:187:2: error: implicit declaration of function 'atomic_inc' [-Werror=implicit-function-declaration] ../include/linux/jump_label.h:193:2: error: implicit declaration of function 'atomic_dec' [-Werror=implicit-function-declaration] ../include/linux/time64.h:45:31: error: conflicting types for 'timespec64_to_timespec' ../include/linux/time64.h:50:33: error: conflicting types for 'timespec_to_timespec64' ../include/linux/time.h:215:24: error: conflicting types for 'ns_to_timespec'
arm64-allmodconfig ../include/linux/wait.h:40:2: error: unknown type name 'spinlock_t' ../include/linux/wait.h:1217:2: error: implicit declaration of function 'atomic_read' [-Werror=implicit-function-declaration] ../include/linux/wait.h:76:32: error: storage size of '__key' isn't known ../include/linux/jiffies.h:61:39: error: division by zero in #if ../include/linux/jiffies.h:289:36: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/jiffies.h:303:33: error: division by zero in #if ../include/linux/jiffies.h:323:11: error: 'MSEC_PER_SEC' undeclared (first use in this function) ../include/linux/jiffies.h:369:15: error: 'USEC_PER_SEC' undeclared (first use in this function) ../include/linux/jiffies.h:417:9: error: variable 'ts' has initializer but incomplete type ../include/linux/jiffies.h:417:9: error: implicit declaration of function 'timespec_to_timespec64' [-Werror=implicit-function-declaration] ../include/linux/jiffies.h:417:48: error: dereferencing pointer to incomplete type ../include/linux/jiffies.h:417:20: error: storage size of 'ts' isn't known ../include/linux/jiffies.h:425:20: error: storage size of 'ts' isn't known ../include/linux/jiffies.h:428:2: error: dereferencing pointer to incomplete type ../include/linux/jiffies.h:428:2: error: implicit declaration of function 'timespec64_to_timespec' [-Werror=implicit-function-declaration] ../include/linux/ktime.h:52:23: error: 'KTIME_SEC_MAX' undeclared (first use in this function) ../include/linux/ktime.h:53:29: error: 'KTIME_MAX' undeclared (first use in this function) ../include/linux/ktime.h:55:36: error: 'NSEC_PER_SEC' undeclared (first use in this function) ../include/linux/ktime.h:81:57: error: parameter 1 ('ts') has incomplete type ../include/linux/ktime.h:81:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] ../include/linux/ktime.h:87:61: error: parameter 1 ('ts') has incomplete type ../include/linux/ktime.h:87:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] ../include/linux/ktime.h:93:55: error: parameter 1 ('tv') has incomplete type ../include/linux/ktime.h:93:23: error: function declaration isn't a prototype [-Werror=strict-prototypes] ../include/linux/ktime.h:95:43: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:201:25: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:206:25: error: 'NSEC_PER_MSEC' undeclared (first use in this function) ../include/linux/ktime.h:221:33: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:226:33: error: 'NSEC_PER_MSEC' undeclared (first use in this function) ../include/linux/ktime.h:231:33: error: 'NSEC_PER_USEC' undeclared (first use in this function) ../include/linux/ktime.h:248:3: error: dereferencing pointer to incomplete type ../include/linux/ktime.h:248:3: error: implicit declaration of function 'ns_to_timespec' [-Werror=implicit-function-declaration] ../include/linux/ktime.h:267:3: error: dereferencing pointer to incomplete type ../include/linux/ktime.h:267:3: error: implicit declaration of function 'ns_to_timespec64' [-Werror=implicit-function-declaration] ../include/linux/timekeeping.h:25:31: error: return type is an incomplete type ../include/linux/timekeeping.h:27:9: error: variable 'now' has initializer but incomplete type ../include/linux/timekeeping.h:27:9: error: invalid use of undefined type 'struct timespec64' ../include/linux/timekeeping.h:27:20: error: storage size of 'now' isn't known ../include/linux/timekeeping.h:38:8: error: unknown type name 'time64_t' ../include/linux/timekeeping.h:39:8: error: unknown type name 'time64_t' ../include/linux/timekeeping.h:79:31: error: return type is an incomplete type ../include/linux/timekeeping.h:81:2: error: invalid use of undefined type 'struct timespec64' ../include/linux/timekeeping.h:242:2: error: dereferencing pointer to incomplete type ../include/linux/timekeeping.h:247:2: error: dereferencing pointer to incomplete type ../include/linux/timekeeping.h:252:2: error: dereferencing pointer to incomplete type ../include/linux/rcupdate.h:490:2: error: implicit declaration of function 'lock_acquire' [-Werror=implicit-function-declaration] ../include/linux/rcupdate.h:495:2: error: implicit declaration of function 'lock_release' [-Werror=implicit-function-declaration] ../include/linux/rcupdate.h:572:2: error: implicit declaration of function 'lock_is_held' [-Werror=implicit-function-declaration] ../include/linux/rcupdate.h:572:2: error: implicit declaration of function 'lockdep_rcu_suspicious' [-Werror=implicit-function-declaration] ../include/linux/time64.h:45:31: error: conflicting types for 'timespec64_to_timespec' ../include/linux/time64.h:50:33: error: conflicting types for 'timespec_to_timespec64' ../include/linux/time.h:215:24: error: conflicting types for 'ns_to_timespec'
On Thu, Dec 10, 2015 at 04:55:13PM +0000, Mark Brown wrote:
On Thu, Dec 10, 2015 at 08:06:07AM +0000, Build bot for Mark Brown wrote:
Today's -next fails to build most arm64 configs with some rather spectacular errors below introduced by 02598e94ed5a78 (mm, printk: introduce new format string for flags) from Andrew's tree. These in turn stem from the fact that we introduce an inclusion of linux/tracepoint.h into linux/mmdebug.h which through a chain of nested inclusions means that we end up attempting to use definitions from headers before they have finished including. For example:
arm64-allnoconfig ../include/linux/wait.h:1217:2: error: implicit declaration of function 'atomic_read' [-Werror=implicit-function-declaration]
is a result of:
In file included from include/linux/completion.h:11:0, from include/linux/rcupdate.h:43, from include/linux/tracepoint.h:19, from include/linux/mmdebug.h:6, from ./arch/arm64/include/asm/cmpxchg.h:22, from ./arch/arm64/include/asm/atomic.h:41, from include/linux/atomic.h:4, from include/linux/spinlock.h:406, from include/linux/seqlock.h:35, from include/linux/time.h:5, from include/uapi/linux/timex.h:56, from include/linux/timex.h:56, from include/linux/sched.h:19, from arch/arm64/kernel/asm-offsets.c:21: include/linux/wait.h: In function 'wait_on_atomic_t': include/linux/wait.h:1218:2: error: implicit declaration of function 'atomic_read' [-Werror=implicit-function-declaration] if (atomic_read(val) == 0)
where atomic_read() will be defined in atomic.h which is part of the inclusion chain above but hasn't yet parsed far enough to actually define anything. This is all a bit of a horrific mess the root cause of which appears to be that arm64 is unusual in including linux/mmdebug.h in asm/cmpxchg.h which triggers the mess. There doesn't seem to be any reason for this inclusion, I've just sent a patch removing it. It'd be good to get this into -next as a matter of urgency.
I'll pick up your fix into the arm64 for-next/core branch.
Cheers,
Will
On Thu, 10 Dec 2015 16:55:13 +0000 Mark Brown broonie@kernel.org wrote:
Today's -next fails to build most arm64 configs with some rather spectacular errors below introduced by 02598e94ed5a78 (mm, printk: introduce new format string for flags) from Andrew's tree. These in turn stem from the fact that we introduce an inclusion of linux/tracepoint.h into linux/mmdebug.h which through a chain of nested inclusions means that we end up attempting to use definitions from headers before they have finished including.
Thanks.
Further complexicating the include tree is something we don't need. I'll try moving the offending declarations into mm/internal.h, see how that goes.
Including ../mm/internal.h into lib/vsprintf.c is a bit grubby, but I guess it makes sense - vsprintf is poking about in mm internals, so it gets to include mm's internal.h.
Vlastimil, the patch is rather bloaty - it adds 1.2k for something which few people will use. I wonder if it should be conditioned by CONFIG_DEBUG_VM.
From: Andrew Morton akpm@linux-foundation.org Subject: mm-printk-introduce-new-format-string-for-flags-fix-2
move declaration of trace_print_flags arrays into mm/internal.h
Cc: "Kirill A. Shutemov" kirill.shutemov@linux.intel.com Cc: Joonsoo Kim iamjoonsoo.kim@lge.com Cc: Mel Gorman mgorman@suse.de Cc: Michal Hocko mhocko@suse.cz Cc: Minchan Kim minchan@kernel.org Cc: Rasmus Villemoes linux@rasmusvillemoes.dk Cc: Sasha Levin sasha.levin@oracle.com Cc: Vlastimil Babka vbabka@suse.cz Signed-off-by: Andrew Morton akpm@linux-foundation.org ---
include/linux/mmdebug.h | 6 ------ lib/vsprintf.c | 3 ++- mm/debug.c | 2 ++ mm/internal.h | 7 +++++++ 4 files changed, 11 insertions(+), 7 deletions(-)
diff -puN include/linux/mmdebug.h~mm-printk-introduce-new-format-string-for-flags-fix-2 include/linux/mmdebug.h --- a/include/linux/mmdebug.h~mm-printk-introduce-new-format-string-for-flags-fix-2 +++ a/include/linux/mmdebug.h @@ -2,17 +2,11 @@ #define LINUX_MM_DEBUG_H 1
#include <linux/stringify.h> -#include <linux/types.h> -#include <linux/tracepoint.h>
struct page; struct vm_area_struct; struct mm_struct;
-extern const struct trace_print_flags pageflag_names[]; -extern const struct trace_print_flags vmaflag_names[]; -extern const struct trace_print_flags gfpflag_names[]; - extern void dump_page(struct page *page, const char *reason); extern void dump_page_badflags(struct page *page, const char *reason, unsigned long badflags); diff -puN lib/vsprintf.c~mm-printk-introduce-new-format-string-for-flags-fix-2 lib/vsprintf.c --- a/lib/vsprintf.c~mm-printk-introduce-new-format-string-for-flags-fix-2 +++ a/lib/vsprintf.c @@ -31,7 +31,8 @@ #include <linux/dcache.h> #include <linux/cred.h> #include <net/addrconf.h> -#include <linux/mmdebug.h> + +#include "../mm/internal.h" /* For the trace_print_flags arrays */
#include <asm/page.h> /* for PAGE_SIZE */ #include <asm/sections.h> /* for dereference_function_descriptor() */ diff -puN mm/debug.c~mm-printk-introduce-new-format-string-for-flags-fix-2 mm/debug.c --- a/mm/debug.c~mm-printk-introduce-new-format-string-for-flags-fix-2 +++ a/mm/debug.c @@ -13,6 +13,8 @@ #include <trace/events/gfpflags.h> #include <linux/page_owner.h>
+#include "internal.h" + char *migrate_reason_names[MR_TYPES] = { "compaction", "memory_failure", diff -puN mm/internal.h~mm-printk-introduce-new-format-string-for-flags-fix-2 mm/internal.h --- a/mm/internal.h~mm-printk-introduce-new-format-string-for-flags-fix-2 +++ a/mm/internal.h @@ -11,9 +11,11 @@ #ifndef __MM_INTERNAL_H #define __MM_INTERNAL_H
+#include <linux/types.h> #include <linux/fs.h> #include <linux/mm.h> #include <linux/pagemap.h> +#include <linux/tracepoint.h>
/* * The set of flags that only affect watermark checking and reclaim @@ -441,4 +443,9 @@ static inline void try_to_unmap_flush_di }
#endif /* CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH */ + +extern const struct trace_print_flags pageflag_names[]; +extern const struct trace_print_flags vmaflag_names[]; +extern const struct trace_print_flags gfpflag_names[]; + #endif /* __MM_INTERNAL_H */ _
On 10.12.2015 23:47, Andrew Morton wrote:
On Thu, 10 Dec 2015 16:55:13 +0000 Mark Brown broonie@kernel.org wrote:
Today's -next fails to build most arm64 configs with some rather spectacular errors below introduced by 02598e94ed5a78 (mm, printk: introduce new format string for flags) from Andrew's tree. These in turn stem from the fact that we introduce an inclusion of linux/tracepoint.h into linux/mmdebug.h which through a chain of nested inclusions means that we end up attempting to use definitions from headers before they have finished including.
Thanks.
Further complexicating the include tree is something we don't need. I'll try moving the offending declarations into mm/internal.h, see how that goes.
Yeah that works too, thanks.
Including ../mm/internal.h into lib/vsprintf.c is a bit grubby, but I guess it makes sense - vsprintf is poking about in mm internals, so it gets to include mm's internal.h.
OK.
Vlastimil, the patch is rather bloaty - it adds 1.2k for something which few people will use. I wonder if it should be conditioned by CONFIG_DEBUG_VM.
Hmm, but one of the benefits is that we get e.g. the gfp flags translated in oom and alloc failure reports that users submit, and CONFIG_DEBUG_VM is not enabled by default. So the conditioning should be based on some option that people explicitly enable to make their kernels smaller knowing it's a tradeoff for functionality/convenience.
linaro-kernel@lists.linaro.org