From: twd2 <twd2.me@gmail.com>
To: "Fāng-ruì Sòng" <maskray@google.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>,
Paul Walmsley <paul.walmsley@sifive.com>,
aou@eecs.berkeley.edu, linux-riscv@lists.infradead.org,
clang-built-linux@googlegroups.com, masahiroy@kernel.org,
keescook@chromium.org, Nick Desaulniers <ndesaulniers@google.com>
Subject: Re: [PATCH 1/3] RISC-V: build: Pass `-mattr` to `lld`
Date: Fri, 6 Aug 2021 05:05:50 +0800 [thread overview]
Message-ID: <ea692a6e-5920-e03a-6083-59fa833d6437@gmail.com> (raw)
In-Reply-To: <CAFP8O3JKw5CHiYwM3Pqj5w3vnib0UW2PEs8HRBORci9dSAXwwg@mail.gmail.com>
Hi,
I think we even don't need this option after the issue I filed is fixed.
Thanks!
Wende
On 2021/8/6 4:18, Fāng-ruì Sòng wrote:
> On Thu, Aug 5, 2021 at 1:12 PM twd2 <twd2.me@gmail.com> wrote:
>> Sure. I'll send a v2 after the LLVM issue is resolved.
>>
>> Thanks!
>> Wende
>>
>>
>> On 2021/8/5 4:59, Palmer Dabbelt wrote:
>>> On Mon, 19 Jul 2021 14:14:59 PDT (-0700), ndesaulniers@google.com wrote:
>>>> On Mon, Jul 19, 2021 at 1:53 PM Wende Tan <twd2.me@gmail.com> wrote:
>>>>> Pass `-mattr` to `lld` so that it can generate proper machine code.
>>>>> By the way, it seems that `-march` does not work well now.
>>>>>
>>>>> Signed-off-by: Wende Tan <twd2.me@gmail.com>
>>>>> ---
>>>>> arch/riscv/Makefile | 7 +++++++
>>>>> 1 file changed, 7 insertions(+)
>>>>>
>>>>> diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile
>>>>> index bc74afdbf31e..bbc186a3ab45 100644
>>>>> --- a/arch/riscv/Makefile
>>>>> +++ b/arch/riscv/Makefile
>>>>> @@ -52,9 +52,16 @@ riscv-march-$(CONFIG_ARCH_RV32I) := rv32ima
>>>>> riscv-march-$(CONFIG_ARCH_RV64I) := rv64ima
>>>>> riscv-march-$(CONFIG_FPU) := $(riscv-march-y)fd
>>>>> riscv-march-$(CONFIG_RISCV_ISA_C) := $(riscv-march-y)c
>>>>> +riscv-mattr-y := +m,+a
>>>>> +riscv-mattr-$(CONFIG_FPU) := $(riscv-mattr-y),+f,+d
>>>>> +riscv-mattr-$(CONFIG_RISCV_ISA_C) := $(riscv-mattr-y),+c
>>>>> KBUILD_CFLAGS += -march=$(subst fd,,$(riscv-march-y))
>>>>> KBUILD_AFLAGS += -march=$(riscv-march-y)
>>>>>
>>>>> +ifeq ($(CONFIG_LD_IS_LLD),y)
>>>>> + KBUILD_LDFLAGS += -mllvm -mattr=$(riscv-mattr-y)
>>>> We should prevent the proliferation of the compiler internal `-mllvm`
>>>> flags from Kbuild Makefiles; these are indicative of LLVM IR specific
>>>> issues with regards to LTO. Can you please file a bug against LLVM
>>>> that `-mattr` should be encoded in the IR for LTO's sake?
>>> Works for me. I'll hold off on taking this until the LLVM bug gets sorted out and expect a v2 (ideally with the other textual changes Nick suggested).
>>>
>>> Thanks!
> For GNU ld compatibility: -mllvm -mattr=xxx => -plugin-opt=-mattr=xxx
>
> Which can allow us to drop the CONFIG_LD_IS_LLD condition.
> (gold doesn't support RISC-V yet.)
>
> Note: LLVM LTO + GNU ld support is experimental and has very little testing.
> To actually make GNU ld work, we probably also need to teach GNU nm
> and ar to specify --plugin LLVMgold.so
> https://llvm.org/docs/GoldPlugin.html
>
>
>>>> See also:
>>>> commit 0236526d76b8 ("Makefile: lto: Pass -warn-stack-size only on LLD
>>>> < 13.0.0")
>>>> commit 2398ce80152a ("x86, lto: Pass -stack-alignment only on LLD < 13.0.0")
>>>>
>>>>> +endif
>>>>> +
>>>>> KBUILD_CFLAGS += -mno-save-restore
>>>>> KBUILD_CFLAGS += -DCONFIG_PAGE_OFFSET=$(CONFIG_PAGE_OFFSET)
>>>>>
>>>>> --
>> --
>> You received this message because you are subscribed to the Google Groups "Clang Built Linux" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@googlegroups.com.
>> To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/a6615b69-d99f-220b-d980-1f5f40ee2999%40gmail.com.
>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
prev parent reply other threads:[~2021-08-05 21:07 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-19 20:52 [PATCH 1/3] RISC-V: build: Pass `-mattr` to `lld` Wende Tan
2021-07-19 21:14 ` Nick Desaulniers
2021-07-22 8:23 ` twd2
2021-07-27 20:22 ` Nick Desaulniers
2021-08-04 20:59 ` Palmer Dabbelt
2021-08-05 20:12 ` twd2
2021-08-05 20:18 ` Fāng-ruì Sòng
2021-08-05 21:05 ` twd2 [this message]
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=ea692a6e-5920-e03a-6083-59fa833d6437@gmail.com \
--to=twd2.me@gmail.com \
--cc=aou@eecs.berkeley.edu \
--cc=clang-built-linux@googlegroups.com \
--cc=keescook@chromium.org \
--cc=linux-riscv@lists.infradead.org \
--cc=masahiroy@kernel.org \
--cc=maskray@google.com \
--cc=ndesaulniers@google.com \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.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.