diff --git a/sys-devel/llvm/llvm-3.9.0~git.recipe b/sys-devel/llvm/llvm-3.9.0~git.recipe index 25c7d81ec..ecfec5d3c 100644 --- a/sys-devel/llvm/llvm-3.9.0~git.recipe +++ b/sys-devel/llvm/llvm-3.9.0~git.recipe @@ -32,18 +32,18 @@ HOMEPAGE="http://www.llvm.org/" COPYRIGHT="2003-2014 University of Illinois at Urbana-Champaign" LICENSE="UIUC" REVISION="1" -llvmSrcGitRev="78886ec7e2107e36add101314798cf2e308cdc24" -clangSrcGitRev="020f6f6bdd62ba4c3be4c435bb223c3638339d1a" -clangToolsExtraSrcGitRev="56faca015513475b13b2784fb82d05563fe72cec" +llvmSrcGitRev="4bd700523785848b3ee9c50da1b9fde52057be74" +clangSrcGitRev="37b403d7009e66f7f040faffd979122acabaa693" +clangToolsExtraSrcGitRev="75181d5ed02edc05452fd849bfdb52b3a132872f" SOURCE_URI="https://github.com/llvm-mirror/llvm/archive/$llvmSrcGitRev.tar.gz" SOURCE_URI_2="https://github.com/llvm-mirror/clang/archive/$clangSrcGitRev.tar.gz" SOURCE_URI_3="https://github.com/llvm-mirror/clang-tools-extra/archive/$clangToolsExtraSrcGitRev.tar.gz" SOURCE_FILENAME="llvm-${llvmSrcGitRev}.tar.gz" SOURCE_FILENAME_2="clang-${clangSrcGitRev}.tar.gz" SOURCE_FILENAME_3="clang-tools-extra-${clangToolsExtraSrcGitRev}.tar.gz" -CHECKSUM_SHA256="9594308ff2a9f8f989f6835cdf98a11886564f169a984a33d0200c813b090ec8" -CHECKSUM_SHA256_2="77c8bef243614dc1bbf1760249ff6a48fbcfafa9d4d05074b7082a3fb85e8957" -CHECKSUM_SHA256_3="c7e91b48866d136245849dcd4a8e9d3ca2743cbc6582b634f57a06db098bc8fd" +CHECKSUM_SHA256="2baf3ef1ce752bc10d806f53302c0cb73a47bcd38f06d81c70a8b97c76852fe5" +CHECKSUM_SHA256_2="3ee7b50ca756bea61de6f23905da04a4865d28829053a274daa013990187b245" +CHECKSUM_SHA256_3="5dbf67dbb0720056ea29f6b585ee6fa18c1d2f2632437f4f75e6a5a93791dc18" SOURCE_DIR="llvm-$llvmSrcGitRev" SOURCE_DIR_2="clang-$clangSrcGitRev" SOURCE_DIR_3="clang-tools-extra-$clangToolsExtraSrcGitRev" diff --git a/sys-devel/llvm/patches/clang-3.9.0~git.patchset b/sys-devel/llvm/patches/clang-3.9.0~git.patchset index ca453c01b..70f36cc38 100644 --- a/sys-devel/llvm/patches/clang-3.9.0~git.patchset +++ b/sys-devel/llvm/patches/clang-3.9.0~git.patchset @@ -1,4 +1,4 @@ -From beedec1421bd9f6b0b47c737cc8645c4ac846fc9 Mon Sep 17 00:00:00 2001 +From 459637c4df935cb42b44a2c2ba2588f1cc1aedc8 Mon Sep 17 00:00:00 2001 From: Alexander von Gluck IV Date: Sun, 1 Feb 2015 15:13:57 +0000 Subject: haiku: fix header search paths @@ -12,7 +12,7 @@ index 26bab0d..6066d2b 100644 +++ b/lib/Frontend/InitHeaderSearch.cpp @@ -267,38 +267,41 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple, } - + case llvm::Triple::Haiku: - AddPath("/boot/common/include", System, false); - AddPath("/boot/develop/headers/os", System, false); @@ -84,11 +84,11 @@ index 26bab0d..6066d2b 100644 break; case llvm::Triple::RTEMS: break; --- +-- 2.2.2 -From 4d40e94790e30c03090121b10e178d5f73598ecb Mon Sep 17 00:00:00 2001 +From 0115888596994260188bcb7cfe46ac43bc2fb138 Mon Sep 17 00:00:00 2001 From: Jerome Duval Date: Tue, 22 Dec 2015 22:07:06 +0000 Subject: don't include c++ headers in C include search paths. @@ -116,7 +116,7 @@ index 902338b..a9a11dc 100644 @@ -2992,6 +2992,34 @@ SanitizerMask CloudABI::getDefaultSanitizers() const { return SanitizerKind::SafeStack; } - + +/// Haiku - Haiku tool chain which can call as(1) and ld(1) directly. + +Haiku::Haiku(const Driver &D, const llvm::Triple& Triple, const ArgList &Args) @@ -146,7 +146,7 @@ index 902338b..a9a11dc 100644 +} + /// OpenBSD - OpenBSD tool chain which can call as(1) and ld(1) directly. - + OpenBSD::OpenBSD(const Driver &D, const llvm::Triple &Triple, diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h index e799217..6c4f03b 100644 @@ -155,7 +155,7 @@ index e799217..6c4f03b 100644 @@ -678,6 +678,18 @@ private: void findGccLibDir(); }; - + +class LLVM_LIBRARY_VISIBILITY Haiku : public Generic_ELF { +public: + Haiku(const Driver &D, const llvm::Triple &Triple, @@ -184,24 +184,24 @@ index 6066d2b..d8f0881 100644 AddPath("/boot/system/develop/headers/3rdparty", System, false); AddPath("/boot/system/develop/headers/bsd", System, false); AddPath("/boot/system/develop/headers/glibc", System, false); --- +-- 2.2.2 -From 3129de52da2ecdc2fe014e0d2240d81fe6b05d7c Mon Sep 17 00:00:00 2001 +From 8467d9e526766e7d41215ea2880fa79418798c3c Mon Sep 17 00:00:00 2001 From: Jerome Duval Date: Thu, 14 Jan 2016 19:19:14 +0000 Subject: add Haiku target info for x86_64 diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp -index be1afce..fd3c0ba 100644 +index 7639b04..1713133 100644 --- a/lib/Basic/Targets.cpp +++ b/lib/Basic/Targets.cpp -@@ -377,6 +377,29 @@ public: - : OSTargetInfo(Triple, CGOpts) {} +@@ -375,6 +375,29 @@ public: + : OSTargetInfo(Triple, Opts) {} }; - + +// Haiku Target +template +class HaikuTargetInfo : public OSTargetInfo { @@ -214,8 +214,8 @@ index be1afce..fd3c0ba 100644 + DefineStd(Builder, "unix", Opts); + } +public: -+ HaikuTargetInfo(const llvm::Triple &Triple, const CodeGenOptions &CGOpts) -+ : OSTargetInfo(Triple, CGOpts) { ++ HaikuTargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts) ++ : OSTargetInfo(Triple, Opts) { + this->SizeType = TargetInfo::UnsignedLong; + this->IntPtrType = TargetInfo::SignedLong; + this->PtrDiffType = TargetInfo::SignedLong; @@ -228,23 +228,21 @@ index be1afce..fd3c0ba 100644 // Minix Target template class MinixTargetInfo : public OSTargetInfo { -@@ -3993,22 +4016,15 @@ public: +@@ -3983,21 +4006,15 @@ public: }; - + // x86-32 Haiku target -class HaikuX86_32TargetInfo : public X86_32TargetInfo { +class HaikuX86_32TargetInfo : public HaikuTargetInfo { public: -- HaikuX86_32TargetInfo(const llvm::Triple &Triple, -- const CodeGenOptions &CGOpts) -- : X86_32TargetInfo(Triple, CGOpts) { + HaikuX86_32TargetInfo(const llvm::Triple &Triple, const TargetOptions &Opts) +- : X86_32TargetInfo(Triple, Opts) { - SizeType = UnsignedLong; - IntPtrType = SignedLong; - PtrDiffType = SignedLong; - ProcessIDType = SignedLong; - this->TLSSupported = false; -+ HaikuX86_32TargetInfo(const llvm::Triple &Triple, const CodeGenOptions &CGOpts) -+ : HaikuTargetInfo(Triple, CGOpts) { ++ : HaikuTargetInfo(Triple, Opts) { } void getTargetDefines(const LangOptions &Opts, MacroBuilder &Builder) const override { @@ -254,30 +252,30 @@ index be1afce..fd3c0ba 100644 - Builder.defineMacro("__HAIKU__"); } }; - -@@ -4783,7 +4799,7 @@ public: + +@@ -4770,7 +4787,7 @@ public: } else if (Feature == "+dsp") { DSP = 1; } else if (Feature == "+fp-only-sp") { -- HW_FP_remove |= HW_FP_DP; +- HW_FP_remove |= HW_FP_DP; + HW_FP_remove |= HW_FP_DP; } else if (Feature == "+strict-align") { Unaligned = 0; } else if (Feature == "+fp16") { -@@ -8238,6 +8254,8 @@ static TargetInfo *AllocateTarget(const llvm::Triple &Triple, - return new MicrosoftX86_64TargetInfo(Triple, CGOpts); +@@ -8225,6 +8242,8 @@ static TargetInfo *AllocateTarget(const llvm::Triple &Triple, + return new MicrosoftX86_64TargetInfo(Triple, Opts); } } + case llvm::Triple::Haiku: -+ return new HaikuTargetInfo(Triple, CGOpts); ++ return new HaikuTargetInfo(Triple, Opts); case llvm::Triple::NaCl: - return new NaClTargetInfo(Triple, CGOpts); + return new NaClTargetInfo(Triple, Opts); case llvm::Triple::PS4: --- +-- 2.2.2 -From fb95b90fc6392ab2fdeffdf6920d2105731a98e9 Mon Sep 17 00:00:00 2001 +From 7e065cba77bf166d2dfabf15943e65f408922fe0 Mon Sep 17 00:00:00 2001 From: Jerome Duval Date: Thu, 7 Apr 2016 18:30:52 +0000 Subject: add a test for haiku driver. @@ -290,7 +288,7 @@ index a9a11dc..0bd3251 100644 +++ b/lib/Driver/ToolChains.cpp @@ -3006,6 +3006,10 @@ void Haiku::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs, return; - + switch (GetCXXStdlibType(DriverArgs)) { + case ToolChain::CST_Libcxx: + addSystemInclude(DriverArgs, CC1Args, @@ -317,6 +315,6 @@ index 0000000..9591739 +// CHECK-X86: clang{{.*}}" "-cc1" "-triple" "i586-pc-haiku" +// CHECK-X86: gcc{{.*}}" "-o" "a.out" "{{.*}}.o" + --- +-- 2.2.2 diff --git a/sys-devel/llvm/patches/llvm-3.9.0~git.patchset b/sys-devel/llvm/patches/llvm-3.9.0~git.patchset index 1a43b5ac6..261046283 100644 --- a/sys-devel/llvm/patches/llvm-3.9.0~git.patchset +++ b/sys-devel/llvm/patches/llvm-3.9.0~git.patchset @@ -1,4 +1,4 @@ -From 20048e8134f8b14aa1ebed173990600476a31706 Mon Sep 17 00:00:00 2001 +From 2f0a97bebdd47be657fd459e09ab632fc1d4d141 Mon Sep 17 00:00:00 2001 From: Jerome Duval Date: Wed, 20 Jan 2016 21:13:28 +0000 Subject: llvm-config: use /develop/headers instead of /include @@ -45,26 +45,3 @@ index 94d426b..2942242 100644 -- 2.2.2 - -From c7c19a37f2c7bac448f2a9c290e8104090e3b171 Mon Sep 17 00:00:00 2001 -From: Jerome Duval -Date: Wed, 24 Feb 2016 22:46:03 +0000 -Subject: patch cmake build for Haiku. - - -diff --git a/cmake/modules/CheckAtomic.cmake b/cmake/modules/CheckAtomic.cmake -index 551de6a..d43fd7b 100644 ---- a/cmake/modules/CheckAtomic.cmake -+++ b/cmake/modules/CheckAtomic.cmake -@@ -32,8 +32,6 @@ if (LLVM_COMPILER_IS_GCC_COMPATIBLE) - if (NOT HAVE_CXX_ATOMICS_WITH_LIB) - message(FATAL_ERROR "Host compiler must support std::atomic!") - endif() -- else() -- message(FATAL_ERROR "Host compiler appears to require libatomic, but cannot find it.") - endif() - endif() - endif() --- -2.2.2 -