changeset 7180:e15cecabced0 default tip @

LLVM: Update to 18.1.4 * src/llvm.mk: Update version and checksum. It is no longer possible to build a shared libLLVM.dll for Windows in newer versions of LLVM because the maximum number of symbols that can be exported from a DLL is exceeded. Build static libraries instead. Set a windows-gnu target because the library naming scheme that llvm-config expects for windows-msvc (the default) is different. No changes for Linux build rule. * src/mesa.mk: Use static LLVM libraries when building for Windows.
author Markus Mützel <markus.muetzel@gmx.de>
date Fri, 26 Apr 2024 21:45:40 +0200
parents e20a7969e7e1
children
files src/llvm.mk src/mesa.mk
diffstat 2 files changed, 12 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/llvm.mk	Thu Apr 25 10:35:22 2024 -0400
+++ b/src/llvm.mk	Fri Apr 26 21:45:40 2024 +0200
@@ -3,8 +3,8 @@
 
 PKG             := llvm
 $(PKG)_IGNORE   :=
-$(PKG)_VERSION  := 15.0.7
-$(PKG)_CHECKSUM := 497ca3b2010cc0e3e38bc9dc6dda19041dbd7066
+$(PKG)_VERSION  := 18.1.4
+$(PKG)_CHECKSUM := 62159475b784f4ad829f925ac66c3cb2cffa8730
 $(PKG)_SUBDIR   := llvm-$($(PKG)_VERSION).src
 $(PKG)_FILE     := llvm-$($(PKG)_VERSION).src.tar.xz
 $(PKG)_URL      := https://github.com/llvm/llvm-project/releases/download/llvmorg-$($(PKG)_VERSION)/$($(PKG)_FILE)
@@ -60,10 +60,12 @@
 else
   ifeq ($(ENABLE_WINDOWS_64),yes)
     $(PKG)_SYSDEP_CMAKE_OPTIONS += \
-      -DLLVM_DEFAULT_TARGET_TRIPLE='x86_64-pc-win32'
+      -DLLVM_DEFAULT_TARGET_TRIPLE='x86_64-w64-windows-gnu' \
+      -DLLVM_HOST_TRIPLE='x86_64-w64-windows-gnu'
   else
     $(PKG)_SYSDEP_CMAKE_OPTIONS += \
-      -DLLVM_DEFAULT_TARGET_TRIPLE='x86-pc-win32'
+      -DLLVM_DEFAULT_TARGET_TRIPLE='i686-w64-windows-gnu' \
+      -DLLVM_HOST_TRIPLE='i686-w64-windows-gnu'
   endif
   ifeq ($(USE_CCACHE),yes)
     $(PKG)_CCACHE_OPTIONS += \
@@ -91,8 +93,8 @@
       $(CMAKE_CCACHE_FLAGS) \
       -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
       -DLLVM_BUILD_TOOLS=OFF \
-      -DLLVM_BUILD_LLVM_DYLIB=ON \
-      -DLLVM_LINK_LLVM_DYLIB=ON \
+      -DLLVM_BUILD_LLVM_DYLIB=OFF \
+      -DLLVM_LINK_LLVM_DYLIB=OFF \
       -DLLVM_VERSION_SUFFIX= \
       -DLLVM_TARGETS_TO_BUILD='X86' \
       $($(PKG)_SYSDEP_CMAKE_OPTIONS) \
@@ -119,9 +121,6 @@
     cd '$(1)/.build' && DESTDIR=$(3) ninja -j $(JOBS) llvm-config
     cd '$(1)/.build' && DESTDIR=$(3) ninja -j $(JOBS) install
 
-    # create symlink for shared library so that llvm-config can find it
-    cd '$(3)/$(HOST_BINDIR)' && ln -s libLLVM-$(word 1,$(subst ., ,$($(PKG)_VERSION))).dll LLVM-$(word 1,$(subst ., ,$($(PKG)_VERSION))).dll
-
     # install native llvm-config in HOST_BINDIR because it won't find the libs otherwise
     $(INSTALL) -d '$(HOST_BINDIR)'
     $(INSTALL) -m755 '$(1)/.build/NATIVE/bin/llvm-config' '$(HOST_BINDIR)/$(MXE_TOOL_PREFIX)llvm-config'
--- a/src/mesa.mk	Thu Apr 25 10:35:22 2024 -0400
+++ b/src/mesa.mk	Fri Apr 26 21:45:40 2024 +0200
@@ -24,6 +24,7 @@
 
 ifeq ($(MXE_WINDOWS_BUILD),yes)
   $(PKG)_MESON_TOOLCHAIN_FILE := --cross-file '$(MESON_TOOLCHAIN_FILE)'
+  $(PKG)_LLVM_FLAGS := -Dshared-llvm=disabled
 else
   ifeq ($(USE_SYSTEM_X11_LIBS),no)
     $(PKG)_DEPS += dri2proto glproto libdrm libxshmfence x11 xdamage xext xfixes xrandr
@@ -39,6 +40,8 @@
   $(PKG)_X11_FLAGS := -Dplatforms='x11' \
       -Dglx=xlib \
       $($(PKG)_BUILD_X11_LIBS_FLAGS)
+
+  $(PKG)_LLVM_FLAGS := -Dshared-llvm=enabled
 endif
 
 define $(PKG)_BUILD
@@ -51,7 +54,7 @@
       -Dvulkan-drivers='' \
       -Degl=disabled \
       -Dgbm=disabled \
-      -Dshared-llvm=enabled
+      $($(PKG)_LLVM_FLAGS)
 
   cd '$(1)/.build' && DESTDIR=$(3) ninja -j $(JOBS) install