From: Marc Zyngier <marc.zyngier@arm.com>
To: Andrey Konovalov <andreyknvl@google.com>
Cc: Dmitry Vyukov <dvyukov@google.com>,
Kostya Serebryany <kcc@google.com>,
ard.biesheuvel@linaro.org,
Catalin Marinas <catalin.marinas@arm.com>,
linux-arm-kernel@lists.infradead.org,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: Clang build of arm64 kernel fails
Date: Thu, 1 Mar 2018 10:47:37 +0000 [thread overview]
Message-ID: <be30b204-5752-9667-b599-b394cbfbc663@arm.com> (raw)
In-Reply-To: <CAAeHK+wRcZ1o53CEpeOQ-J5AayVAd8nm-ASj8HsTy1vOzHQAqQ@mail.gmail.com>
Hi Andrey,
On 28/02/18 19:32, Andrey Konovalov wrote:
> Hi Marc!
>
> I've tried to pull in new upstream commits and the kernel build
> started failing for me with the following errors (see below).
>
> It seems that the reason is your commit "arm64: Add
> ARM_SMCCC_ARCH_WORKAROUND_1 BP hardening support". It seems that Clang
> doesn't like 32 bits registers being used in 64 bits build.
These are not AArch32 registers. They are AArch64 registers that the
compiler specialises to an x (64bit wide) or w (32bit wide) register
depending on the type that is used to define the corresponding variable.
The fact that they are named just as AArch32 is an added compatibility
bonus.
For example:
void foo(void)
{
register unsigned long reg0 asm("r0") = 0;
register unsigned int reg1 asm("r1") = 1;
asm volatile("hvc #0" : : "r" (reg0), "r" (reg1));
}
results in:
Disassembly of section .text:
0000000000000000 <foo>:
0: d2800000 mov x0, #0x0 // #0
4: 52800021 mov w1, #0x1 // #1
8: d4000002 hvc #0x0
c: d65f03c0 ret
> Would you mind sending a fix?
I can look into it. Is there an equivalent Clang construct that wouldn't
result in a sea of #ifdefs?
Thanks,
M.
--
Jazz is not dead. It just smells funny...
next prev parent reply other threads:[~2018-03-01 10:47 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-28 19:32 Andrey Konovalov
2018-03-01 9:45 ` Robin Murphy
2018-03-01 10:31 ` Dave Martin
2018-03-22 18:55 ` Matthias Kaehlcke
2018-03-01 10:47 ` Marc Zyngier [this message]
2018-03-01 12:31 ` Andrey Konovalov
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=be30b204-5752-9667-b599-b394cbfbc663@arm.com \
--to=marc.zyngier@arm.com \
--cc=andreyknvl@google.com \
--cc=ard.biesheuvel@linaro.org \
--cc=catalin.marinas@arm.com \
--cc=dvyukov@google.com \
--cc=kcc@google.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®