From 8581dc624d1c10b37a5533ac168f6f491cddd86f Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 15 May 2015 11:12:31 -0700 Subject: clang: Update to latest 3.8 snapshot Use HOST_CC_ARCH as well in CC and CXX Signed-off-by: Khem Raj --- conf/clang.conf | 11 +- .../clang/clang/disable-xml2-config.patch | 208 --------------------- recipes-devtools/clang/clang_git.bb | 53 +++++- recipes-devtools/clang/compiler-rt_git.bb | 2 +- 4 files changed, 51 insertions(+), 223 deletions(-) delete mode 100644 recipes-devtools/clang/clang/disable-xml2-config.patch diff --git a/conf/clang.conf b/conf/clang.conf index 312f4cd..0d13d1d 100644 --- a/conf/clang.conf +++ b/conf/clang.conf @@ -1,9 +1,10 @@ TOOLCHAIN ?= "" -CC_toolchain-clang = "${TARGET_PREFIX}clang ${TOOLCHAIN_OPTIONS}" -CXX_toolchain-clang = "${TARGET_PREFIX}clang++ ${TOOLCHAIN_OPTIONS}" -CPP_toolchain-clang = "${TARGET_PREFIX}clang ${TOOLCHAIN_OPTIONS} -E" -CCLD_toolchain-clang = "${TARGET_PREFIX}clang ${TOOLCHAIN_OPTIONS}" +CC_toolchain-clang = "${TARGET_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" +CXX_toolchain-clang = "${TARGET_PREFIX}clang++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" +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" TOOLCHAIN_pn-lzo = "clang" DEPENDS_append_pn-lzo = " clang-cross-${TARGET_ARCH} " @@ -17,3 +18,5 @@ DEPENDS_append_pn-toybox = " clang-cross-${TARGET_ARCH} " TOOLCHAIN_pn-compiler-rt = "clang" DEPENDS_append_pn-compiler-rt = " clang-cross-${TARGET_ARCH} " +TOOLCHAIN_pn-clang = "clang" +DEPENDS_append_pn-clang = " clang-cross-${TARGET_ARCH} " diff --git a/recipes-devtools/clang/clang/disable-xml2-config.patch b/recipes-devtools/clang/clang/disable-xml2-config.patch deleted file mode 100644 index 13edc56..0000000 --- a/recipes-devtools/clang/clang/disable-xml2-config.patch +++ /dev/null @@ -1,208 +0,0 @@ -Index: git/autoconf/configure.ac -=================================================================== ---- git.orig/autoconf/configure.ac 2014-08-26 12:58:29.187543502 -0700 -+++ git/autoconf/configure.ac 2014-08-26 13:18:55.484200981 -0700 -@@ -1560,16 +1560,13 @@ - dnl Check for libxml2 - dnl Right now we're just checking for the existence, we could also check for a - dnl particular version via --version on xml2-config --AC_CHECK_PROGS(XML2CONFIG, xml2-config) -- --AC_MSG_CHECKING(for libxml2 includes) --if test "x$XML2CONFIG" = "x"; then -- AC_MSG_RESULT(xml2-config not found) --else -- LIBXML2_INC=`$XML2CONFIG --cflags` -- AC_MSG_RESULT($LIBXML2_INC) -- AC_CHECK_LIB(xml2, xmlReadFile,[AC_DEFINE([CLANG_HAVE_LIBXML],1,[Define if we have libxml2]) -- LIBXML2_LIBS="-lxml2"]) -+PKG_CHECK_MODULES(LIBXML2, [libxml-2.0],, -+ [AC_MSG_ERROR([Could not find libxml-2.0])] -+) -+if test "x$LIBXML2_CFLAGS" != "x"; then -+ LIBXML2_INC=${LIBXML2_CFLAGS} -+ LIBXML2_LIBS=${LIBXML2_LIBS} -+ AC_DEFINE([CLANG_HAVE_LIBXML],1,[Define if we have libxml2]) - fi - AC_SUBST(LIBXML2_LIBS) - AC_SUBST(LIBXML2_INC) -Index: git/configure -=================================================================== ---- git.orig/configure 2014-08-26 12:58:29.194210168 -0700 -+++ git/configure 2014-08-26 13:19:00.424200963 -0700 -@@ -769,7 +769,6 @@ - HAVE_TERMINFO - USE_OPROFILE - USE_INTEL_JITEVENTS --XML2CONFIG - LIBXML2_LIBS - LIBXML2_INC - CXXCPP -@@ -10164,144 +10163,17 @@ - _ACEOF - - --for ac_prog in xml2-config --do -- # Extract the first word of "$ac_prog", so it can be a program name with args. --set dummy $ac_prog; ac_word=$2 --{ echo "$as_me:$LINENO: checking for $ac_word" >&5 --echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } --if test "${ac_cv_prog_XML2CONFIG+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- if test -n "$XML2CONFIG"; then -- ac_cv_prog_XML2CONFIG="$XML2CONFIG" # Let the user override the test. --else --as_save_IFS=$IFS; IFS=$PATH_SEPARATOR --for as_dir in $PATH --do -- IFS=$as_save_IFS -- test -z "$as_dir" && as_dir=. -- for ac_exec_ext in '' $ac_executable_extensions; do -- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then -- ac_cv_prog_XML2CONFIG="$ac_prog" -- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 -- break 2 -- fi --done --done --IFS=$as_save_IFS -- --fi --fi --XML2CONFIG=$ac_cv_prog_XML2CONFIG --if test -n "$XML2CONFIG"; then -- { echo "$as_me:$LINENO: result: $XML2CONFIG" >&5 --echo "${ECHO_T}$XML2CONFIG" >&6; } --else -- { echo "$as_me:$LINENO: result: no" >&5 --echo "${ECHO_T}no" >&6; } --fi -- -- -- test -n "$XML2CONFIG" && break --done -- -- --{ echo "$as_me:$LINENO: checking for libxml2 includes" >&5 --echo $ECHO_N "checking for libxml2 includes... $ECHO_C" >&6; } --if test "x$XML2CONFIG" = "x"; then -- { echo "$as_me:$LINENO: result: xml2-config not found" >&5 --echo "${ECHO_T}xml2-config not found" >&6; } --else -- LIBXML2_INC=`$XML2CONFIG --cflags` -- { echo "$as_me:$LINENO: result: $LIBXML2_INC" >&5 --echo "${ECHO_T}$LIBXML2_INC" >&6; } -- { echo "$as_me:$LINENO: checking for xmlReadFile in -lxml2" >&5 --echo $ECHO_N "checking for xmlReadFile in -lxml2... $ECHO_C" >&6; } --if test "${ac_cv_lib_xml2_xmlReadFile+set}" = set; then -- echo $ECHO_N "(cached) $ECHO_C" >&6 --else -- ac_check_lib_save_LIBS=$LIBS --LIBS="-lxml2 $LIBS" --cat >conftest.$ac_ext <<_ACEOF --/* confdefs.h. */ --_ACEOF --cat confdefs.h >>conftest.$ac_ext --cat >>conftest.$ac_ext <<_ACEOF --/* end confdefs.h. */ -- --/* Override any GCC internal prototype to avoid an error. -- Use char because int might match the return type of a GCC -- builtin and then its argument prototype would still apply. */ --#ifdef __cplusplus --extern "C" --#endif --char xmlReadFile (); --int --main () --{ --return xmlReadFile (); -- ; -- return 0; --} --_ACEOF --rm -f conftest.$ac_objext conftest$ac_exeext --if { (ac_try="$ac_link" --case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_link") 2>conftest.er1 -- ac_status=$? -- grep -v '^ *+' conftest.er1 >conftest.err -- rm -f conftest.er1 -- cat conftest.err >&5 -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); } && -- { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err' -- { (case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_try") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; } && -- { ac_try='test -s conftest$ac_exeext' -- { (case "(($ac_try" in -- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; -- *) ac_try_echo=$ac_try;; --esac --eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 -- (eval "$ac_try") 2>&5 -- ac_status=$? -- echo "$as_me:$LINENO: \$? = $ac_status" >&5 -- (exit $ac_status); }; }; then -- ac_cv_lib_xml2_xmlReadFile=yes --else -- echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- -- ac_cv_lib_xml2_xmlReadFile=no --fi -- --rm -f core conftest.err conftest.$ac_objext \ -- conftest$ac_exeext conftest.$ac_ext --LIBS=$ac_check_lib_save_LIBS --fi --{ echo "$as_me:$LINENO: result: $ac_cv_lib_xml2_xmlReadFile" >&5 --echo "${ECHO_T}$ac_cv_lib_xml2_xmlReadFile" >&6; } --if test $ac_cv_lib_xml2_xmlReadFile = yes; then -+PKG_CHECK_MODULES(LIBXML2, libxml-2.0,, -+ AC_MSG_ERROR([Could not find libxml-2.0]) -+) -+if test "x$LIBXML2_CFLAGS" != "x"; then -+ LIBXML2_INC=${LIBXML2_CFLAGS} -+ LIBXML2_LIBS=${LIBXML2_LIBS} - - cat >>confdefs.h <<\_ACEOF - #define CLANG_HAVE_LIBXML 1 - _ACEOF - -- LIBXML2_LIBS="-lxml2" --fi -- - fi - - -@@ -19700,7 +19572,6 @@ - HAVE_TERMINFO!$HAVE_TERMINFO$ac_delim - USE_OPROFILE!$USE_OPROFILE$ac_delim - USE_INTEL_JITEVENTS!$USE_INTEL_JITEVENTS$ac_delim --XML2CONFIG!$XML2CONFIG$ac_delim - LIBXML2_LIBS!$LIBXML2_LIBS$ac_delim - LIBXML2_INC!$LIBXML2_INC$ac_delim - CXXCPP!$CXXCPP$ac_delim -@@ -19729,7 +19600,7 @@ - LTLIBOBJS!$LTLIBOBJS$ac_delim - _ACEOF - -- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then -+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 96; then - break - elif $ac_last_try; then - { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 diff --git a/recipes-devtools/clang/clang_git.bb b/recipes-devtools/clang/clang_git.bb index baf66d1..a1d3cf6 100644 --- a/recipes-devtools/clang/clang_git.bb +++ b/recipes-devtools/clang/clang_git.bb @@ -16,8 +16,8 @@ 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 \ " -SRCREV_llvm = "2c64a1129f14d6322631e1c6d610b92c4c4871d0" -SRCREV_clang = "070ffd29fb0a5a558e8f9bd464f784ff24ef1a54" +SRCREV_llvm = "08709687efd951d1d6c3ad5f8d518129c068c737" +SRCREV_clang = "75805b9d66425462798c88596376b14d69193429" SRCREV_FORMAT = "llvm_clang" @@ -25,20 +25,51 @@ S = "${WORKDIR}/git" inherit perlnative pythonnative cmake +def get_clang_target_arch(bb, d): + target_arch = d.getVar('TRANSLATED_TARGET_ARCH', True) + clang_arches = { + "i586" : "X86", + "x86-64" : "X86", + "powerpc" : "PowerPC", + "mips" : "Mips", + "arm" : "ARM", + "arm64" : "AArch64", + "aarch64" : "AArch64", + } + + if target_arch in clang_arches: + return clang_arches[target_arch] + return "" + +#TUNE_CCARGS_remove = "-mthumb-interwork" +#TUNE_CCARGS_remove = "-march=armv7-a" +#TUNE_CCARGS_remove = "-marm" + EXTRA_OECMAKE="-DLLVM_ENABLE_RTTI:BOOL=True \ -DLLVM_ENABLE_FFI:BOOL=False \ -DCMAKE_SYSTEM_NAME=Linux \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DLLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL=True \ - -DLLVM_TARGETS_TO_BUILD:STRING='AArch64;ARM;Mips;PowerPC;X86' \ " +EXTRA_OECMAKE_append_class-native = "\ + -DLLVM_TARGETS_TO_BUILD:STRING='AArch64;ARM;Mips;PowerPC;X86' \ +" +EXTRA_OECMAKE_append_class-nativesdk = "\ + -DLLVM_TARGETS_TO_BUILD:STRING='AArch64;ARM;Mips;PowerPC;X86' \ +" EXTRA_OECMAKE_append_class-target = "\ - -DCMAKE_CROSSCOMPILING=True \ + -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)}' \ + -DLLVM_TARGET_ARCH:STRING='${@get_clang_target_arch(bb, d)}' \ " +# -DCMAKE_CXX_FLAGS='-target armv7a -ccc-gcc-name ${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} -v -I ${PKG_CONFIG_SYSROOT_DIR}${includedir}/c++/5.1.0 -I ${PKG_CONFIG_SYSROOT_DIR}${includedir}/c++/5.1.0/arm-rdk-linux-gnueabi' \ +# -DCMAKE_C_FLAGS='-target armv7a -ccc-gcc-name ${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} -v -I ${PKG_CONFIG_SYSROOT_DIR}${includedir}/c++/5.1.0 -I ${PKG_CONFIG_SYSROOT_DIR}${includedir}/c++/5.1.0/arm-rdk-linux-gnueabi' \ +# +# EXTRA_OEMAKE += "REQUIRES_RTTI=1 VERBOSE=1" - DEPENDS = "zlib libffi libxml2-native binutils" do_configure_prepend() { @@ -52,12 +83,14 @@ do_configure_prepend() { sed -ri "s#/(bin|include|lib)(/?\")#/\1/${LLVM_DIR}\2#g" ${S}/tools/llvm-config/llvm-config.cpp } -do_compile_prepend() { - oe_runmake LLVMNativeTableGen - oe_runmake CLANGNativeTableGen -} - 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 + test -n "`file $f|grep -i ELF`" && ${STRIP} $f + done +} +do_install_append_class-nativesdk () { + 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 test -n "`file $f|grep -i ELF`" && ${STRIP} $f done diff --git a/recipes-devtools/clang/compiler-rt_git.bb b/recipes-devtools/clang/compiler-rt_git.bb index db45bff..5f8a81d 100644 --- a/recipes-devtools/clang/compiler-rt_git.bb +++ b/recipes-devtools/clang/compiler-rt_git.bb @@ -19,7 +19,7 @@ SRC_URI = "git://github.com/llvm-mirror/compiler-rt.git;branch=${BRANCH};name=co file://0001-support-a-new-embedded-linux-target.patch \ " -SRCREV_compiler-rt = "bc4648a579d99cb2a382c40a0fc9fe075da2b330" +SRCREV_compiler-rt = "0a93a02dc42d75bad5b7c7dad975a488e2833fcc" SRCREV_FORMAT = "compiler-rt" -- cgit v1.2.3-54-g00ecf