# HG changeset patch # User Markus Mützel # Date 1714160740 -7200 # Node ID e15cecabced0c6943aaa9612110e390386f72101 # Parent e20a7969e7e1ac37ea73190a43abb84b6c80cd8f 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. diff -r e20a7969e7e1 -r e15cecabced0 src/llvm.mk --- 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' diff -r e20a7969e7e1 -r e15cecabced0 src/mesa.mk --- 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