From: Koakuma via B4 Relay <devnull+koachan.protonmail.com@kernel.org>
To: "David S. Miller" <davem@davemloft.net>,
Andreas Larsson <andreas@gaisler.com>,
Nathan Chancellor <nathan@kernel.org>,
Nick Desaulniers <ndesaulniers@google.com>,
Bill Wendling <morbo@google.com>,
Justin Stitt <justinstitt@google.com>,
glaubitz@physik.fu-berlin.de,
Masahiro Yamada <masahiroy@kernel.org>,
Nicolas Schier <nicolas@fjasle.eu>,
Jonathan Corbet <corbet@lwn.net>
Cc: sparclinux@vger.kernel.org, linux-kernel@vger.kernel.org,
llvm@lists.linux.dev, linux-kbuild@vger.kernel.org,
linux-doc@vger.kernel.org, Koakuma <koachan@protonmail.com>
Subject: [PATCH v3 0/2] sparc/build: Rework CFLAGS for clang compatibility
Date: Tue, 29 Oct 2024 21:49:06 +0700 [thread overview]
Message-ID: <20241029-sparc-cflags-v3-0-b28745a6bd71@protonmail.com> (raw)
Hello~
This changes the CFLAGS for building the SPARC kernel so that it can be
built with clang, as a follow up from the discussion in this thread:
https://lore.kernel.org/lkml/JAYB7uS-EdLABTR4iWZdtFOVa5MvlKosIrD_cKTzgeozCOGRM7lhxeLigFB1g3exX445I_W5VKB-tAzl2_G1zCVJRQjp67ODfsSqiZWOZ9o=@protonmail.com/T/#u
The changes are removal of various `-fcall-used-*` flags, and adding
clang target flags for SPARC:
- `-fcall-used-*` flags is gated behind cc-option as it is
not supported in clang. It should be safe; clang won't use the registers
specified as temporaries, but it is a safe change wrt. the ABI.
Assembly code can still use those registers as needed.
A cursory look at the assembly generated by GCC 13.2 shows that
the compiler was able to reallocate uses of those registers into
other temporary registers without adding extra spills, so there
should be no change in performance.
- More trivial is to add CLANG_TARGET_FLAGS for SPARC target.
Building with these changes still result in a working kernel,
at least for Sun T5120, Oracle T4-1, and qemu virtual machines.
On the LLVM side, the effort for building Linux/SPARC is tracked here:
https://github.com/llvm/llvm-project/issues/40792
Signed-off-by: Koakuma <koachan@protonmail.com>
---
Changes in v3:
- Use cc-option to allow GCC to still use -fcall-used-* flags.
- Add documentation on building on SPARC, along with required LLVM version.
- Link to v2: https://lore.kernel.org/r/20240717-sparc-cflags-v2-0-259407e6eb5f@protonmail.com
Changes in v2:
- Remove the -mv8plus change; it will be handled on clang side:
https://github.com/llvm/llvm-project/pull/98713
- Add CLANG_TARGET_FLAGS as suggested in v1 review.
- Link to v1: https://lore.kernel.org/r/20240620-sparc-cflags-v1-1-bba7d0ff7d42@protonmail.com
---
Koakuma (2):
sparc/build: Put usage of -fcall-used* flags behind cc-option
sparc/build: Add SPARC target flags for compiling with clang
Documentation/kbuild/llvm.rst | 3 +++
arch/sparc/Makefile | 4 ++--
arch/sparc/vdso/Makefile | 2 +-
scripts/Makefile.clang | 1 +
4 files changed, 7 insertions(+), 3 deletions(-)
---
base-commit: c2ee9f594da826bea183ed14f2cc029c719bf4da
change-id: 20240620-sparc-cflags-e7f2dbbd4b9d
Best regards,
--
Koakuma <koachan@protonmail.com>
next reply other threads:[~2024-10-29 14:49 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-29 14:49 Koakuma via B4 Relay [this message]
2024-10-29 14:49 ` [PATCH v3 1/2] sparc/build: Put usage of -fcall-used* flags behind cc-option Koakuma via B4 Relay
2024-10-29 22:24 ` Nathan Chancellor
2024-11-07 4:59 ` Koakuma
2024-11-07 16:01 ` Nathan Chancellor
2024-10-29 14:49 ` [PATCH v3 2/2] sparc/build: Add SPARC target flags for compiling with clang Koakuma via B4 Relay
2024-10-29 22:24 ` Nathan Chancellor
2024-11-02 8:06 ` Masahiro Yamada
2024-11-16 8:31 ` [PATCH v3 0/2] sparc/build: Rework CFLAGS for clang compatibility Andreas Larsson
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=20241029-sparc-cflags-v3-0-b28745a6bd71@protonmail.com \
--to=devnull+koachan.protonmail.com@kernel.org \
--cc=andreas@gaisler.com \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=glaubitz@physik.fu-berlin.de \
--cc=justinstitt@google.com \
--cc=koachan@protonmail.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=masahiroy@kernel.org \
--cc=morbo@google.com \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=nicolas@fjasle.eu \
--cc=sparclinux@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