[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <78a18ddd-4704-49ce-86b2-05693ac9b032@linux.alibaba.com>
Date: Mon, 14 Oct 2024 14:50:21 +0800
From: "tianjia.zhang" <tianjia.zhang@...ux.alibaba.com>
To: Nick Desaulniers <ndesaulniers@...gle.com>
Cc: Marc Zyngier <maz@...nel.org>, Oliver Upton <oliver.upton@...ux.dev>,
Joey Gouly <joey.gouly@....com>, Suzuki K Poulose <suzuki.poulose@....com>,
Zenghui Yu <yuzenghui@...wei.com>, Catalin Marinas
<catalin.marinas@....com>, Will Deacon <will@...nel.org>,
Nathan Chancellor <nathan@...nel.org>, Bill Wendling <morbo@...gle.com>,
Justin Stitt <justinstitt@...gle.com>, Pierre-Clément Tosi
<ptosi@...gle.com>, linux-arm-kernel@...ts.infradead.org,
kvmarm@...ts.linux.dev, linux-kernel@...r.kernel.org, llvm@...ts.linux.dev
Subject: Re: [PATCH] KVM: arm64: nVHE: gen-hyprel: Silent build warnings
Hi Nick,
On 10/10/24 11:23 PM, Nick Desaulniers wrote:
> On Thu, Oct 10, 2024 at 1:13 AM tianjia.zhang
> <tianjia.zhang@...ux.alibaba.com> wrote:
>>
>>
>>
>> On 10/9/24 7:07 PM, Marc Zyngier wrote:
>>> On Wed, 09 Oct 2024 09:57:51 +0100,
>>> Tianjia Zhang <tianjia.zhang@...ux.alibaba.com> wrote:
>>>>
>>>> This patch silent the some mismatch format build warnings
>>>> with clang, like:
>>>>
>>>> arch/arm64/kvm/hyp/nvhe/gen-hyprel.c:233:2: warning: format specifies
>>>> type 'unsigned long' but the argument has type 'Elf64_Off'
>>>> (aka 'unsigned long long') [-Wformat]
>>>> 233 | assert_ne(off, 0UL, "%lu");
>>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
>>>> | %llu
>>>> arch/arm64/kvm/hyp/nvhe/gen-hyprel.c:193:34: note: expanded from macro 'assert_ne'
>>>> 193 | #define assert_ne(lhs, rhs, fmt) assert_op(lhs, rhs, fmt, !=)
>>>> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>> arch/arm64/kvm/hyp/nvhe/gen-hyprel.c:188:19: note: expanded from macro 'assert_op'
>>>> 187 | " failed (lhs=" fmt ", rhs=" fmt \
>>>> | ~~~
>>>> 188 | ", line=%d)", _lhs, _rhs, __LINE__); \
>>>> | ^~~~
>>>> arch/arm64/kvm/hyp/nvhe/gen-hyprel.c:167:17: note: expanded from macro 'fatal_error'
>>>> 166 | fprintf(stderr, "error: %s: " fmt "\n", \
>>>> | ~~~
>>>> 167 | elf.path, ## __VA_ARGS__); \
>>>> | ^~~~~~~~~~~
>>>>
>>>> Signed-off-by: Tianjia Zhang <tianjia.zhang@...ux.alibaba.com>
>>>
>>> I don't see these warnings. What version of LLVM are you using?
>>>
>>
>> I compiled the kernel on Apple Silicon M3 Pro in macOS 15.0.1, Maybe this is
>> a special scenario that is rarely used.
>
> Right, so I had an initial patch set for building the kernel from a
> MacOS host. I sent a v1, but didn't chase sending a v2 at the time
> because there didn't appear to be any interest.
>
> https://www.phoronix.com/news/Linux-Compile-On-macOS
>
> Since then, I saw a v2 or even a v3 fly by (I was cc'ed).
>
> One issue I recall building from MacOS was that MacOS does not have an
> <elf.h> (their object file format is not ELF, but Mach-O). I had to
> install some dependency through homebrew for that header.
>
> Just a guess but:
> Perhaps it defines Elf64_Off as a `unsigned long` incorrectly, and
> should be defining it as an `unsigned long long`. I'd check if that's
> the case and if so, Tianjia, you may want to report that issue on the
> thread where folks are reposting the MacOS host support.
>
Thanks for the information, great work, very useful attempt.
I have successfully compiled the latest 6.11 rc2 on macOS 15.0.1 Apple
Silicon M3 chip. It seems that compiling on this version of the kernel
is easier. I just added three header files, elf.h, byteswap.h and
endian.h, and add the missing definitions. In addition, I fixed
scriptsj/mod/file2alias.c as you did, and it compiled successfully
without encountering other exceptions. The dependent toolchains are
all installed through brew, include make, llvm and lld.
Cheers,
Tianjia
Powered by blists - more mailing lists