llvm: update to llvm-3.5.0

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2014-09-05 20:52:29 +02:00
parent 018b3e93ca
commit ef47e642cb
5 changed files with 156 additions and 126 deletions

View File

@ -17,12 +17,12 @@
################################################################################
PKG_NAME="llvm"
PKG_VERSION="3.4.2"
PKG_VERSION="3.5.0"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://llvm.org/"
PKG_URL="http://llvm.org/releases/$PKG_VERSION/${PKG_NAME}-${PKG_VERSION}.src.tar.gz"
PKG_URL="http://llvm.org/releases/$PKG_VERSION/${PKG_NAME}-${PKG_VERSION}.src.tar.xz"
PKG_SOURCE_DIR="${PKG_NAME}-${PKG_VERSION}.src"
PKG_DEPENDS_HOST=""
PKG_DEPENDS_TARGET="toolchain llvm:host"
@ -98,11 +98,6 @@ pre_configure_host() {
autoconf --force --verbose -I m4 -o ../configure
)
( cd ../projects/sample/autoconf
aclocal --force --verbose -I m4
autoconf --force --verbose -I m4 -o ../configure
)
# we are building hosttools inside the target builddir
mkdir -p ../.$TARGET_NAME && cd ../.$TARGET_NAME/
rm -rf ../.$HOST_NAME

View File

@ -1,114 +0,0 @@
diff -Naur llvm-3.3.src/autoconf/configure.ac llvm-3.3.src.patch/autoconf/configure.ac
--- llvm-3.3.src/autoconf/configure.ac 2013-05-20 22:18:23.000000000 +0200
+++ llvm-3.3.src.patch/autoconf/configure.ac 2013-09-24 07:20:25.485443916 +0200
@@ -461,6 +461,10 @@
AC_CHECK_PROG(BUILD_CXX, c++, c++, , , /usr/ucb/c++)
fi
fi
+ AC_SUBST(BUILD_CPPFLAGS)
+ AC_SUBST(BUILD_CFLAGS)
+ AC_SUBST(BUILD_CXXFLAGS)
+ AC_SUBST(BUILD_LDFLAGS)
else
AC_SUBST(LLVM_CROSS_COMPILING, [0])
fi
diff -Naur llvm-3.3.src/autoconf/m4/build_exeext.m4 llvm-3.3.src.patch/autoconf/m4/build_exeext.m4
--- llvm-3.3.src/autoconf/m4/build_exeext.m4 2008-09-26 19:27:58.000000000 +0200
+++ llvm-3.3.src.patch/autoconf/m4/build_exeext.m4 2013-09-24 07:20:25.485443916 +0200
@@ -18,7 +18,7 @@
fi
fi
test -z "$BUILD_CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
- ac_build_link='${BUILD_CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AS_MESSAGE_LOG_FD'
+ ac_build_link='${BUILD_CC-cc} -o conftest $BUILD_CFLAGS $BUILD_CPPFLAGS $BUILD_LDFLAGS conftest.$ac_ext $LIBS 1>&AS_MESSAGE_LOG_FD'
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_build_exeext=
diff -Naur llvm-3.3.src/Makefile llvm-3.3.src.patch/Makefile
--- llvm-3.3.src/Makefile 2013-01-28 04:19:57.000000000 +0100
+++ llvm-3.3.src.patch/Makefile 2013-09-24 07:21:27.489493235 +0200
@@ -99,44 +99,6 @@
DIRS := $(filter-out unittests, $(DIRS))
endif
-# If we're cross-compiling, build the build-hosted tools first
-ifeq ($(LLVM_CROSS_COMPILING),1)
-all:: cross-compile-build-tools
-
-clean::
- $(Verb) rm -rf BuildTools
-
-cross-compile-build-tools:
- $(Verb) if [ ! -f BuildTools/Makefile ]; then \
- $(MKDIR) BuildTools; \
- cd BuildTools ; \
- unset CFLAGS ; \
- unset CXXFLAGS ; \
- unset SDKROOT ; \
- unset UNIVERSAL_SDK_PATH ; \
- $(PROJ_SRC_DIR)/configure --build=$(BUILD_TRIPLE) \
- --host=$(BUILD_TRIPLE) --target=$(BUILD_TRIPLE) \
- --disable-polly ; \
- cd .. ; \
- fi; \
- ($(MAKE) -C BuildTools \
- BUILD_DIRS_ONLY=1 \
- UNIVERSAL= \
- UNIVERSAL_SDK_PATH= \
- SDKROOT= \
- TARGET_NATIVE_ARCH="$(TARGET_NATIVE_ARCH)" \
- TARGETS_TO_BUILD="$(TARGETS_TO_BUILD)" \
- ENABLE_OPTIMIZED=$(ENABLE_OPTIMIZED) \
- ENABLE_PROFILING=$(ENABLE_PROFILING) \
- ENABLE_COVERAGE=$(ENABLE_COVERAGE) \
- DISABLE_ASSERTIONS=$(DISABLE_ASSERTIONS) \
- ENABLE_EXPENSIVE_CHECKS=$(ENABLE_EXPENSIVE_CHECKS) \
- ENABLE_LIBCPP=$(ENABLE_LIBCPP) \
- CFLAGS= \
- CXXFLAGS= \
- ) || exit 1;
-endif
-
# Include the main makefile machinery.
include $(LLVM_SRC_ROOT)/Makefile.rules
diff -Naur llvm-3.3.src/Makefile.config.in llvm-3.3.src.patch/Makefile.config.in
--- llvm-3.3.src/Makefile.config.in 2013-04-23 10:28:39.000000000 +0200
+++ llvm-3.3.src.patch/Makefile.config.in 2013-09-24 07:20:25.487443917 +0200
@@ -130,6 +130,10 @@
# call if we're cross-compiling).
BUILD_CC=@BUILD_CC@
BUILD_CXX=@BUILD_CXX@
+BUILD_CPPFLAGS=@BUILD_CPPFLAGS@
+BUILD_CFLAGS=@BUILD_CFLAGS@
+BUILD_CXXFLAGS=@BUILD_CXXFLAGS@
+BUILD_LDFLAGS=@BUILD_LDFLAGS@
# Triple for configuring build tools when cross-compiling
BUILD_TRIPLE=@build@
diff -Naur llvm-3.3.src/projects/sample/autoconf/configure.ac llvm-3.3.src.patch/projects/sample/autoconf/configure.ac
--- llvm-3.3.src/projects/sample/autoconf/configure.ac 2013-05-06 18:23:07.000000000 +0200
+++ llvm-3.3.src.patch/projects/sample/autoconf/configure.ac 2013-09-24 07:33:47.746272015 +0200
@@ -345,6 +345,10 @@
AC_CHECK_PROG(BUILD_CXX, c++, c++, , , /usr/ucb/c++)
fi
fi
+ AC_SUBST(BUILD_CPPFLAGS)
+ AC_SUBST(BUILD_CFLAGS)
+ AC_SUBST(BUILD_CXXFLAGS)
+ AC_SUBST(BUILD_LDFLAGS)
else
AC_SUBST(LLVM_CROSS_COMPILING, [0])
fi
diff -Naur llvm-3.3.src/projects/sample/autoconf/m4/build_exeext.m4 llvm-3.3.src.patch/projects/sample/autoconf/m4/build_exeext.m4
--- llvm-3.3.src/projects/sample/autoconf/m4/build_exeext.m4 2011-10-19 01:10:47.000000000 +0200
+++ llvm-3.3.src.patch/projects/sample/autoconf/m4/build_exeext.m4 2013-09-24 07:32:18.332178706 +0200
@@ -18,7 +18,7 @@
fi
fi
test -z "$BUILD_CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
- ac_build_link='${BUILD_CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AS_MESSAGE_LOG_FD'
+ ac_build_link='${BUILD_CC-cc} -o conftest $BUILD_CFLAGS $BUILD_CPPFLAGS $BUILD_LDFLAGS conftest.$ac_ext $LIBS 1>&AS_MESSAGE_LOG_FD'
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_build_exeext=

View File

@ -0,0 +1,98 @@
diff -Naur llvm-3.5.0.src/autoconf/configure.ac llvm-3.5.0.src.patch/autoconf/configure.ac
--- llvm-3.5.0.src/autoconf/configure.ac 2014-07-25 19:47:30.000000000 +0200
+++ llvm-3.5.0.src.patch/autoconf/configure.ac 2014-09-05 10:42:58.947215468 +0200
@@ -485,6 +485,10 @@
AC_CHECK_PROG(BUILD_CXX, c++, c++, , , /usr/ucb/c++)
fi
fi
+ AC_SUBST(BUILD_CPPFLAGS)
+ AC_SUBST(BUILD_CFLAGS)
+ AC_SUBST(BUILD_CXXFLAGS)
+ AC_SUBST(BUILD_LDFLAGS)
else
AC_SUBST(LLVM_CROSS_COMPILING, [0])
fi
diff -Naur llvm-3.5.0.src/autoconf/m4/build_exeext.m4 llvm-3.5.0.src.patch/autoconf/m4/build_exeext.m4
--- llvm-3.5.0.src/autoconf/m4/build_exeext.m4 2008-09-26 19:27:58.000000000 +0200
+++ llvm-3.5.0.src.patch/autoconf/m4/build_exeext.m4 2014-09-05 10:42:58.948215478 +0200
@@ -18,7 +18,7 @@
fi
fi
test -z "$BUILD_CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
- ac_build_link='${BUILD_CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&AS_MESSAGE_LOG_FD'
+ ac_build_link='${BUILD_CC-cc} -o conftest $BUILD_CFLAGS $BUILD_CPPFLAGS $BUILD_LDFLAGS conftest.$ac_ext $LIBS 1>&AS_MESSAGE_LOG_FD'
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_build_exeext=
diff -Naur llvm-3.5.0.src/Makefile llvm-3.5.0.src.patch/Makefile
--- llvm-3.5.0.src/Makefile 2014-03-25 22:45:41.000000000 +0100
+++ llvm-3.5.0.src.patch/Makefile 2014-09-05 10:45:20.542528330 +0200
@@ -99,54 +99,6 @@
DIRS := $(filter-out unittests, $(DIRS))
endif
-# If we're cross-compiling, build the build-hosted tools first
-ifeq ($(LLVM_CROSS_COMPILING),1)
-all:: cross-compile-build-tools
-
-clean::
- $(Verb) rm -rf BuildTools
-
-cross-compile-build-tools:
- $(Verb) if [ ! -f BuildTools/Makefile ]; then \
- $(MKDIR) BuildTools; \
- cd BuildTools ; \
- unset CFLAGS ; \
- unset CXXFLAGS ; \
- AR=$(BUILD_AR) ; \
- AS=$(BUILD_AS) ; \
- LD=$(BUILD_LD) ; \
- CC=$(BUILD_CC) ; \
- CXX=$(BUILD_CXX) ; \
- unset SDKROOT ; \
- unset UNIVERSAL_SDK_PATH ; \
- configure_opts= ; \
- if test "$(ENABLE_LIBCPP)" -ne 0 ; then \
- configure_opts="$$configure_opts --enable-libcpp"; \
- fi; \
- $(PROJ_SRC_DIR)/configure --build=$(BUILD_TRIPLE) \
- --host=$(BUILD_TRIPLE) --target=$(BUILD_TRIPLE) \
- --disable-polly $$configure_opts; \
- cd .. ; \
- fi; \
- ($(MAKE) -C BuildTools \
- BUILD_DIRS_ONLY=1 \
- UNIVERSAL= \
- UNIVERSAL_SDK_PATH= \
- SDKROOT= \
- TARGET_NATIVE_ARCH="$(TARGET_NATIVE_ARCH)" \
- TARGETS_TO_BUILD="$(TARGETS_TO_BUILD)" \
- TARGET_LIBS="$(LIBS)" \
- ENABLE_OPTIMIZED=$(ENABLE_OPTIMIZED) \
- ENABLE_PROFILING=$(ENABLE_PROFILING) \
- ENABLE_COVERAGE=$(ENABLE_COVERAGE) \
- DISABLE_ASSERTIONS=$(DISABLE_ASSERTIONS) \
- ENABLE_EXPENSIVE_CHECKS=$(ENABLE_EXPENSIVE_CHECKS) \
- ENABLE_LIBCPP=$(ENABLE_LIBCPP) \
- CFLAGS= \
- CXXFLAGS= \
- ) || exit 1;
-endif
-
# Include the main makefile machinery.
include $(LLVM_SRC_ROOT)/Makefile.rules
diff -Naur llvm-3.5.0.src/Makefile.config.in llvm-3.5.0.src.patch/Makefile.config.in
--- llvm-3.5.0.src/Makefile.config.in 2014-07-16 18:50:34.000000000 +0200
+++ llvm-3.5.0.src.patch/Makefile.config.in 2014-09-05 10:42:58.954215572 +0200
@@ -135,6 +135,10 @@
# call if we're cross-compiling).
BUILD_CC=@BUILD_CC@
BUILD_CXX=@BUILD_CXX@
+BUILD_CPPFLAGS=@BUILD_CPPFLAGS@
+BUILD_CFLAGS=@BUILD_CFLAGS@
+BUILD_CXXFLAGS=@BUILD_CXXFLAGS@
+BUILD_LDFLAGS=@BUILD_LDFLAGS@
# Triple for configuring build tools when cross-compiling
BUILD_TRIPLE=@build@

View File

@ -1,7 +1,7 @@
diff -Naur llvm.src/Makefile.rules llvm.src.patch/Makefile.rules
--- llvm.src/Makefile.rules 2013-11-15 00:51:29.000000000 +0100
+++ llvm.src.patch/Makefile.rules 2014-01-04 16:33:49.254066226 +0100
@@ -577,14 +577,6 @@
diff -Naur llvm-3.5.0.src/Makefile.rules llvm-3.5.0.src.patch/Makefile.rules
--- llvm-3.5.0.src/Makefile.rules 2014-06-20 21:00:41.000000000 +0200
+++ llvm-3.5.0.src.patch/Makefile.rules 2014-09-05 11:04:20.267554714 +0200
@@ -594,16 +594,6 @@
endif
endif
@ -9,6 +9,8 @@ diff -Naur llvm.src/Makefile.rules llvm.src.patch/Makefile.rules
-ifneq ($(HOST_OS), $(filter $(HOST_OS), Cygwin MingW))
-ifneq ($(HOST_OS),Darwin)
- LD.Flags += $(RPATH) -Wl,'$$ORIGIN'
-else
- LD.Flags += -Wl,-install_name -Wl,"@rpath/lib$(LIBRARYNAME)$(SHLIBEXT)"
-endif
-endif
-endif
@ -16,7 +18,7 @@ diff -Naur llvm.src/Makefile.rules llvm.src.patch/Makefile.rules
ifdef TOOL_VERBOSE
C.Flags += -v
CXX.Flags += -v
@@ -613,14 +605,7 @@
@@ -650,14 +640,7 @@
ifndef TOOL_NO_EXPORTS
LD.Flags += $(RDYNAMIC)
endif

View File

@ -0,0 +1,49 @@
The shared-object build for llvm (i.e. libLLVM-3.5svn.so + tools)
currently breaks on linux when linking opt. This patch is an attempt
to fix that.
-- Sanjoy
-------------- next part --------------
commit 080fb498017d17af2e4d7563608c7d8a848f20da
Author: Sanjoy Das <sanjoy at azulsystems.com>
Date: Thu Jun 19 15:38:02 2014 -0700
Fix the --enable-shared build.
Currently a build configured with ./configure --enable-shared breaks
with an undefined "llvm::cl::parser<llvm::PassInfo
const*>::getOption(unsigned int) const" symbol when linking opt. This
body for this symbol gets emitted into Pass.o (along with the destructor
for PassNameParser), but gets linked into libLLVM-3.5svn.so with local
visibility, causing the link error.
This fix uses the existing EXTERN_TEMPLATE machinery to force a globally
visible definition for the functions in parser<const PassInfo *> into
Pass.o.
diff --git a/include/llvm/IR/LegacyPassNameParser.h b/include/llvm/IR/LegacyPassNameParser.h
index e2e4912..a07e3fd 100644
--- a/include/llvm/IR/LegacyPassNameParser.h
+++ b/include/llvm/IR/LegacyPassNameParser.h
@@ -95,6 +95,8 @@ private:
}
};
+EXTERN_TEMPLATE_INSTANTIATION(class cl::parser<const PassInfo *>);
+
///===----------------------------------------------------------------------===//
/// FilteredPassNameParser class - Make use of the pass registration
/// mechanism to automatically add a command line argument to opt for
diff --git a/lib/IR/Pass.cpp b/lib/IR/Pass.cpp
index 91d86ae..00ce223 100644
--- a/lib/IR/Pass.cpp
+++ b/lib/IR/Pass.cpp
@@ -234,6 +234,8 @@ PassNameParser::~PassNameParser() {
// attempting to remove the registration listener is an error.
}
+TEMPLATE_INSTANTIATION(class cl::parser<const PassInfo *>);
+
//===----------------------------------------------------------------------===//
// AnalysisUsage Class Implementation
//