On Thu, Dec 18, 2025 at 01:58:25PM +0100, Claudio Jeker wrote:
> 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.
ok tb
> --
> :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
>