From: Mark Brown <broonie@kernel•org>
To: Vlastimil Babka <vbabka@suse•cz>,
Andrew Morton <akpm@linux-foundation•org>,
Catalin Marinas <catalin.marinas@arm•com>,
Will Deacon <will.deacon@arm•com>,
Stephen Rothwell <sfr@canb•auug.org.au>
Cc: kernel-build-reports@lists•linaro.org,
linaro-kernel@lists•linaro.org, linux-next@vger•kernel.org,
linux-arm-kernel@lists•infradead.org
Subject: Re: next-20151210 build: 4 failures 43 warnings (next-20151210)
Date: Thu, 10 Dec 2015 16:55:13 +0000 [thread overview]
Message-ID: <20151210165513.GO5727@sirena.org.uk> (raw)
In-Reply-To: <E1a6wEp-0000hU-7o@optimist>
[-- Attachment #1: Type: text/plain, Size: 11759 bytes --]
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'
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 473 bytes --]
next prev parent reply other threads:[~2015-12-10 16:55 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-10 8:06 next-20151210 build: 4 failures 43 warnings (next-20151210) Build bot for Mark Brown
2015-12-10 16:55 ` Mark Brown [this message]
2015-12-10 17:14 ` Will Deacon
2015-12-10 22:47 ` Andrew Morton
2015-12-11 7:12 ` Vlastimil Babka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20151210165513.GO5727@sirena.org.uk \
--to=broonie@kernel$(echo .)org \
--cc=akpm@linux-foundation$(echo .)org \
--cc=catalin.marinas@arm$(echo .)com \
--cc=kernel-build-reports@lists$(echo .)linaro.org \
--cc=linaro-kernel@lists$(echo .)linaro.org \
--cc=linux-arm-kernel@lists$(echo .)infradead.org \
--cc=linux-next@vger$(echo .)kernel.org \
--cc=sfr@canb$(echo .)auug.org.au \
--cc=vbabka@suse$(echo .)cz \
--cc=will.deacon@arm$(echo .)com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox