From c582f59d3915b908f22b3cb9ebaa6fcbbc594bd8 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 15 May 2015 14:52:54 -0700 Subject: clang: Fix building for target Signed-off-by: Khem Raj --- conf/clang.conf | 1 + ...KE_CROSSCOMPILING-so-it-can-cross-compile.patch | 34 ++++++++++++++++++++++ recipes-devtools/clang/clang_git.bb | 10 ++++++- 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 recipes-devtools/clang/clang/0001-Remove-CMAKE_CROSSCOMPILING-so-it-can-cross-compile.patch diff --git a/conf/clang.conf b/conf/clang.conf index 0d13d1d..ed3194e 100644 --- a/conf/clang.conf +++ b/conf/clang.conf @@ -5,6 +5,7 @@ CXX_toolchain-clang = "${TARGET_PREFIX}clang++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTION CPP_toolchain-clang = "${TARGET_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} -E" CCLD_toolchain-clang = "${TARGET_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" THUMB_TUNE_CCARGS_remove_toolchain-clang = "-mthumb-interwork" +TUNE_CCARGS_append_toolchain-clang = " -D__extern_always_inline=inline" TOOLCHAIN_pn-lzo = "clang" DEPENDS_append_pn-lzo = " clang-cross-${TARGET_ARCH} " diff --git a/recipes-devtools/clang/clang/0001-Remove-CMAKE_CROSSCOMPILING-so-it-can-cross-compile.patch b/recipes-devtools/clang/clang/0001-Remove-CMAKE_CROSSCOMPILING-so-it-can-cross-compile.patch new file mode 100644 index 0000000..8945c66 --- /dev/null +++ b/recipes-devtools/clang/clang/0001-Remove-CMAKE_CROSSCOMPILING-so-it-can-cross-compile.patch @@ -0,0 +1,34 @@ +From a004191b8e3976ac4a201ddc78c03a777d3193d9 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 15 May 2015 12:13:17 -0700 +Subject: [PATCH] Remove CMAKE_CROSSCOMPILING so it can cross compile + +we already have llvm-config from clang-native + +Signed-off-by: Khem Raj +--- + tools/llvm-config/CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tools/llvm-config/CMakeLists.txt b/tools/llvm-config/CMakeLists.txt +index d2ef45a..3d8b7b1 100644 +--- a/tools/llvm-config/CMakeLists.txt ++++ b/tools/llvm-config/CMakeLists.txt +@@ -34,7 +34,7 @@ add_llvm_tool(llvm-config + # Add the dependency on the generation step. + add_file_dependencies(${CMAKE_CURRENT_SOURCE_DIR}/llvm-config.cpp ${BUILDVARIABLES_OBJPATH}) + +-if(CMAKE_CROSSCOMPILING) ++if(CMAKE_CROSSCOMPILING1) + set(${project}_LLVM_CONFIG_EXE "${LLVM_NATIVE_BUILD}/bin/llvm-config") + set(${project}_LLVM_CONFIG_EXE ${${project}_LLVM_CONFIG_EXE} PARENT_SCOPE) + +@@ -47,4 +47,4 @@ if(CMAKE_CROSSCOMPILING) + add_dependencies(${project}NativeLLVMConfig CONFIGURE_LLVM_NATIVE) + + add_dependencies(llvm-config ${project}NativeLLVMConfig) +-endif(CMAKE_CROSSCOMPILING) ++endif(CMAKE_CROSSCOMPILING1) +-- +2.1.4 + diff --git a/recipes-devtools/clang/clang_git.bb b/recipes-devtools/clang/clang_git.bb index a1d3cf6..d197908 100644 --- a/recipes-devtools/clang/clang_git.bb +++ b/recipes-devtools/clang/clang_git.bb @@ -14,6 +14,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=4c0bc17c954e99fd547528d938832bfa; \ " SRC_URI = "git://github.com/llvm-mirror/llvm.git;branch=${BRANCH};name=llvm \ git://github.com/llvm-mirror/clang.git;branch=${BRANCH};destsuffix=git/tools/clang;name=clang \ + file://0001-Remove-CMAKE_CROSSCOMPILING-so-it-can-cross-compile.patch \ " SRCREV_llvm = "08709687efd951d1d6c3ad5f8d518129c068c737" @@ -44,6 +45,7 @@ def get_clang_target_arch(bb, d): #TUNE_CCARGS_remove = "-mthumb-interwork" #TUNE_CCARGS_remove = "-march=armv7-a" #TUNE_CCARGS_remove = "-marm" +TUNE_CCARGS_append_class-target = " -D__extern_always_inline=inline -L${PKG_CONFIG_SYSROOT_DIR}${libdir}/libxml2 -I${PKG_CONFIG_SYSROOT_DIR}${includedir}/libxml2 " EXTRA_OECMAKE="-DLLVM_ENABLE_RTTI:BOOL=True \ -DLLVM_ENABLE_FFI:BOOL=False \ @@ -59,6 +61,7 @@ EXTRA_OECMAKE_append_class-nativesdk = "\ -DLLVM_TARGETS_TO_BUILD:STRING='AArch64;ARM;Mips;PowerPC;X86' \ " EXTRA_OECMAKE_append_class-target = "\ + -DLLVM_ENABLE_PIC=False \ -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \ -DLLVM_TARGETS_TO_BUILD:STRING='${@get_clang_target_arch(bb, d)}' \ @@ -70,7 +73,7 @@ EXTRA_OECMAKE_append_class-target = "\ # EXTRA_OEMAKE += "REQUIRES_RTTI=1 VERBOSE=1" -DEPENDS = "zlib libffi libxml2-native binutils" +DEPENDS = "zlib libffi libxml2 binutils" do_configure_prepend() { # Remove RPATHs @@ -83,6 +86,11 @@ do_configure_prepend() { sed -ri "s#/(bin|include|lib)(/?\")#/\1/${LLVM_DIR}\2#g" ${S}/tools/llvm-config/llvm-config.cpp } +do_compile_prepend_class-native () { + oe_runmake LLVM-tablegen-host + oe_runmake CLANG-tablegen-host +} + do_install_append_class-native () { install -Dm 0755 ${B}/NATIVE/bin/clang-tblgen ${D}${bindir}/clang-tblgen for f in `find ${D}${bindir} -executable -type f -not -type l`; do -- cgit v1.2.3-54-g00ecf