[clang] [compiler-rt] [llvm] [SPARC] Properly handle CC for long double on sparc32 (PR #162226)
Rainer Orth via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 26 04:44:18 PST 2025
================
@@ -1009,9 +1009,9 @@ else ()
list(APPEND BUILTIN_CFLAGS_${arch} -fomit-frame-pointer -DCOMPILER_RT_ARMHF_TARGET)
endif()
- # For RISCV32, we must force enable int128 for compiling long
+ # For RISCV32 and 32-bit SPARC, we must force enable int128 for compiling long
# double routines.
- if(COMPILER_RT_ENABLE_SOFTWARE_INT128 OR "${arch}" STREQUAL "riscv32")
+ if(COMPILER_RT_ENABLE_SOFTWARE_INT128 OR "${arch}" STREQUAL "riscv32" OR ("${arch}" STREQUAL "sparc" AND NOT CMAKE_COMPILER_IS_GNUCC))
----------------
rorth wrote:
> > When compiled with gcc, how is the library supposed to link if int128 routines are not compiled in?
>
> I suppose in that case the library will lack `long double` routines? @rorth probably know better about this.
I've no idea right now (have tried to forget all of this ;-). Besides, I'm so busy with the upcoming GCC 16 release that I've no time left for LLVM.
What I've done in the past is do build with both `clang` and `gcc` as build compiler, 2-stage builds with `clang`, 1-stage ones with `gcc`. And note that the `compiler-rt` tests still aren't run in runtime builds (which is the default these days), not even a target to do so manually, so I've always used
```
-DLLVM_ENABLE_PROJECTS=compiler-rt
```
to avoid that.
https://github.com/llvm/llvm-project/pull/162226
More information about the llvm-commits
mailing list