From: Nathan Chancellor <natechancellor@gmail.com>
To: "H. Peter Anvin" <hpa@zytor.com>
Cc: Nick Desaulniers <ndesaulniers@google.com>,
namit@vmware.com, Thomas Gleixner <tglx@linutronix.de>,
mingo@redhat.com, bp@alien8.de, x86@kernel.org,
LKML <linux-kernel@vger.kernel.org>,
Kees Cook <keescook@chromium.org>,
Masahiro Yamada <yamada.masahiro@socionext.com>
Subject: Re: [PATCH RFC] x86: Don't include '-Wa,-' when building with Clang
Date: Tue, 23 Oct 2018 14:58:11 -0700 [thread overview]
Message-ID: <20181023215811.GA10771@flashbox> (raw)
In-Reply-To: <96ffedd2-a19d-95de-45fd-3a83025dd48a@zytor.com>
On Tue, Oct 23, 2018 at 01:01:22PM -0700, H. Peter Anvin wrote:
> On 10/23/18 11:40, Nick Desaulniers wrote:
> > On Mon, Oct 22, 2018 at 10:11 PM Nadav Amit <namit@vmware.com> wrote:
> >>
> >> at 5:37 PM, Nathan Chancellor <natechancellor@gmail.com> wrote:
> >>
> >> Commit 77b0bf55bc67 ("kbuild/Makefile: Prepare for using macros in
> >> inline assembly code to work around asm() related GCC inlining bugs")
> >> added this flag to KBUILD_CFLAGS, where it works perfectly fine with
> >> GCC. However, when building with Clang, all of the object files compile
> >> fine but the build hangs indefinitely at init/main.o, right before the
> >> linking stage. Don't include this flag when building with Clang.
> >>
> >> The kernel builds and boots to a shell in QEMU with both GCC and Clang
> >> with this patch applied.
> >>
> >> Link: https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FClangBuiltLinux%2Flinux%2Fissues%2F213&data=02%7C01%7Cnamit%40vmware.com%7C871daebc2ca44947d28d08d638811fb5%7Cb39138ca3cee4b4aa4d6cd83d9dd62f0%7C1%7C0%7C636758524579997650&sdata=shuxW81QRrO3TSqbgf462wgZYdLeAKeQEdGRxmnUX30%3D&reserved=0
> >> Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
> >> ---
> >>
> >> The reason this patch is labeled RFC is while I can verify that this
> >> fixes the issue, I'm not entirely sure why the '-Wa,-' works for GCC
> >> and not Clang. I looked into what the flag means and I couldn't really
> >> find anything so I just assume it's taking input from stdin? The issue
> >> could stem from how GCC forks gas versus how Clang does it. If this
> >> isn't of concern and the maintainers are happy with this patch as is,
> >> feel free to take it.
> >>
>
> Perhaps someone could actually, you know, time the build and see how
> much -pipe actually matters, if at all?
>
> -hpa
>
Thank you for the suggestion! With the attached diff for removing
'-pipe' and 'make -j1' with defconfig (just to make sure any variance
would stand out), here are my results:
-pipe (GCC):
real 15m55.202s
user 14m17.748s
sys 1m47.496s
No -pipe (GCC):
real 16m4.430s
user 14m16.277s
sys 1m46.604s
-pipe (Clang):
real 21m26.016s
user 19m21.722s
sys 2m2.606s
No -pipe (Clang):
real 21m27.822s
user 19m22.092s
sys 2m4.151s
Certainly seems like -pipe doesn't make a ton of difference. If this is
a better fix, I am happy to draft up a proper commit message and send
it out for review.
==================================================
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 73f4831283ac..672c689c1faa 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -213,8 +213,6 @@ ifdef CONFIG_X86_64
KBUILD_LDFLAGS += $(call ld-option, -z max-page-size=0x200000)
endif
-# Speed up the build
-KBUILD_CFLAGS += -pipe
# Workaround for a gcc prelease that unfortunately was shipped in a suse release
KBUILD_CFLAGS += -Wno-sign-compare
#
@@ -239,7 +237,7 @@ archheaders:
archmacros:
$(Q)$(MAKE) $(build)=arch/x86/kernel arch/x86/kernel/macros.s
-ASM_MACRO_FLAGS = -Wa,arch/x86/kernel/macros.s -Wa,-
+ASM_MACRO_FLAGS = -Wa,arch/x86/kernel/macros.s
export ASM_MACRO_FLAGS
KBUILD_CFLAGS += $(ASM_MACRO_FLAGS)
next prev parent reply other threads:[~2018-10-23 21:58 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-23 0:37 [PATCH RFC] x86: Don't include '-Wa,-' when building with Clang Nathan Chancellor
[not found] ` <F3BBC06A-A9CB-4ABF-ADF4-6B0971FAE364@vmware.com>
2018-10-23 18:40 ` Nick Desaulniers
2018-10-23 20:01 ` H. Peter Anvin
2018-10-23 21:58 ` Nathan Chancellor [this message]
2018-10-23 22:04 ` hpa
2018-10-23 22:08 ` Nick Desaulniers
2018-10-23 22:44 ` Nathan Chancellor
2018-10-23 22:53 ` Nick Desaulniers
2018-10-23 23:01 ` hpa
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=20181023215811.GA10771@flashbox \
--to=natechancellor@gmail.com \
--cc=bp@alien8.de \
--cc=hpa@zytor.com \
--cc=keescook@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=namit@vmware.com \
--cc=ndesaulniers@google.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
--cc=yamada.masahiro@socionext.com \
/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.