sparclinux.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] sparc/build: Rework CFLAGS for clang compatibility
@ 2024-07-17 16:10 Koakuma via B4 Relay
  2024-07-17 16:10 ` [PATCH v2 1/2] sparc/build: Remove all usage of -fcall-used* flags Koakuma via B4 Relay
                   ` (2 more replies)
  0 siblings, 3 replies; 20+ messages in thread
From: Koakuma via B4 Relay @ 2024-07-17 16:10 UTC (permalink / raw)
  To: David S. Miller, Andreas Larsson, Nathan Chancellor,
	Nick Desaulniers, Bill Wendling, Justin Stitt, glaubitz,
	Masahiro Yamada, Nicolas Schier
  Cc: sparclinux, linux-kernel, llvm, linux-kbuild, Koakuma

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 removed as it is not supported in clang.
  Those should be safe to remove; the compiler will stop using 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 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: Remove all usage of -fcall-used* flags
      sparc/build: Add SPARC target flags for compiling with clang

 arch/sparc/Makefile      | 4 ++--
 arch/sparc/vdso/Makefile | 2 +-
 scripts/Makefile.clang   | 1 +
 3 files changed, 4 insertions(+), 3 deletions(-)
---
base-commit: 4d145e3f830ba2c2745b42bfba5c2f8fcb8d078a
change-id: 20240620-sparc-cflags-e7f2dbbd4b9d

Best regards,
-- 
Koakuma <koachan@protonmail.com>



^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2024-10-27 18:34 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-17 16:10 [PATCH v2 0/2] sparc/build: Rework CFLAGS for clang compatibility Koakuma via B4 Relay
2024-07-17 16:10 ` [PATCH v2 1/2] sparc/build: Remove all usage of -fcall-used* flags Koakuma via B4 Relay
2024-08-02 23:04   ` Nathan Chancellor
2024-10-24 16:29   ` Andreas Larsson
2024-10-26 14:50     ` Koakuma
2024-07-17 16:10 ` [PATCH v2 2/2] sparc/build: Add SPARC target flags for compiling with clang Koakuma via B4 Relay
2024-08-02 22:42   ` Nathan Chancellor
2024-08-03  5:58   ` Masahiro Yamada
2024-10-21 20:16 ` [PATCH v2 0/2] sparc/build: Rework CFLAGS for clang compatibility Nathan Chancellor
2024-10-22 19:10   ` Masahiro Yamada
2024-10-22 20:07     ` Nathan Chancellor
2024-10-23  0:43       ` Koakuma
2024-10-23  3:38         ` Masahiro Yamada
2024-10-23 16:45           ` Nathan Chancellor
2024-10-26 14:52             ` Koakuma
2024-10-27 11:00               ` Masahiro Yamada
2024-10-27 18:34               ` Nathan Chancellor
2024-10-23  3:29       ` Masahiro Yamada
2024-10-23 16:35         ` Nathan Chancellor
2024-10-22 19:13   ` Masahiro Yamada

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).