This adds the same ${OPENBSD_LD_IS_LLD} SUBST_VARS magic to LLVM 20 and 21
as is present in LLVM 19.

With this sparc64 is able to build LLVM 20 which is needed to get rust
going. I did not test build LLVM 21 yet but the patch is the same.
-- 
:wq Claudio

Index: 20/patches/patch-clang_tools_clang-shlib_CMakeLists_txt
===================================================================
RCS file: 
/cvs/ports/devel/llvm/20/patches/patch-clang_tools_clang-shlib_CMakeLists_txt,v
diff -u -p -r1.1.1.1 patch-clang_tools_clang-shlib_CMakeLists_txt
--- 20/patches/patch-clang_tools_clang-shlib_CMakeLists_txt     20 May 2025 
03:29:44 -0000      1.1.1.1
+++ 20/patches/patch-clang_tools_clang-shlib_CMakeLists_txt     18 Dec 2025 
09:43:37 -0000
@@ -8,7 +8,7 @@ Index: clang/tools/clang-shlib/CMakeList
  # Optimize function calls for default visibility definitions to avoid PLT and
  # reduce dynamic relocations.
 -if (NOT APPLE AND NOT MINGW AND NOT LLVM_LINKER_IS_SOLARISLD_ILLUMOS)
-+if (NOT APPLE AND NOT MINGW AND NOT LLVM_LINKER_IS_SOLARISLD_ILLUMOS AND TRUE)
++if (NOT APPLE AND NOT MINGW AND NOT LLVM_LINKER_IS_SOLARISLD_ILLUMOS AND 
${OPENBSD_LD_IS_LLD})
    target_link_options(clang-cpp PRIVATE LINKER:-Bsymbolic-functions)
  endif()
  if (MINGW OR CYGWIN)
Index: 20/patches/patch-llvm_tools_llvm-shlib_CMakeLists_txt
===================================================================
RCS file: 
/cvs/ports/devel/llvm/20/patches/patch-llvm_tools_llvm-shlib_CMakeLists_txt,v
diff -u -p -r1.1.1.1 patch-llvm_tools_llvm-shlib_CMakeLists_txt
--- 20/patches/patch-llvm_tools_llvm-shlib_CMakeLists_txt       20 May 2025 
03:29:44 -0000      1.1.1.1
+++ 20/patches/patch-llvm_tools_llvm-shlib_CMakeLists_txt       18 Dec 2025 
09:43:17 -0000
@@ -14,7 +14,7 @@ Index: llvm/tools/llvm-shlib/CMakeLists.
          set(LIB_NAMES 
-Wl,--version-script,${LLVM_LIBRARY_DIR}/tools/llvm-shlib/simple_version_script.map
 ${LIB_NAMES})
        endif()
 -      if (NOT MINGW AND NOT LLVM_LINKER_IS_SOLARISLD_ILLUMOS)
-+      if (NOT MINGW AND NOT LLVM_LINKER_IS_SOLARISLD_ILLUMOS AND TRUE)
++      if (NOT MINGW AND NOT LLVM_LINKER_IS_SOLARISLD_ILLUMOS AND 
${OPENBSD_LD_IS_LLD})
          # Optimize function calls for default visibility definitions to avoid 
PLT and
          # reduce dynamic relocations.
          # Note: for -fno-pic default, the address of a function may be 
different from
Index: 21/patches/patch-clang_tools_clang-shlib_CMakeLists_txt
===================================================================
RCS file: 
/cvs/ports/devel/llvm/21/patches/patch-clang_tools_clang-shlib_CMakeLists_txt,v
diff -u -p -r1.2 patch-clang_tools_clang-shlib_CMakeLists_txt
--- 21/patches/patch-clang_tools_clang-shlib_CMakeLists_txt     10 Nov 2025 
15:12:47 -0000      1.2
+++ 21/patches/patch-clang_tools_clang-shlib_CMakeLists_txt     18 Dec 2025 
10:22:07 -0000
@@ -6,7 +6,7 @@ Index: clang/tools/clang-shlib/CMakeList
  # Optimize function calls for default visibility definitions to avoid PLT and
  # reduce dynamic relocations.
 -if (NOT APPLE AND LLVM_LINKER_SUPPORTS_B_SYMBOLIC_FUNCTIONS)
-+if (NOT APPLE AND LLVM_LINKER_SUPPORTS_B_SYMBOLIC_FUNCTIONS AND TRUE)
++if (NOT APPLE AND LLVM_LINKER_SUPPORTS_B_SYMBOLIC_FUNCTIONS AND 
${OPENBSD_LD_IS_LLD})
    target_link_options(clang-cpp PRIVATE LINKER:-Bsymbolic-functions)
  endif()
  if (MINGW OR CYGWIN)
Index: 21/patches/patch-llvm_tools_llvm-shlib_CMakeLists_txt
===================================================================
RCS file: 
/cvs/ports/devel/llvm/21/patches/patch-llvm_tools_llvm-shlib_CMakeLists_txt,v
diff -u -p -r1.1.1.1 patch-llvm_tools_llvm-shlib_CMakeLists_txt
--- 21/patches/patch-llvm_tools_llvm-shlib_CMakeLists_txt       4 Sep 2025 
12:32:33 -0000       1.1.1.1
+++ 21/patches/patch-llvm_tools_llvm-shlib_CMakeLists_txt       18 Dec 2025 
10:21:52 -0000
@@ -14,7 +14,7 @@ Index: llvm/tools/llvm-shlib/CMakeLists.
          set(LIB_NAMES 
-Wl,--version-script,${LLVM_LIBRARY_DIR}/tools/llvm-shlib/simple_version_script.map
 ${LIB_NAMES})
        endif()
 -      if (LLVM_LINKER_SUPPORTS_B_SYMBOLIC_FUNCTIONS)
-+      if (LLVM_LINKER_SUPPORTS_B_SYMBOLIC_FUNCTIONS AND TRUE)
++      if (LLVM_LINKER_SUPPORTS_B_SYMBOLIC_FUNCTIONS AND ${OPENBSD_LD_IS_LLD})
          # Optimize function calls for default visibility definitions to avoid 
PLT and
          # reduce dynamic relocations.
          # Note: for -fno-pic default, the address of a function may be 
different from

Reply via email to