comparison src/llvm.mk @ 5597:f367e764ca55

LLVM: Enable exception handling (bug #59599). * src/llvm.mk: Update download URL. Add build dependency. Enable exception handling. Minor clean-up. * src/llvm-1-llvm-config.patch: Fixes for cross-compiling. * src/mingw-llvm-1-config.patch: Remove patch. * dist-files.mk: Update list of files.
author Markus Mützel <markus.muetzel@gmx.de>
date Sat, 05 Dec 2020 20:56:44 +0100
parents b0d42d306e96
children 9722214b6722
comparison
equal deleted inserted replaced
5596:f62e01947a77 5597:f367e764ca55
5 $(PKG)_IGNORE := 5 $(PKG)_IGNORE :=
6 $(PKG)_VERSION := 7.1.0 6 $(PKG)_VERSION := 7.1.0
7 $(PKG)_CHECKSUM := d43bfea58a35e058b93a6af36a728cfc64add33d 7 $(PKG)_CHECKSUM := d43bfea58a35e058b93a6af36a728cfc64add33d
8 $(PKG)_SUBDIR := llvm-$($(PKG)_VERSION).src 8 $(PKG)_SUBDIR := llvm-$($(PKG)_VERSION).src
9 $(PKG)_FILE := llvm-$($(PKG)_VERSION).src.tar.xz 9 $(PKG)_FILE := llvm-$($(PKG)_VERSION).src.tar.xz
10 $(PKG)_URL := https://releases.llvm.org/$($(PKG)_VERSION)/$($(PKG)_FILE) 10 $(PKG)_URL := https://github.com/llvm/llvm-project/releases/download/llvmorg-$($(PKG)_VERSION)/$($(PKG)_FILE)
11 $(PKG)_DEPS := 11 $(PKG)_DEPS := build-python
12 12
13 define $(PKG)_UPDATE 13 define $(PKG)_UPDATE
14 wget -q -O- 'http://releases.llvm.org/download.html?' | \ 14 wget -q -O- 'http://releases.llvm.org/download.html?' | \
15 grep 'Download LLVM' | \ 15 grep 'Download LLVM' | \
16 $(SED) -n 's,.*LLVM \([0-9][^<]*\).*,\1,p' | \ 16 $(SED) -n 's,.*LLVM \([0-9][^<]*\).*,\1,p' | \
22 define $(PKG)_BUILD 22 define $(PKG)_BUILD
23 mkdir '$(1)/.build' && cd '$(1)/.build' && cmake .. \ 23 mkdir '$(1)/.build' && cd '$(1)/.build' && cmake .. \
24 $($(PKG)_CMAKE_FLAGS) \ 24 $($(PKG)_CMAKE_FLAGS) \
25 $(CMAKE_CCACHE_FLAGS) \ 25 $(CMAKE_CCACHE_FLAGS) \
26 -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \ 26 -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
27 -DLLVM_BUILD_LLVM_DYLIB=On \ 27 -DLLVM_BUILD_LLVM_DYLIB=ON \
28 -DLLVM_LINK_LLVM_DYLIB=On \ 28 -DLLVM_LINK_LLVM_DYLIB=ON \
29 -DLLVM_VERSION_SUFFIX= \ 29 -DLLVM_VERSION_SUFFIX= \
30 -DLLVM_TARGETS_TO_BUILD='X86' \ 30 -DLLVM_TARGETS_TO_BUILD='X86' \
31 -DLLVM_BUILD_EXAMPLES=Off \ 31 -DLLVM_ENABLE_EH=ON \
32 -DLLVM_INCLUDE_EXAMPLES=Off \ 32 -DLLVM_ENABLE_RTTI=ON \
33 -DLLVM_BUILD_TESTS=Off \ 33 -DLLVM_BUILD_EXAMPLES=OFF \
34 -DLLVM_INCLUDE_TESTS=Off \ 34 -DLLVM_INCLUDE_EXAMPLES=OFF \
35 -DLLVM_BUILD_TESTS=OFF \
36 -DLLVM_INCLUDE_TESTS=OFF \
35 -DLLVM_INCLUDE_GO_TESTS=OFF \ 37 -DLLVM_INCLUDE_GO_TESTS=OFF \
36 -DLLVM_INCLUDE_DOCS=OFF \ 38 -DLLVM_INCLUDE_DOCS=OFF \
37 -DLLVM_BUILD_DOCS=OFF \ 39 -DLLVM_BUILD_DOCS=OFF \
38 -DLLVM_ENABLE_DOXYGEN=OFF \ 40 -DLLVM_ENABLE_DOXYGEN=OFF \
39 -DLLVM_ENABLE_BACKTRACES=Off 41 -DLLVM_ENABLE_BACKTRACES=OFF
40 42
41 $(MAKE) -C '$(1)/.build' -j '$(JOBS)' install DESTDIR='$(3)' 43 $(MAKE) -C '$(1)/.build' -j '$(JOBS)' install DESTDIR='$(3)'
42 endef 44 endef
43 else 45 else
44 define $(PKG)_BUILD 46 define $(PKG)_BUILD
46 exit 1 48 exit 1
47 endef 49 endef
48 endif 50 endif
49 else 51 else
50 ifeq ($(ENABLE_WINDOWS_64),yes) 52 ifeq ($(ENABLE_WINDOWS_64),yes)
51 ## WTF, setting LLVM_TARGETS_TO_BUILD to X64_64 doesn't work here?
52 $(PKG)_SYSDEP_CMAKE_OPTIONS += \ 53 $(PKG)_SYSDEP_CMAKE_OPTIONS += \
53 -DLLVM_DEFAULT_TARGET_TRIPLE='x86_64-pc-win32' \ 54 -DLLVM_DEFAULT_TARGET_TRIPLE='x86_64-pc-win32'
54 -DLLVM_TARGETS_TO_BUILD='X86'
55 else 55 else
56 $(PKG)_SYSDEP_CMAKE_OPTIONS += \ 56 $(PKG)_SYSDEP_CMAKE_OPTIONS += \
57 -DLLVM_DEFAULT_TARGET_TRIPLE='x86-pc-win32' \ 57 -DLLVM_DEFAULT_TARGET_TRIPLE='x86-pc-win32'
58 -DLLVM_TARGETS_TO_BUILD='X86'
59 endif 58 endif
60 ifeq ($(USE_CCACHE),yes) 59 ifeq ($(USE_CCACHE),yes)
61 $(PKG)_CCACHE_OPTIONS += \ 60 $(PKG)_CCACHE_OPTIONS += \
62 -DLLVM_CCACHE_BUILD=On 61 -DLLVM_CCACHE_BUILD=ON
63 endif 62 endif
64 63
65 define $(PKG)_BUILD 64 define $(PKG)_BUILD
66 mkdir '$(1)/.build' 65 mkdir '$(1)/.build'
67 cd '$(1)/.build' && 'cmake' .. \ 66 cd '$(1)/.build' && 'cmake' .. \
68 $($(PKG)_CMAKE_FLAGS) \ 67 $($(PKG)_CMAKE_FLAGS) \
69 $(CMAKE_CCACHE_FLAGS) \ 68 $(CMAKE_CCACHE_FLAGS) \
70 -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \ 69 -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
71 -DLLVM_BUILD_TOOLS=OFF \ 70 -DLLVM_BUILD_TOOLS=OFF \
72 -DLLVM_BUILD_LLVM_DYLIB=On \ 71 -DLLVM_BUILD_LLVM_DYLIB=ON \
73 -DLLVM_LINK_LLVM_DYLIB=On \ 72 -DLLVM_LINK_LLVM_DYLIB=ON \
74 -DLLVM_VERSION_SUFFIX= \ 73 -DLLVM_VERSION_SUFFIX= \
74 -DLLVM_TARGETS_TO_BUILD='X86' \
75 $($(PKG)_SYSDEP_CMAKE_OPTIONS) \ 75 $($(PKG)_SYSDEP_CMAKE_OPTIONS) \
76 -DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE='$(CMAKE_NATIVE_TOOLCHAIN_FILE)'" \ 76 -DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE='$(CMAKE_NATIVE_TOOLCHAIN_FILE)'" \
77 -DLLVM_BUILD_EXAMPLES=Off \ 77 -DLLVM_ENABLE_EH=ON \
78 -DLLVM_INCLUDE_EXAMPLES=Off \ 78 -DLLVM_ENABLE_RTTI=ON \
79 -DLLVM_BUILD_TESTS=Off \ 79 -DLLVM_BUILD_EXAMPLES=OFF \
80 -DLLVM_INCLUDE_TESTS=Off \ 80 -DLLVM_INCLUDE_EXAMPLES=OFF \
81 -DLLVM_BUILD_TESTS=OFF \
82 -DLLVM_INCLUDE_TESTS=OFF \
81 -DLLVM_INCLUDE_GO_TESTS=OFF \ 83 -DLLVM_INCLUDE_GO_TESTS=OFF \
82 -DLLVM_ENABLE_BACKTRACES=Off \ 84 -DLLVM_ENABLE_BACKTRACES=OFF \
83 -DLLVM_INCLUDE_DOCS=OFF \ 85 -DLLVM_INCLUDE_DOCS=OFF \
84 -DLLVM_BUILD_DOCS=OFF \ 86 -DLLVM_BUILD_DOCS=OFF \
85 -DLLVM_ENABLE_DOXYGEN=OFF \ 87 -DLLVM_ENABLE_DOXYGEN=OFF \
86 -DLLVM_ENABLE_OCAMLDOC=OFF \ 88 -DLLVM_ENABLE_OCAMLDOC=OFF \
87 -DLLVM_ENABLE_BINDINGS=OFF \ 89 -DLLVM_ENABLE_BINDINGS=OFF \
99 101
100 # create symlink for shared library so that llvm-config can find it 102 # create symlink for shared library so that llvm-config can find it
101 cd '$(3)/$(HOST_BINDIR)' && ln -s LLVM.dll LLVM-$(word 1,$(subst ., ,$($(PKG)_VERSION))).$(word 2,$(subst ., ,$($(PKG)_VERSION))).dll 103 cd '$(3)/$(HOST_BINDIR)' && ln -s LLVM.dll LLVM-$(word 1,$(subst ., ,$($(PKG)_VERSION))).$(word 2,$(subst ., ,$($(PKG)_VERSION))).dll
102 104
103 # install native llvm-config in HOST_BINDIR because it won't find the libs otherwise 105 # install native llvm-config in HOST_BINDIR because it won't find the libs otherwise
104 # FIXME: Some of the configuration flags are hard coded into llvm-config with a patch.
105 # If the configuration flags are changed, the patch might have to be adapted.
106 $(INSTALL) -d '$(HOST_BINDIR)' 106 $(INSTALL) -d '$(HOST_BINDIR)'
107 $(INSTALL) -m755 '$(1)/.build/NATIVE/bin/llvm-config' '$(HOST_BINDIR)/$(MXE_TOOL_PREFIX)llvm-config' 107 $(INSTALL) -m755 '$(1)/.build/NATIVE/bin/llvm-config' '$(HOST_BINDIR)/$(MXE_TOOL_PREFIX)llvm-config'
108 endef 108 endef
109 endif 109 endif