From: Peter Zijlstra <peterz@infradead.org>
To: Jakub Jelinek <jakub@redhat.com>
Cc: "Paul E. McKenney" <paulmck@kernel.org>,
linux-kernel@vger.kernel.org,
Josh Poimboeuf <jpoimboe@redhat.com>,
linux-toolchains@vger.kernel.org
Subject: Re: objtool warning, branch, patch, and .config (GCC bug)
Date: Thu, 26 May 2022 11:41:24 +0200 [thread overview]
Message-ID: <20220526094124.GN2578@worktop.programming.kicks-ass.net> (raw)
In-Reply-To: <Yo9CCoEF7nOd6lQI@tucnak>
[-- Attachment #1: Type: text/plain, Size: 3004 bytes --]
On Thu, May 26, 2022 at 11:02:02AM +0200, Jakub Jelinek wrote:
> On Thu, May 26, 2022 at 10:08:49AM +0200, Peter Zijlstra wrote:
> > On Thu, May 26, 2022 at 10:03:13AM +0200, Peter Zijlstra wrote:
> >
> > > Which is just bloody weird/broken if you ask me. What's worse, GCC-10
> > > does the same. Only when I use GCC-11 do I get sensible code again:
> >
> > Just to clarify, I can reproduce using:
> >
> > gcc-9 (Debian 9.4.0-5) 9.4.0
> > gcc-10 (Debian 10.3.0-15) 10.3.0
> >
> > The good compiler is:
> >
> > gcc-11 (Debian 11.3.0-1) 11.3.0
>
> Such fallthrough into another function is typically the result
> of __builtin_unreachable (), either explicit somewhere in the code,
> or invoking undefined behavior somewhere and __builtin_unreachable ()
> replacing the UB code.
> I'd need preprocessed source + full gcc command line to tell more
> (as long as it is not LTO, with LTO that isn't enough of course).
$ make O=build/ CC=gcc-9 kernel/rcu/update.o V=1
gives the compile command as:
gcc-9 -Wp,-MMD,kernel/rcu/.update.o.d -nostdinc -I../arch/x86/include -I./arch/x86/include/generated -I../include -I./include -I../arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I../include/uapi -I./include/generated/uapi -include ../include/linux/compiler-version.h -include ../include/linux/kconfig.h -include ../include/linux/compiler_types.h -D__KERNEL__ -fmacro-prefix-map=../= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -std=gnu11 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -fno-jump-tables -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Werror -Wimplicit-fallthrough=5 -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -fomit-frame-pointer -fno-stack-clash-protection -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wcast-function-type -Wno-stringop-truncation -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -Wno-alloc-size-larger-than -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -I ../kernel/rcu -I ./kernel/rcu -DKBUILD_MODFILE='"kernel/rcu/update"' -DKBUILD_BASENAME='"update"' -DKBUILD_MODNAME='"update"' -D__KBUILD_MODNAME=kmod_update -c -o kernel/rcu/update.o ../kernel/rcu/update.c
I've attached the output of:
$ make O=build/ CC=gcc-9 kernel/rcu/update.i
[-- Attachment #2: update.i.bz2 --]
[-- Type: application/octet-stream, Size: 285348 bytes --]
next prev parent reply other threads:[~2022-05-26 9:41 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-25 17:33 objtool warning, branch, patch, and .config Paul E. McKenney
2022-05-25 17:34 ` Paul E. McKenney
2022-05-26 8:03 ` objtool warning, branch, patch, and .config (GCC bug) Peter Zijlstra
2022-05-26 8:08 ` Peter Zijlstra
2022-05-26 9:02 ` Jakub Jelinek
2022-05-26 9:41 ` Peter Zijlstra [this message]
2022-05-26 11:32 ` Jakub Jelinek
2022-05-26 11:54 ` Peter Zijlstra
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=20220526094124.GN2578@worktop.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=jakub@redhat.com \
--cc=jpoimboe@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-toolchains@vger.kernel.org \
--cc=paulmck@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.