From 00c5b7c5b5f340dd0b8885ef03bd2ea849203dfa Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 10 Jul 2015 18:51:44 -0700 Subject: clang: Upgrade to latest tip of master 3.7 Add fix for missing is_pod definition and additionally fix packaging for nativesdk PACKAGE_DEBUG_SPLIT_STYLE_class-nativesdk = "debug-without-src" Fixes errors like ERROR: debugedit failed with exit code 256 (cmd was '/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/sysr oots/x86_64-linux/usr/lib/rpm/bin/debugedit' -b '/mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/work/x86 _64-nativesdk-angstromsdk-linux' -d '/usr/src/debug' -i -l '/mnt/home/kraj/work/angstrom/build/tmp-angstrom-gli bc/work/x86_64-nativesdk-angstromsdk-linux/nativesdk-clang/3.7.0-r0/debugsources.list' '/mnt/home/kraj/work/ang strom/build/tmp-angstrom-glibc/work/x86_64-nativesdk-angstromsdk-linux/nativesdk-clang/3.7.0-r0/package/usr/loc al/oecore-x86_64/sysroots/x86_64-angstromsdk-linux/usr/lib/libLTO.so.3.7.0svn'): /mnt/home/kraj/work/angstrom/build/tmp-angstrom-glibc/sysroots/x86_64-linux/usr/lib/rpm/bin/debugedit: canonica lization unexpectedly shrank by one character see http://lists.openembedded.org/pipermail/openembedded-core/2013-April/077746.html Signed-off-by: Khem Raj --- ...t-dynamic-linker-when-hard-float-ABI-is-e.patch | 20 ++++++++--------- ...de-type_traits-for-getting-is_pod-defined.patch | 26 ++++++++++++++++++++++ recipes-devtools/clang/clang_git.bb | 6 +++-- 3 files changed, 40 insertions(+), 12 deletions(-) create mode 100644 recipes-devtools/clang/clang/0001-include-type_traits-for-getting-is_pod-defined.patch diff --git a/recipes-devtools/clang/clang/0001-Choose-right-dynamic-linker-when-hard-float-ABI-is-e.patch b/recipes-devtools/clang/clang/0001-Choose-right-dynamic-linker-when-hard-float-ABI-is-e.patch index 17f5fde..e0cc977 100644 --- a/recipes-devtools/clang/clang/0001-Choose-right-dynamic-linker-when-hard-float-ABI-is-e.patch +++ b/recipes-devtools/clang/clang/0001-Choose-right-dynamic-linker-when-hard-float-ABI-is-e.patch @@ -1,4 +1,4 @@ -From 19a19feb6bd13586463597a826bf6cda9af0e05b Mon Sep 17 00:00:00 2001 +From c02522a155fdc03f293d58d444c4f030f62d04d6 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 8 Jul 2015 23:25:36 -0700 Subject: [PATCH] Choose right dynamic linker when hard float ABI is expressed @@ -14,27 +14,27 @@ Signed-off-by: Khem Raj 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/clang/lib/Driver/Tools.cpp b/tools/clang/lib/Driver/Tools.cpp -index 756600e..89a9a64 100644 +index 38c3d5c..cd3a097 100644 --- a/tools/clang/lib/Driver/Tools.cpp +++ b/tools/clang/lib/Driver/Tools.cpp -@@ -7715,13 +7715,15 @@ static std::string getLinuxDynamicLinker(const ArgList &Args, +@@ -7834,13 +7834,15 @@ static std::string getLinuxDynamicLinker(const ArgList &Args, + else if (Arch == llvm::Triple::aarch64_be) return "/lib/ld-linux-aarch64_be.so.1"; - else if (ToolChain.getArch() == llvm::Triple::arm || - ToolChain.getArch() == llvm::Triple::thumb) { + else if (Arch == llvm::Triple::arm || Arch == llvm::Triple::thumb) { - if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF) + if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF || -+ tools::arm::getARMFloatABI(ToolChain.getDriver(), Args, ToolChain.getTriple()) == "hard") ++ tools::arm::getARMFloatABI(ToolChain.getDriver(), Args, ToolChain.getTriple()) == "hard") return "/lib/ld-linux-armhf.so.3"; else return "/lib/ld-linux.so.3"; - } else if (ToolChain.getArch() == llvm::Triple::armeb || - ToolChain.getArch() == llvm::Triple::thumbeb) { + } else if (Arch == llvm::Triple::armeb || Arch == llvm::Triple::thumbeb) { + // TODO: check which dynamic linker name. - if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF) + if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF || + tools::arm::getARMFloatABI(ToolChain.getDriver(), Args, ToolChain.getTriple()) == "hard") - return "/lib/ld-linux-armhf.so.3"; /* TODO: check which dynamic linker name. */ + return "/lib/ld-linux-armhf.so.3"; else - return "/lib/ld-linux.so.3"; /* TODO: check which dynamic linker name. */ + return "/lib/ld-linux.so.3"; -- 2.1.4 diff --git a/recipes-devtools/clang/clang/0001-include-type_traits-for-getting-is_pod-defined.patch b/recipes-devtools/clang/clang/0001-include-type_traits-for-getting-is_pod-defined.patch new file mode 100644 index 0000000..2faecf3 --- /dev/null +++ b/recipes-devtools/clang/clang/0001-include-type_traits-for-getting-is_pod-defined.patch @@ -0,0 +1,26 @@ +From 1e1f29a87f36eb89e37f2e349a63371e6eefc16c Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 10 Jul 2015 16:41:16 -0700 +Subject: [PATCH] include for getting is_pod defined + +fixed build errors e.g. +lib/MC/MCSchedule.cpp:18:15: error: 'is_pod' is not a member of 'std' +--- + lib/MC/MCSchedule.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/lib/MC/MCSchedule.cpp b/lib/MC/MCSchedule.cpp +index 0aa20f9..b19d917 100644 +--- a/lib/MC/MCSchedule.cpp ++++ b/lib/MC/MCSchedule.cpp +@@ -11,6 +11,7 @@ + // + //===----------------------------------------------------------------------===// + ++#include + #include "llvm/MC/MCSchedule.h" + + using namespace llvm; +-- +2.1.4 + diff --git a/recipes-devtools/clang/clang_git.bb b/recipes-devtools/clang/clang_git.bb index 55cd4bb..75a4f8e 100644 --- a/recipes-devtools/clang/clang_git.bb +++ b/recipes-devtools/clang/clang_git.bb @@ -16,10 +16,11 @@ 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 \ file://0001-Choose-right-dynamic-linker-when-hard-float-ABI-is-e.patch \ + file://0001-include-type_traits-for-getting-is_pod-defined.patch \ " -SRCREV_llvm = "08709687efd951d1d6c3ad5f8d518129c068c737" -SRCREV_clang = "75805b9d66425462798c88596376b14d69193429" +SRCREV_llvm = "d819fac2945672f211b0ef8fdedffa2e124b46e2" +SRCREV_clang = "22ea838f1b9234b1876fa0220d7a76bcb2a1b27a" SRCREV_FORMAT = "llvm_clang" @@ -109,5 +110,6 @@ do_install_append_class-nativesdk () { test -n "`file $f|grep -i ELF`" && ${STRIP} $f done } +PACKAGE_DEBUG_SPLIT_STYLE_class-nativesdk = "debug-without-src" BBCLASSEXTEND = "native nativesdk" -- cgit v1.2.3-54-g00ecf