diff options
Diffstat (limited to 'recipes/llvm')
-rw-r--r-- | recipes/llvm/llvm-2.4/fix-build.patch | 79 | ||||
-rw-r--r-- | recipes/llvm/llvm-2.4/fix-static-initialization.patch | 60 | ||||
-rw-r--r-- | recipes/llvm/llvm-gcc4-cross_svn.bb | 32 | ||||
-rw-r--r-- | recipes/llvm/llvm-gcc4_svn.bb | 19 | ||||
-rw-r--r-- | recipes/llvm/llvm-native_1.9.bb | 9 | ||||
-rw-r--r-- | recipes/llvm/llvm-native_2.1.bb | 16 | ||||
-rw-r--r-- | recipes/llvm/llvm-native_2.4.bb | 15 | ||||
-rw-r--r-- | recipes/llvm/llvm-native_2.5.bb | 15 | ||||
-rw-r--r-- | recipes/llvm/llvm-native_cvs.bb | 13 | ||||
-rw-r--r-- | recipes/llvm/llvm.inc | 16 | ||||
-rw-r--r-- | recipes/llvm/llvm_2.0.bb | 6 | ||||
-rw-r--r-- | recipes/llvm/llvm_2.4.bb | 46 |
12 files changed, 326 insertions, 0 deletions
diff --git a/recipes/llvm/llvm-2.4/fix-build.patch b/recipes/llvm/llvm-2.4/fix-build.patch new file mode 100644 index 0000000000..ed077affcd --- /dev/null +++ b/recipes/llvm/llvm-2.4/fix-build.patch @@ -0,0 +1,79 @@ +Index: llvm-2.4/Makefile.rules +=================================================================== +--- llvm-2.4.orig/Makefile.rules 2008-10-03 23:24:52.000000000 +0200 ++++ llvm-2.4/Makefile.rules 2009-01-24 09:59:20.000000000 +0100 +@@ -234,9 +234,10 @@ + EXTRA_OPTIONS += -fstrict-aliasing -Wstrict-aliasing + endif + +- CXX.Flags += $(OPTIMIZE_OPTION) $(OmitFramePointer) +- C.Flags += $(OPTIMIZE_OPTION) $(OmitFramePointer) +- LD.Flags += $(OPTIMIZE_OPTION) ++# OE: Do not interfere with flags given by OE ++# CXX.Flags += $(OPTIMIZE_OPTION) $(OmitFramePointer) ++# C.Flags += $(OPTIMIZE_OPTION) $(OmitFramePointer) ++# LD.Flags += $(OPTIMIZE_OPTION) + else + BuildMode := Debug + CXX.Flags += -g +@@ -309,11 +310,7 @@ + #-------------------------------------------------------------------- + TargetMode := + ifeq ($(LLVM_CROSS_COMPILING),1) +- ifeq ($(BUILD_COMPONENT),1) +- TargetMode := Build +- else +- TargetMode := Host +- endif ++ TargetMode := Host + BuildLLVMToolDir := $(LLVM_OBJ_ROOT)/$(BuildMode)/Build/bin + endif + +@@ -436,7 +433,7 @@ + ifdef EXAMPLE_TOOL + LD.Flags += -rpath $(ExmplDir) -export-dynamic + else +- LD.Flags += -rpath $(ToolDir) -export-dynamic ++ LD.Flags += -export-dynamic + endif + endif + +Index: llvm-2.4/lib/ExecutionEngine/JIT/JIT.cpp +=================================================================== +--- llvm-2.4.orig/lib/ExecutionEngine/JIT/JIT.cpp 2008-09-24 18:25:55.000000000 +0200 ++++ llvm-2.4/lib/ExecutionEngine/JIT/JIT.cpp 2009-01-23 15:10:03.000000000 +0100 +@@ -65,7 +65,7 @@ + } + + +-#if defined (__GNUC__) ++#if defined (__GNUC__) && ! defined (__ARM_EABI__) + + // libgcc defines the __register_frame function to dynamically register new + // dwarf frames for exception handling. This functionality is not portable +@@ -225,7 +225,7 @@ + } + + // Register routine for informing unwinding runtime about new EH frames +-#if defined(__GNUC__) ++#if defined(__GNUC__) && ! defined(__ARM_EABI__) + #if defined(__APPLE__) + struct LibgccObjectInfo* LOI = (struct LibgccObjectInfo*) + _keymgr_get_and_lock_processwide_ptr(KEYMGR_GCC3_DW2_OBJ_LIST); +Index: llvm-2.4/Makefile +=================================================================== +--- llvm-2.4.orig/Makefile 2008-10-03 00:56:44.000000000 +0200 ++++ llvm-2.4/Makefile 2009-01-23 15:10:33.000000000 +0100 +@@ -27,9 +27,9 @@ + + # When cross-compiling, there are some things (tablegen) that need to + # be build for the build system. +-ifeq ($(LLVM_CROSS_COMPILING),1) +- BUILD_TARGET_DIRS := lib/System lib/Support utils +-endif ++#ifeq ($(LLVM_CROSS_COMPILING),1) ++# BUILD_TARGET_DIRS := lib/System lib/Support utils ++#endif + + # llvm-gcc4 doesn't need runtime libs. llvm-gcc4 is the only supported one. + # FIXME: Remove runtime entirely once we have an understanding of where diff --git a/recipes/llvm/llvm-2.4/fix-static-initialization.patch b/recipes/llvm/llvm-2.4/fix-static-initialization.patch new file mode 100644 index 0000000000..a3ec2d6374 --- /dev/null +++ b/recipes/llvm/llvm-2.4/fix-static-initialization.patch @@ -0,0 +1,60 @@ +Index: llvm-2.4/include/llvm/System/DynamicLibrary.h +=================================================================== +--- llvm-2.4.orig/include/llvm/System/DynamicLibrary.h 2008-05-06 03:32:53.000000000 +0200 ++++ llvm-2.4/include/llvm/System/DynamicLibrary.h 2009-01-24 11:24:12.000000000 +0100 +@@ -16,6 +16,7 @@ + + #include "llvm/System/Path.h" + #include <string> ++#include <map> + + namespace llvm { + namespace sys { +@@ -90,6 +91,10 @@ + DynamicLibrary(const DynamicLibrary&); ///< Do not implement + DynamicLibrary& operator=(const DynamicLibrary&); ///< Do not implement + /// @} ++ ++ private: ++ static std::map<std::string, void *> &g_symbols(); ++ + }; + + } // End sys namespace +Index: llvm-2.4/lib/System/DynamicLibrary.cpp +=================================================================== +--- llvm-2.4.orig/lib/System/DynamicLibrary.cpp 2008-07-10 02:52:20.000000000 +0200 ++++ llvm-2.4/lib/System/DynamicLibrary.cpp 2009-01-24 11:27:42.000000000 +0100 +@@ -14,14 +14,18 @@ + #include "llvm/System/DynamicLibrary.h" + #include "llvm/Config/config.h" + #include <cstring> +-#include <map> + + // Collection of symbol name/value pairs to be searched prior to any libraries. +-static std::map<std::string, void *> g_symbols; ++std::map<std::string, void *> &llvm::sys::DynamicLibrary::g_symbols() { ++ static std::map<std::string, void *> *symbols ++ = new std::map<std::string, void *>(); ++ ++ return *symbols; ++} + + void llvm::sys::DynamicLibrary::AddSymbol(const char* symbolName, + void *symbolValue) { +- g_symbols[symbolName] = symbolValue; ++ g_symbols()[symbolName] = symbolValue; + } + + // It is not possible to use ltdl.c on VC++ builds as the terms of its LGPL +@@ -75,8 +79,8 @@ + // check_ltdl_initialization(); + + // First check symbols added via AddSymbol(). +- std::map<std::string, void *>::iterator I = g_symbols.find(symbolName); +- if (I != g_symbols.end()) ++ std::map<std::string, void *>::iterator I = g_symbols().find(symbolName); ++ if (I != g_symbols().end()) + return I->second; + + // Now search the libraries. diff --git a/recipes/llvm/llvm-gcc4-cross_svn.bb b/recipes/llvm/llvm-gcc4-cross_svn.bb new file mode 100644 index 0000000000..9b0e07ab94 --- /dev/null +++ b/recipes/llvm/llvm-gcc4-cross_svn.bb @@ -0,0 +1,32 @@ +DESCRIPTION = "The Low Level Virtual Machine - gcc4 frontend" +HOMEPAGE = "http://llvm.org" +LICENSE = "various" + +DEPENDS = "llvm-native" + +PV = "2.1+svnr${SRCREV}" + +inherit autotools cross + +SRC_URI = "svn://anonsvn.opensource.apple.com/svn/llvm/;module=trunk \ + " + +S = "${WORKDIR}/trunk" + +EXTRA_OECONF = "--disable-shared \ + --enable-llvm=/data/build/koen/OE/build/tmp/angstrom/work/i686-linux/llvm-native-2.0-r0/llvm-2.0 \ + " + +do_configure() { + gnu-configize + libtoolize --force + oe_runconf +} + +PARALLEL_MAKE = "" + +#oe_runmake gets distracted by GNUMakefiles... +# we also need to get an install.sh and config-ml.in in gcc/ as well somehow +do_compile_prepend() { + rm -f ${S}/GNUmakefile +} diff --git a/recipes/llvm/llvm-gcc4_svn.bb b/recipes/llvm/llvm-gcc4_svn.bb new file mode 100644 index 0000000000..599e2ca183 --- /dev/null +++ b/recipes/llvm/llvm-gcc4_svn.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "The Low Level Virtual Machine - gcc4 frontend" +HOMEPAGE = "http://llvm.org" +LICENSE = "various" + +DEPENDS = "llvm-native" + +PV = "2.0+svnr${SRCREV}" + +inherit autotools cross + +SRC_URI = "svn://anonsvn.opensource.apple.com/svn/llvm/;module=trunk \ + " + +S = "${WORKDIR}/trunk" + +EXTRA_OECONF = "--disable-shared \ + --enable-llvm \ + " + diff --git a/recipes/llvm/llvm-native_1.9.bb b/recipes/llvm/llvm-native_1.9.bb new file mode 100644 index 0000000000..1493bab886 --- /dev/null +++ b/recipes/llvm/llvm-native_1.9.bb @@ -0,0 +1,9 @@ +require llvm.inc + +inherit native + +S = "${WORKDIR}/llvm-${PV}" + +do_stage() { + install -m 755 ${S}/Release/bin/* ${STAGING_BINDIR_NATIVE}/ +} diff --git a/recipes/llvm/llvm-native_2.1.bb b/recipes/llvm/llvm-native_2.1.bb new file mode 100644 index 0000000000..6366b9bbbe --- /dev/null +++ b/recipes/llvm/llvm-native_2.1.bb @@ -0,0 +1,16 @@ +require llvm.inc + +SRC_URI = "http://llvm.org/releases/2.1/llvm-${PV}.tar.gz" + + +inherit native + +S = "${WORKDIR}/llvm-${PV}" + +do_stage() { + install -m 755 ${S}/Release/bin/* ${STAGING_BINDIR_NATIVE}/ +} + +do_rm_work() { + : +} diff --git a/recipes/llvm/llvm-native_2.4.bb b/recipes/llvm/llvm-native_2.4.bb new file mode 100644 index 0000000000..2e0a73fe86 --- /dev/null +++ b/recipes/llvm/llvm-native_2.4.bb @@ -0,0 +1,15 @@ +require llvm.inc + +SRC_URI = "http://llvm.org/releases/2.4/llvm-${PV}.tar.gz" + +inherit native + +S = "${WORKDIR}/llvm-${PV}" + +do_stage() { + install -m 755 ${S}/Release/bin/* ${STAGING_BINDIR_NATIVE}/ +} + +do_rm_work() { + : +} diff --git a/recipes/llvm/llvm-native_2.5.bb b/recipes/llvm/llvm-native_2.5.bb new file mode 100644 index 0000000000..010f49ab32 --- /dev/null +++ b/recipes/llvm/llvm-native_2.5.bb @@ -0,0 +1,15 @@ +require llvm.inc + +SRC_URI = "http://llvm.org/releases/2.5/llvm-${PV}.tar.gz" + +inherit native + +S = "${WORKDIR}/llvm-${PV}" + +do_stage() { + install -m 755 ${S}/Release/bin/* ${STAGING_BINDIR_NATIVE}/ +} + +do_rm_work() { + : +} diff --git a/recipes/llvm/llvm-native_cvs.bb b/recipes/llvm/llvm-native_cvs.bb new file mode 100644 index 0000000000..b3dfdebb2c --- /dev/null +++ b/recipes/llvm/llvm-native_cvs.bb @@ -0,0 +1,13 @@ +require llvm.inc + +inherit native + +PV = "1.9+cvs${SRCDATE}" + +SRC_URI = "cvs://anon@llvm.org/var/cvs/llvm;module=llvm" + +S = "${WORKDIR}/llvm" + +do_stage() { + install -m 755 ${S}/Debug/bin/* ${STAGING_BINDIR_NATIVE}/ +} diff --git a/recipes/llvm/llvm.inc b/recipes/llvm/llvm.inc new file mode 100644 index 0000000000..d9664aeebd --- /dev/null +++ b/recipes/llvm/llvm.inc @@ -0,0 +1,16 @@ +DESCRIPTION = "The Low Level Virtual Machine" +HOMEPAGE = "http://llvm.org" +LICENSE = "various" + +SRC_URI = "http://llvm.org/releases/1.9/llvm-${PV}.tar.gz" + +inherit autotools + +do_configure() { + oe_runconf +} + +do_stage() { + autotools_stage_all +} + diff --git a/recipes/llvm/llvm_2.0.bb b/recipes/llvm/llvm_2.0.bb new file mode 100644 index 0000000000..7e80f245cc --- /dev/null +++ b/recipes/llvm/llvm_2.0.bb @@ -0,0 +1,6 @@ +require llvm.inc + +SRC_URI = "http://llvm.org/releases/2.0/llvm-${PV}.tar.gz" + +S = "${WORKDIR}/llvm-${PV}" + diff --git a/recipes/llvm/llvm_2.4.bb b/recipes/llvm/llvm_2.4.bb new file mode 100644 index 0000000000..a66d1b376b --- /dev/null +++ b/recipes/llvm/llvm_2.4.bb @@ -0,0 +1,46 @@ +DESCRIPTION = "The Low Level Virtual Machine" +HOMEPAGE = "http://llvm.org" +LICENSE = "various" + +SRC_URI = "\ + http://llvm.org/releases/${PV}/llvm-${PV}.tar.gz \ + file://fix-build.patch;patch=1 \ + file://fix-static-initialization.patch;patch=1 \ + " + +DEPENDS = "llvm-native" + +inherit autotools + +# --enable-debug-runtime disables automatic stripping and lets +# OE control that +EXTRA_OECONF += "--enable-debug-runtime --enable-targets=host-only" + +do_compile() { + # The build wants these binaries, together with the build-fix patch + # they are not compiled again (which would not work). + # Most important aspect is removing BUILD_TARGET_DIRS variable. + install -d Release/Build/bin + cp ${STAGING_BINDIR_NATIVE}/tblgen Release/Build/bin + cp ${STAGING_BINDIR_NATIVE}/fpcmp Release/Build/bin + cp ${STAGING_BINDIR_NATIVE}/llvm-PerfectShuffle Release/Build/bin + + oe_runmake +} + +do_stage() { + autotools_stage_all + + rm ${STAGING_LIBDIR}/LLVMHello.* + + install -d ${STAGING_BINDIR_CROSS} + + sed -e's^my.*ABS_RUN_DIR =.*^my $ABS_RUN_DIR = "${STAGING_DIR_TARGET}";^' \ + -e's^my.*INCLUDEDIR =.*^my $INCLUDEDIR = "${STAGING_INCDIR}";^' \ + -e's^my.*LIBDIR.*^my $LIBDIR = "${STAGING_LIBDIR}";^' \ + -e's^my.*BINDIR.*^my $BINDIR = "${STAGING_BINDIR}";^' \ + Release/Host/bin/llvm-config > ${STAGING_BINDIR_CROSS}/llvm-config + + chmod +x ${STAGING_BINDIR_CROSS}/llvm-config +} + |