[lld] [llvm] [lld][ELF] Check ARM float ABI compatibility during linking (PR #205667)

Peter Smith via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 3 06:12:18 PDT 2026


================
@@ -126,14 +137,60 @@ uint32_t ARM::calcEFlags() const {
   // with BE-8 code.
   uint32_t armBE8 = 0;
 
-  if (ctx.arg.armVFPArgs == ARMVFPArgKind::Base ||
-      ctx.arg.armVFPArgs == ARMVFPArgKind::Default)
+  if (!ctx.arg.isLE && ctx.arg.armBe8)
+    armBE8 = EF_ARM_BE8;
+
+  // Check the float ABI flags/attributes of all input object files.
+  // We use the Tag_ABI_VFP_args build attributes because relocatable object
+  // files do not have float ABI flags set in their ELF headers.
+  uint32_t target = 0; // 0: unset, 1: soft-float/softfp, 2: hard-float
----------------
smithp35 wrote:

target is a very general name. Perhaps `targetFloatABI`. Would be good to make it an enum as both it and the attribute use (different) numbers.

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


More information about the llvm-commits mailing list