llvm introduced new JIT technology MCJIT with llvm 3.4 and fixes ARM in 3.5 (see http://llvm.org/releases/3.5.2/docs/ReleaseNotes.html#changes-to-the-arm-backend).
Ensure JIT is built with llvm Signed-off-by: Jens Rehsack <[email protected]> --- meta-oe/recipes-core/llvm/llvm.inc | 9 +++----- meta-oe/recipes-core/llvm/llvm3.3_3.3.bb | 7 ++++++ .../llvm/llvm3.5/arm_fenv_uclibc.patch | 14 ++++++++++++ meta-oe/recipes-core/llvm/llvm3.5_3.5.2.bb | 25 ++++++++++++++++++++++ 4 files changed, 49 insertions(+), 6 deletions(-) create mode 100644 meta-oe/recipes-core/llvm/llvm3.5/arm_fenv_uclibc.patch create mode 100644 meta-oe/recipes-core/llvm/llvm3.5_3.5.2.bb diff --git a/meta-oe/recipes-core/llvm/llvm.inc b/meta-oe/recipes-core/llvm/llvm.inc index 04c87aa..21aee3f 100644 --- a/meta-oe/recipes-core/llvm/llvm.inc +++ b/meta-oe/recipes-core/llvm/llvm.inc @@ -20,19 +20,15 @@ DESCRIPTION = "The Low Level Virtual Machine" HOMEPAGE = "http://llvm.org" -# 3-clause BSD-like -# University of Illinois/NCSA Open Source License -LICENSE = "NCSA" -LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=d0a3ef0d3e0e8f5cf59e5ffc273ab1f8" - DEPENDS = "libffi libxml2-native llvm-common" inherit perlnative pythonnative autotools LLVM_RELEASE = "${PV}" LLVM_DIR = "llvm${LLVM_RELEASE}" +LLVM_SRC_EXT ?= "xz" -SRC_URI = "http://llvm.org/releases/${PV}/llvm-${PV}.src.tar.gz" +SRC_URI = "http://llvm.org/releases/${PV}/llvm-${PV}.src.tar.${LLVM_SRC_EXT}" S = "${WORKDIR}/llvm-${PV}.src" LLVM_BUILD_DIR = "${WORKDIR}/llvm-${PV}.build" @@ -42,6 +38,7 @@ EXTRA_OECONF += "--disable-assertions \ --enable-debug-runtime \ --disable-expensive-checks \ --enable-bindings=none \ + --enable-jit \ --enable-keep-symbols \ --enable-libffi \ --enable-optimized \ diff --git a/meta-oe/recipes-core/llvm/llvm3.3_3.3.bb b/meta-oe/recipes-core/llvm/llvm3.3_3.3.bb index 60a2221..2a82213 100644 --- a/meta-oe/recipes-core/llvm/llvm3.3_3.3.bb +++ b/meta-oe/recipes-core/llvm/llvm3.3_3.3.bb @@ -1,5 +1,12 @@ +LLVM_SRC_EXT ?= "gz" + require llvm.inc +# 3-clause BSD-like +# University of Illinois/NCSA Open Source License +LICENSE = "NCSA" +LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=d0a3ef0d3e0e8f5cf59e5ffc273ab1f8" + DEPENDS += "zlib" EXTRA_OECONF += "--enable-zlib" diff --git a/meta-oe/recipes-core/llvm/llvm3.5/arm_fenv_uclibc.patch b/meta-oe/recipes-core/llvm/llvm3.5/arm_fenv_uclibc.patch new file mode 100644 index 0000000..c3ae494 --- /dev/null +++ b/meta-oe/recipes-core/llvm/llvm3.5/arm_fenv_uclibc.patch @@ -0,0 +1,14 @@ +Index: llvm-2.9/include/llvm/Support/FEnv.h +=================================================================== +--- llvm-2.9.orig/include/llvm/Support/FEnv.h 2010-11-29 20:44:50.000000000 +0100 ++++ llvm-2.9/include/llvm/Support/FEnv.h 2011-11-18 18:42:22.580161297 +0100 +@@ -17,6 +17,9 @@ + + #include "llvm/Config/config.h" + #include <cerrno> ++ ++#undef HAVE_FENV_H ++ + #ifdef HAVE_FENV_H + #include <fenv.h> + #endif diff --git a/meta-oe/recipes-core/llvm/llvm3.5_3.5.2.bb b/meta-oe/recipes-core/llvm/llvm3.5_3.5.2.bb new file mode 100644 index 0000000..7289b81 --- /dev/null +++ b/meta-oe/recipes-core/llvm/llvm3.5_3.5.2.bb @@ -0,0 +1,25 @@ +require llvm.inc + +# 3-clause BSD-like +# University of Illinois/NCSA Open Source License +LICENSE = "NCSA" +LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=47e311aa9caedd1b3abf098bd7814d1d" + +DEPENDS += "zlib" +EXTRA_OECONF += "--enable-zlib" + +SRC_URI_append_libc-uclibc = " file://arm_fenv_uclibc.patch " + +SRC_URI[md5sum] = "f5a4dc595f7e8bd23397684d0906d014" +SRC_URI[sha256sum] = "44196156d5749eb4b4224fe471a29cc3984df92570a4a89fa859f7394fc0c575" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[r600] = "--enable-experimental-targets=R600,,," + +# Fails to build with thumb-1 (qemuarm) +# | {standard input}: Assembler messages: +# | {standard input}:22: Error: selected processor does not support Thumb mode `stmdb sp!,{r0,r1,r2,r3,lr}' +# | {standard input}:31: Error: lo register required -- `ldmia sp!,{r0,r1,r2,r3,lr}' +# | {standard input}:32: Error: lo register required -- `ldr pc,[sp],#4' +# | make[3]: *** [/home/jenkins/oe/world/shr-core/tmp-glibc/work/armv5te-oe-linux-gnueabi/llvm3.3/3.3-r0/llvm-3.3.build/lib/Target/ARM/Release/ARMJITInfo.o] Error 1 +ARM_INSTRUCTION_SET = "arm" -- 1.9.1 -- Jens Rehsack - [email protected] -- _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-devel
