[compiler-rt] [builtins][AArch32] Fix __gnu_* functions (PR #137638)

Simon Tatham via llvm-commits llvm-commits at lists.llvm.org
Fri May 16 03:47:47 PDT 2025


================
@@ -16,12 +16,13 @@ COMPILER_RT_ABI NOINLINE float __extendhfsf2(src_t a) {
   return __extendXfYf2__(a);
 }
 
-COMPILER_RT_ABI float __gnu_h2f_ieee(src_t a) { return __extendhfsf2(a); }
-
 #if defined(__ARM_EABI__)
 #if defined(COMPILER_RT_ARMHF_TARGET)
+AEABI_RTABI float __gnu_h2f_ieee(src_t a) { return __extendhfsf2(a); }
 AEABI_RTABI float __aeabi_h2f(src_t a) { return __extendhfsf2(a); }
 #else
+COMPILER_RT_ALIAS(__extendhfsf2, __gnu_h2f_ieee)
 COMPILER_RT_ALIAS(__extendhfsf2, __aeabi_h2f)
 #endif
+COMPILER_RT_ABI float __gnu_h2f_ieee(src_t a) { return __extendhfsf2(a); }
----------------
statham-arm wrote:

This definition is included _as well_ as one of the above two, because whichever way the inner `#if` goes, this line just after it will still be compiled in. So you'll get a duplicate symbol definition error, because `__gnu_h2f_ieee` is defined twice in the same source file.

https://github.com/llvm/llvm-project/pull/137638


More information about the llvm-commits mailing list