llvm: update to llvm-3.1, rework llvm patch to not need to build a second build for host, remove 'llvm-host' package, add ARM support

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2012-11-09 23:32:02 +01:00
parent dbdf9bf32b
commit b0f1764ee1
6 changed files with 172 additions and 246 deletions

View File

@ -29,40 +29,53 @@ if [ "$TARGET_ARCH" = i386 ]; then
LLVM_ARCH=x86
elif [ "$TARGET_ARCH" = x86_64 ]; then
LLVM_ARCH=x86_64
elif [ "$TARGET_ARCH" = arm ]; then
LLVM_ARCH=arm
fi
LLVM_DIR=`ls -d $BUILD/llvm-[0-9]*`
cd $LLVM_DIR
export BUILD_CC="$HOST_CC"
export BUILD_CXX="$HOST_CXX"
export BUILD_CFLAGS="$HOST_CFLAGS"
export BUILD_CXXFLAGS="$HOST_CXXFLAGS"
export BUILD_LDFLAGS="$HOST_LDFLAGS"
export BUILD_AR="$HOST_AR"
export BUILD_RANLIB="$HOST_RANLIB"
mkdir -p .build-target && cd .build-target
../configure --host=$TARGET_NAME \
--build=$HOST_NAME \
--prefix=/usr \
--enable-polly \
--enable-optimized \
--disable-profiling \
--disable-assertions \
--disable-expensive-checks \
--disable-debug-runtime \
--disable-debug-symbols \
--enable-jit \
--disable-docs \
--disable-doxygen \
--enable-threads \
--enable-pthreads \
--enable-pic \
--enable-shared \
--enable-embed-stdcxx \
--enable-timestamps \
--enable-targets=$LLVM_ARCH \
--disable-libffi \
--disable-ltdl-install \
cd $ROOT/$LLVM_DIR/autoconf
aclocal --force --verbose -I m4
autoconf --force --verbose -I m4 -o ../configure
cd $ROOT/$LLVM_DIR/projects/sample/autoconf
aclocal --force --verbose -I m4
autoconf --force --verbose -I m4 -o ../configure
cd $ROOT/$LLVM_DIR
mkdir -p .build-target && cd .build-target
../configure --host=$TARGET_NAME \
--build=$HOST_NAME \
--prefix=/usr \
--enable-polly \
--enable-optimized \
--disable-profiling \
--disable-assertions \
--disable-expensive-checks \
--disable-debug-runtime \
--disable-debug-symbols \
--enable-jit \
--disable-docs \
--disable-doxygen \
--enable-threads \
--enable-pthreads \
--enable-pic \
--enable-shared \
--enable-embed-stdcxx \
--enable-timestamps \
--enable-targets=$LLVM_ARCH \
--disable-libffi \
--disable-ltdl-install \
LLVM_TBLGEN="$ROOT/$TOOLCHAIN/bin/llvm-tblgen" \
make
LLVM_TBLGEN="$ROOT/$TOOLCHAIN/bin/llvm-tblgen" \
$MAKEINSTALL
#TCLSH="$ROOT/$TOOLCHAIN/bin/tclsh" \

View File

@ -19,14 +19,14 @@
################################################################################
PKG_NAME="llvm"
PKG_VERSION="3.0"
PKG_VERSION="3.1"
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.tar.gz"
PKG_URL="http://llvm.org/releases/$PKG_VERSION/$PKG_NAME-$PKG_VERSION.src.tar.gz"
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="toolchain llvm-host"
PKG_BUILD_DEPENDS="toolchain Python"
PKG_PRIORITY="optional"
PKG_SECTION="toolchain/lang"
PKG_SHORTDESC="llvm: Low Level Virtual Machine"

View File

@ -1,109 +0,0 @@
diff -Naur llvm-3.0.src/autoconf/configure.ac llvm-3.0.src.patch/autoconf/configure.ac
--- llvm-3.0.src/autoconf/configure.ac 2011-10-16 04:52:56.000000000 +0200
+++ llvm-3.0.src.patch/autoconf/configure.ac 2011-12-03 12:57:33.324415172 +0100
@@ -393,6 +393,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.0.src/autoconf/m4/build_exeext.m4 llvm-3.0.src.patch/autoconf/m4/build_exeext.m4
--- llvm-3.0.src/autoconf/m4/build_exeext.m4 2008-09-26 19:27:58.000000000 +0200
+++ llvm-3.0.src.patch/autoconf/m4/build_exeext.m4 2011-12-03 12:57:33.327415229 +0100
@@ -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.0.src/Makefile llvm-3.0.src.patch/Makefile
--- llvm-3.0.src/Makefile 2011-10-08 02:27:38.000000000 +0200
+++ llvm-3.0.src.patch/Makefile 2011-12-03 13:00:42.692055438 +0100
@@ -104,38 +104,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 ; \
- $(PROJ_SRC_DIR)/configure --build=$(BUILD_TRIPLE) \
- --host=$(BUILD_TRIPLE) --target=$(BUILD_TRIPLE) \
- --disable-polly ; \
- cd .. ; \
- fi; \
- (unset SDKROOT; \
- $(MAKE) -C BuildTools \
- BUILD_DIRS_ONLY=1 \
- UNIVERSAL= \
- ENABLE_OPTIMIZED=$(ENABLE_OPTIMIZED) \
- ENABLE_PROFILING=$(ENABLE_PROFILING) \
- ENABLE_COVERAGE=$(ENABLE_COVERAGE) \
- DISABLE_ASSERTIONS=$(DISABLE_ASSERTIONS) \
- ENABLE_EXPENSIVE_CHECKS=$(ENABLE_EXPENSIVE_CHECKS) \
- CFLAGS= \
- CXXFLAGS= \
- ) || exit 1;
-endif
-
# Include the main makefile machinery.
include $(LLVM_SRC_ROOT)/Makefile.rules
diff -Naur llvm-3.0.src/Makefile.config.in llvm-3.0.src.patch/Makefile.config.in
--- llvm-3.0.src/Makefile.config.in 2011-10-13 19:27:34.000000000 +0200
+++ llvm-3.0.src.patch/Makefile.config.in 2011-12-03 12:57:33.962427436 +0100
@@ -113,6 +113,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.0.src/Makefile.rules llvm-3.0.src.patch/Makefile.rules
--- llvm-3.0.src/Makefile.rules 2011-10-11 14:51:44.000000000 +0200
+++ llvm-3.0.src.patch/Makefile.rules 2011-12-03 12:59:37.459801461 +0100
@@ -641,18 +641,18 @@
ifeq ($(BUILD_COMPONENT), 1)
Compile.C = $(Compile.Wrapper) \
- $(BUILD_CC) $(CPP.Flags) $(C.Flags) $(CFLAGS) $(CPPFLAGS) \
+ $(BUILD_CC) $(CPP.Flags) $(C.Flags) $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) \
$(TargetCommonOpts) $(CompileCommonOpts) -c
Compile.CXX = $(Compile.Wrapper) \
- $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) $(CXXFLAGS) \
+ $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) $(BUILD_CXXFLAGS) \
$(CPPFLAGS) \
$(TargetCommonOpts) $(CompileCommonOpts) -c
Preprocess.CXX= $(Compile.Wrapper) \
- $(BUILD_CXX) $(CPP.Flags) $(CPPFLAGS) $(TargetCommonOpts) \
+ $(BUILD_CXX) $(CPP.Flags) $(BUILD_CPPFLAGS) $(TargetCommonOpts) \
$(CompileCommonOpts) $(CXX.Flags) -E
Link = $(Compile.Wrapper) \
- $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) $(CXXFLAGS) \
- $(LD.Flags) $(LDFLAGS) \
+ $(BUILD_CXX) $(CPP.Flags) $(CXX.Flags) $(BUILD_CXXFLAGS) \
+ $(LD.Flags) $(BUILD_LDFLAGS) \
$(TargetCommonOpts) $(CompileCommonOpts) $(Strip)
else
Compile.C = $(Compile.Wrapper) \

View File

@ -0,0 +1,127 @@
diff -Naur llvm-3.1.src/autoconf/configure.ac llvm-3.1.src.patch/autoconf/configure.ac
--- llvm-3.1.src/autoconf/configure.ac 2012-05-11 22:48:57.000000000 +0200
+++ llvm-3.1.src.patch/autoconf/configure.ac 2012-11-09 21:39:16.897271776 +0100
@@ -402,6 +402,12 @@
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)
+ AC_SUBST(BUILD_AR)
+ AC_SUBST(BUILD_RANLIB)
else
AC_SUBST(LLVM_CROSS_COMPILING, [0])
fi
diff -Naur llvm-3.1.src/autoconf/m4/build_exeext.m4 llvm-3.1.src.patch/autoconf/m4/build_exeext.m4
--- llvm-3.1.src/autoconf/m4/build_exeext.m4 2008-09-26 19:27:58.000000000 +0200
+++ llvm-3.1.src.patch/autoconf/m4/build_exeext.m4 2012-11-09 15:41:36.583964079 +0100
@@ -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.1.src/Makefile llvm-3.1.src.patch/Makefile
--- llvm-3.1.src/Makefile 2012-01-17 03:56:49.000000000 +0100
+++ llvm-3.1.src.patch/Makefile 2012-11-09 21:56:28.931837126 +0100
@@ -109,11 +109,14 @@
$(Verb) if [ ! -f BuildTools/Makefile ]; then \
$(MKDIR) BuildTools; \
cd BuildTools ; \
- unset CFLAGS ; \
- unset CXXFLAGS ; \
- $(PROJ_SRC_DIR)/configure --build=$(BUILD_TRIPLE) \
- --host=$(BUILD_TRIPLE) --target=$(BUILD_TRIPLE) \
- --disable-polly ; \
+ CC="$(BUILD_CC)" \
+ CXX="$(BUILD_CXX)" \
+ CFLAGS="$(BUILD_CFLAGS)" \
+ CXXFLAGS="$(BUILD_CXXFLAGS)" \
+ LDFLAGS="$(BUILD_LDFLAGS)" \
+ AR="$(BUILD_AR)" \
+ RANLIB="$(BUILD_RANLIB)" \
+ $(PROJ_SRC_DIR)/configure --disable-polly ; \
cd .. ; \
fi; \
(unset SDKROOT; \
@@ -128,8 +131,13 @@
DISABLE_ASSERTIONS=$(DISABLE_ASSERTIONS) \
ENABLE_EXPENSIVE_CHECKS=$(ENABLE_EXPENSIVE_CHECKS) \
ENABLE_LIBCPP=$(ENABLE_LIBCPP) \
- CFLAGS= \
- CXXFLAGS= \
+ CC="$(BUILD_CC)" \
+ CXX="$(BUILD_CXX)" \
+ CFLAGS="$(BUILD_CFLAGS)" \
+ CXXFLAGS="$(BUILD_CXXFLAGS)" \
+ LDFLAGS="$(BUILD_LDFLAGS)" \
+ AR="$(BUILD_AR)" \
+ RANLIB="$(BUILD_RANLIB)" \
) || exit 1;
endif
diff -Naur llvm-3.1.src/Makefile.config.in llvm-3.1.src.patch/Makefile.config.in
--- llvm-3.1.src/Makefile.config.in 2012-05-16 00:06:08.000000000 +0200
+++ llvm-3.1.src.patch/Makefile.config.in 2012-11-09 21:43:39.805643703 +0100
@@ -127,6 +127,12 @@
# 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@
+BUILD_AR=@BUILD_AR@
+BUILD_RANLIB=@BUILD_RANLIB@
# Triple for configuring build tools when cross-compiling
BUILD_TRIPLE=@build@
diff -Naur llvm-3.1.src/projects/sample/autoconf/configure.ac llvm-3.1.src.patch/projects/sample/autoconf/configure.ac
--- llvm-3.1.src/projects/sample/autoconf/configure.ac 2012-04-05 21:34:15.000000000 +0200
+++ llvm-3.1.src.patch/projects/sample/autoconf/configure.ac 2012-11-09 21:40:36.105588918 +0100
@@ -342,6 +342,12 @@
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)
+ AC_SUBST(BUILD_AR)
+ AC_SUBST(BUILD_RANLIB)
else
AC_SUBST(LLVM_CROSS_COMPILING, [0])
fi
diff -Naur llvm-3.1.src/projects/sample/autoconf/m4/build_exeext.m4 llvm-3.1.src.patch/projects/sample/autoconf/m4/build_exeext.m4
--- llvm-3.1.src/projects/sample/autoconf/m4/build_exeext.m4 2011-10-19 01:10:47.000000000 +0200
+++ llvm-3.1.src.patch/projects/sample/autoconf/m4/build_exeext.m4 2012-11-09 15:52:56.307603861 +0100
@@ -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.1.src/projects/sample/Makefile.llvm.config.in llvm-3.1.src.patch/projects/sample/Makefile.llvm.config.in
--- llvm-3.1.src/projects/sample/Makefile.llvm.config.in 2012-03-26 04:09:01.000000000 +0200
+++ llvm-3.1.src.patch/projects/sample/Makefile.llvm.config.in 2012-11-09 21:43:00.000981773 +0100
@@ -95,6 +95,12 @@
# 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@
+BUILD_AR=@BUILD_AR@
+BUILD_RANLIB=@BUILD_RANLIB@
# Triple for configuring build tools when cross-compiling
BUILD_TRIPLE=@build@

View File

@ -1,69 +0,0 @@
#!/bin/sh
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
. config/options $1
$SCRIPTS/unpack llvm
setup_toolchain host
if [ "$TARGET_ARCH" = i386 ]; then
ARCH=x86
elif [ "$TARGET_ARCH" = x86_64 ]; then
ARCH=x86_64
fi
LLVM_DIR=`ls -d $BUILD/llvm-[0-9]*`
cd $LLVM_DIR
cd autoconf
aclocal --force --verbose -I m4
autoconf --force --verbose -I m4 -o ../configure
cd ..
mkdir -p .build-host && cd .build-host
../configure --host=$HOST_NAME \
--build=$HOST_NAME \
--prefix=$ROOT/$TOOLCHAIN \
--enable-polly \
--enable-optimized \
--disable-profiling \
--disable-assertions \
--disable-expensive-checks \
--disable-debug-runtime \
--disable-debug-symbols \
--enable-jit \
--disable-docs \
--disable-doxygen \
--enable-threads \
--enable-pthreads \
--enable-pic \
--enable-shared \
--enable-embed-stdcxx \
--enable-timestamps \
--enable-targets=$ARCH \
--disable-libffi \
--enable-ltdl-install \
make
make install

View File

@ -1,36 +0,0 @@
################################################################################
# This file is part of OpenELEC - http://www.openelec.tv
# Copyright (C) 2009-2012 Stephan Raue (stephan@openelec.tv)
#
# This Program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This Program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with OpenELEC.tv; see the file COPYING. If not, write to
# the Free Software Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110, USA.
# http://www.gnu.org/copyleft/gpl.html
################################################################################
PKG_NAME="llvm"
PKG_VERSION=""
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://llvm.org/"
PKG_URL=""
PKG_DEPENDS=""
PKG_BUILD_DEPENDS="ccache gcc-final libffi-host"
PKG_PRIORITY="optional"
PKG_SECTION="toolchain/lang"
PKG_SHORTDESC="llvm: Low Level Virtual Machine"
PKG_LONGDESC="Low-Level Virtual Machine (LLVM) is a compiler infrastructure designed for compile-time, link-time, run-time, and "idle-time" optimization of programs from arbitrary programming languages. It currently supports compilation of C, Objective-C, and C++ programs, using front-ends derived from GCC 4.0, GCC 4.2, and a custom new front-end, "clang". It supports x86, x86-64, ia64, PowerPC, and SPARC, with support for Alpha and ARM under development."
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"