summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTony Theodore <tonyt@logyst.com>2018-12-09 09:37:06 (GMT)
committerTony Theodore <tonyt@logyst.com>2018-12-09 09:37:25 (GMT)
commit86ea790880c36c9ae0481dbb97ae282ee6f308ec (patch)
tree3520224de5190c7aad7d49b9027fbacc206285f8 /src
parent47c9c445a6fe5ffaa7950873f0b6e4f2d89941f8 (diff)
downloadmxe-86ea790880c36c9ae0481dbb97ae282ee6f308ec.zip
mxe-86ea790880c36c9ae0481dbb97ae282ee6f308ec.tar.gz
mxe-86ea790880c36c9ae0481dbb97ae282ee6f308ec.tar.bz2
llvm: update 3.4 --> 7.0.0
requires c++11 compiler (posix toolchain) closes #1000 fixes #2106
Diffstat (limited to 'src')
-rw-r--r--src/llvm-1-fixes.patch32
-rw-r--r--src/llvm.mk50
2 files changed, 70 insertions, 12 deletions
diff --git a/src/llvm-1-fixes.patch b/src/llvm-1-fixes.patch
new file mode 100644
index 0000000..0ee1a99
--- /dev/null
+++ b/src/llvm-1-fixes.patch
@@ -0,0 +1,32 @@
+This file is part of MXE. See LICENSE.md for licensing information.
+
+Contains ad hoc patches for cross building.
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Tony Theodore <tonyt@logyst.com>
+Date: Sun, 9 Dec 2018 16:04:13 +1100
+Subject: [PATCH 1/1] fix shared build and install
+
+
+diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
+index 1111111..2222222 100644
+--- a/cmake/modules/AddLLVM.cmake
++++ b/cmake/modules/AddLLVM.cmake
+@@ -656,7 +656,7 @@ macro(add_llvm_library name)
+
+ install(TARGETS ${name}
+ ${export_to_llvmexports}
+- ${install_type} DESTINATION ${install_dir}
++ DESTINATION lib RUNTIME DESTINATION bin
+ COMPONENT ${name})
+
+ if (NOT CMAKE_CONFIGURATION_TYPES)
+diff --git a/lib/Testing/CMakeLists.txt b/lib/Testing/CMakeLists.txt
+index 1111111..2222222 100644
+--- a/lib/Testing/CMakeLists.txt
++++ b/lib/Testing/CMakeLists.txt
+@@ -1 +1,3 @@
+-add_subdirectory(Support)
++if( LLVM_INCLUDE_TESTS )
++ add_subdirectory(Support)
++endif()
diff --git a/src/llvm.mk b/src/llvm.mk
index f8957a7..e69359e 100644
--- a/src/llvm.mk
+++ b/src/llvm.mk
@@ -3,12 +3,15 @@
PKG := llvm
$(PKG)_WEBSITE := https://llvm.org/
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 3.4
-$(PKG)_CHECKSUM := 25a5612d692c48481b9b397e2b55f4870e447966d66c96d655241702d44a2628
-$(PKG)_SUBDIR := llvm-$($(PKG)_VERSION)
-$(PKG)_FILE := llvm-$($(PKG)_VERSION).src.tar.gz
+$(PKG)_VERSION := 7.0.0
+$(PKG)_CHECKSUM := 8bc1f844e6cbde1b652c19c1edebc1864456fd9c78b8c1bea038e51b363fe222
+$(PKG)_SUBDIR := llvm-$($(PKG)_VERSION).src
+$(PKG)_FILE := llvm-$($(PKG)_VERSION).src.tar.xz
$(PKG)_URL := https://releases.llvm.org/$($(PKG)_VERSION)/$($(PKG)_FILE)
-$(PKG)_DEPS := cc
+$(PKG)_DEPS := cc $(BUILD)~$(PKG)
+# requires posix toolchain
+$(PKG)_TARGETS := $(BUILD) $(foreach TGT,$(MXE_TARGETS),$(and $(findstring posix,$(TGT)),$(TGT)))
+$(PKG)_DEPS_$(BUILD) := cmake
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://releases.llvm.org/download.html' | \
@@ -18,11 +21,34 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
- mkdir '$(1)/build'
- cd '$(1)/build' && '$(TARGET)-cmake' .. \
- -DLLVM_BUILD_TOOLS=OFF
- $(MAKE) -C '$(1)/build' -j $(JOBS) llvm-tblgen
- $(MAKE) -C '$(1)/build' -j $(JOBS) intrinsics_gen
- $(MAKE) -C '$(1)/build' -j $(JOBS) install
- cp '$(1)'/build/bin/*.dll '$(PREFIX)/$(TARGET)/bin/'
+ cd '$(BUILD_DIR)' && $(TARGET)-cmake '$(SOURCE_DIR)' \
+ -DLLVM_TABLEGEN='$(PREFIX)/$(BUILD)/bin/llvm-tblgen' \
+ -DLLVM_TARGETS_TO_BUILD=X86 \
+ -DLLVM_TARGET_ARCH=X86 \
+ -DLLVM_BUILD_DOCS=OFF \
+ -DLLVM_BUILD_EXAMPLES=OFF \
+ -DLLVM_BUILD_RUNTIME=OFF \
+ -DLLVM_BUILD_RUNTIMES=OFF \
+ -DLLVM_BUILD_TESTS=OFF \
+ -DLLVM_BUILD_TOOLS=OFF \
+ -DLLVM_BUILD_UTILS=OFF \
+ -DLLVM_ENABLE_BINDINGS=OFF \
+ -DLLVM_ENABLE_DOXYGEN=OFF \
+ -DLLVM_ENABLE_OCAMLDOC=OFF \
+ -DLLVM_ENABLE_SPHINX=OFF \
+ -DLLVM_INCLUDE_DOCS=OFF \
+ -DLLVM_INCLUDE_EXAMPLES=OFF \
+ -DLLVM_INCLUDE_GO_TESTS=OFF \
+ -DLLVM_INCLUDE_RUNTIMES=OFF \
+ -DLLVM_INCLUDE_TESTS=OFF \
+ -DLLVM_INCLUDE_TOOLS=OFF \
+ -DLLVM_INCLUDE_UTILS=OFF
+ $(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' VERBOSE=1
+ $(MAKE) -C '$(BUILD_DIR)' -j 1 install
+endef
+
+define $(PKG)_BUILD_$(BUILD)
+ cd '$(BUILD_DIR)' && cmake '$(SOURCE_DIR)'
+ $(MAKE) -C '$(BUILD_DIR)' -j '$(JOBS)' llvm-tblgen VERBOSE=1
+ cp '$(BUILD_DIR)'/bin/* '$(PREFIX)/$(TARGET)/bin/'
endef