# HG changeset patch # User Michael Goffioul # Date 1373897350 14400 # Node ID 772d03100c0a007f56c9f98c0b48d1c1816da59a # Parent 1d9bbaa432398d763de3cd3eda502fb5fa4edcfe [MSVC] enable LLVM compilation (and upgrade to LLVM-3.1) diff -r 1d9bbaa43239 -r 772d03100c0a index.html --- a/index.html Sun Jul 14 16:30:19 2013 -0400 +++ b/index.html Mon Jul 15 10:09:10 2013 -0400 @@ -1685,7 +1685,7 @@ llvm - 3.0 + 3.1 llvm diff -r 1d9bbaa43239 -r 772d03100c0a src/llvm-1-fixes.patch --- a/src/llvm-1-fixes.patch Sun Jul 14 16:30:19 2013 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -diff -uNr a/lib/ExecutionEngine/JIT/CMakeLists.txt b/lib/ExecutionEngine/JIT/CMakeLists.txt ---- a/lib/ExecutionEngine/JIT/CMakeLists.txt 2011-07-28 20:14:25.000000000 -0400 -+++ b/lib/ExecutionEngine/JIT/CMakeLists.txt 2012-12-27 15:31:36.302394951 -0500 -@@ -12,6 +12,7 @@ - ) - - add_llvm_library_dependencies(LLVMJIT -+ LLVMCodeGen - LLVMCore - LLVMExecutionEngine - LLVMRuntimeDyld -diff -uNr a/utils/unittest/CMakeLists.txt b/utils/unittest/CMakeLists.txt ---- a/utils/unittest/CMakeLists.txt 2011-07-27 06:19:32.000000000 -0400 -+++ b/utils/unittest/CMakeLists.txt 2012-12-27 15:57:13.797820822 -0500 -@@ -37,6 +37,14 @@ - googletest/gtest-typed-test.cc - ) - -+add_llvm_library_dependencies(gtest -+ LLVMSupport -+ ) -+ - add_llvm_library(gtest_main - UnitTestMain/TestMain.cpp - ) -+ -+add_llvm_library_dependencies(gtest_main -+ gtest -+ ) diff -r 1d9bbaa43239 -r 772d03100c0a src/llvm.mk --- a/src/llvm.mk Sun Jul 14 16:30:19 2013 -0400 +++ b/src/llvm.mk Mon Jul 15 10:09:10 2013 -0400 @@ -3,11 +3,14 @@ PKG := llvm $(PKG)_IGNORE := -$(PKG)_CHECKSUM := b683e7294fcf69887c0d709025d4640f5dca755b +$(PKG)_CHECKSUM := 234c96e73ef81aec9a54da92fc2a9024d653b059 $(PKG)_SUBDIR := llvm-$($(PKG)_VERSION).src -$(PKG)_FILE := llvm-$($(PKG)_VERSION).tar.gz +$(PKG)_FILE := llvm-$($(PKG)_VERSION).src.tar.gz $(PKG)_URL := http://llvm.org/releases/$($(PKG)_VERSION)/$($(PKG)_FILE) $(PKG)_DEPS := +ifeq ($(MXE_SYSTEM),msvc) + $(PKG)_DEPS += libffi +endif define $(PKG)_UPDATE $(WGET) -q -O- 'http://llvm.org/releases/download.html' | \ @@ -17,6 +20,25 @@ endef ifeq ($(MXE_NATIVE_MINGW_BUILD),yes) +ifeq ($(MXE_SYSTEM),msvc) +define $(PKG)_BUILD + mkdir '$(1)/.build' + cd '$(1)/.build' && cmake \ + -G "NMake Makefiles" \ + -DCMAKE_BUILD_TYPE="Release" \ + "-DCMAKE_INSTALL_PREFIX:PATH=$(HOST_PREFIX)" \ + -DLLVM_ENABLE_FFI:BOOL=ON \ + "-DFFI_INCLUDE_DIR=$(HOST_LIBDIR)/libffi-$(libffi_VERSION)/include" \ + ../ + sed -i '/^ echo "/ {s/echo "/echo /;s/" >>/ >>/;}' \ + '$(1)/.build/tools/llvm-config/CMakeFiles/llvm-config.dir/build.make' + cd '$(1)/.build' && \ + env -u MAKE -u MAKEFLAGS \ + LIB="`echo \`cd ../../../usr/i686-pc-mingw32/lib && pwd -W\` | sed -e 's,/,\\\\\\\\,g'`\;$$LIB" \ + nmake && \ + env -u MAKE -u MAKEFLAGS nmake install +endef +else define $(PKG)_BUILD mkdir '$(1)/build' cd '$(1)/build' && ../configure \ @@ -31,6 +53,7 @@ PATH='$(HOST_BINDIR):$(PATH)' $(MAKE) -C '$(1)/build' -j $(JOBS) install $(LN_SF) '$(HOST_BINDIR)/llvm-config' '$(BUILD_TOOLS_PREFIX)/bin/$(MXE_TOOL_PREFIX)llvm-config' endef +endif else define $(PKG)_BUILD mkdir '$(1)/build' diff -r 1d9bbaa43239 -r 772d03100c0a src/msvc-llvm-1.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/msvc-llvm-1.patch Mon Jul 15 10:09:10 2013 -0400 @@ -0,0 +1,49 @@ +diff -ur llvm-3.1.src-orig/cmake/modules/LLVM-Config.cmake llvm-3.1.src/cmake/modules/LLVM-Config.cmake +--- llvm-3.1.src-orig/cmake/modules/LLVM-Config.cmake 2011-11-29 01:31:52 +0000 ++++ llvm-3.1.src/cmake/modules/LLVM-Config.cmake 2012-08-02 09:05:16 +0100 +@@ -11,6 +11,8 @@ + set(system_libs ${system_libs} pthread) + endif() + endif( MINGW ) ++ else() ++ set(system_libs ${system_libs} ffi shell32) + endif( NOT MSVC ) + set(${return_var} ${system_libs} PARENT_SCOPE) + endfunction(get_system_libs) +diff -ur llvm-3.1.src-orig/include/llvm/Support/DataTypes.h.cmake llvm-3.1.src/include/llvm/Support/DataTypes.h.cmake +--- llvm-3.1.src-orig/include/llvm/Support/DataTypes.h.cmake 2012-03-11 01:20:23 +0000 ++++ llvm-3.1.src/include/llvm/Support/DataTypes.h.cmake 2012-08-02 09:05:41 +0100 +@@ -113,7 +113,9 @@ + typedef unsigned short uint16_t; + typedef signed char int8_t; + typedef unsigned char uint8_t; ++#ifndef ssize_t + typedef signed int ssize_t; ++#endif + #ifndef INT8_MAX + # define INT8_MAX 127 + #endif +diff -ur llvm-3.1.src-orig/include/llvm/Support/DataTypes.h.in llvm-3.1.src/include/llvm/Support/DataTypes.h.in +--- llvm-3.1.src-orig/include/llvm/Support/DataTypes.h.in 2011-11-05 09:45:17 +0000 ++++ llvm-3.1.src/include/llvm/Support/DataTypes.h.in 2012-08-02 09:05:16 +0100 +@@ -110,7 +110,9 @@ + typedef unsigned short uint16_t; + typedef signed char int8_t; + typedef unsigned char uint8_t; ++#ifndef ssize_t + typedef signed int ssize_t; ++#endif + #ifndef INT8_MAX + # define INT8_MAX 127 + #endif +diff -ur llvm-3.1.src-orig/tools/CMakeLists.txt llvm-3.1.src/tools/CMakeLists.txt +--- llvm-3.1.src-orig/tools/CMakeLists.txt 2012-03-01 01:36:50 +0000 ++++ llvm-3.1.src/tools/CMakeLists.txt 2012-08-02 09:05:16 +0100 +@@ -15,6 +15,7 @@ + # on pure Win32. + add_subdirectory(llvm-config) + endif() ++add_subdirectory(llvm-config) + + add_subdirectory(opt) + add_subdirectory(llvm-as)