mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-23 16:49:10 -07:00
sys-devel/llvm: Drop 3.3
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
DIST cfe-3.3.src.tar.gz 9425539 SHA256 b1b55de4ab3a57d3e0331a83e0284610191c77d924e3446498d9113d08dfb996 SHA512 06773f43f7d3529f06edb029f7de398f06a700a0f2476e00c4727e70c291028221bfac23625dfd2c220d6ac91a21670848187a934b99a21801c695127371afcc WHIRLPOOL 8b97b527f19015dd3283b9e174615170e639793f64c635ccc4ee4d8216f8de759fd0121a8ef3513fa1c6ad19b31aa3529091ffb44a01ee858edfef400881596a
|
||||
DIST cfe-3.4.2.src.tar.gz 10612313 SHA256 5ba6f5772f8d00f445209356a7daf83c5bca2da5acd10de517ad2359ae95bc10 SHA512 e01fa8e312e9b3b7b3cb572ac21349161aaa50078ecfe7bded273b75db4a0c44acde524f8fdfcbeec54c61eeeb8339e9917d1f205a8fda18e34fe7ccbe89c36d WHIRLPOOL 153208b1a60bb5fbe92a7162cb26bbe70d591e7db9dcf06fcd54efc539bbff0403ec88e64236969c9f256e5586bc333840bd6178fd158577d6fe228d9edd4dcd
|
||||
DIST cfe-3.5.0.src.tar.xz 8233432 SHA256 fc80992e004b06f6c7afb612de1cdaa9ac9d25811c55f94fcf7331d9b81cdb8b SHA512 b26a5e2cd81c150607c23b22fafc0d9c7f12b83b45e476b8e75bf5e99d42be7c98ffeac7349df664f01b00900864a01429860b298e48961861377a4b2daf3e49 WHIRLPOOL 5dd8b6fe97933b74f1668b1d753c16cd3bcd05ccf72aac1283aa449caf93f5ba88ae79e7668f7e79b554e1421549a87af21c86cf92657c1b4d77744165718ce7
|
||||
DIST cfe-3.5.2.src.tar.xz 8268008 SHA256 4feb575f74fb3a74b6245400460230141bf610f235ef3a25008cfe6137828620 SHA512 2ad9a7daa8e62cdbf47b001aa6b937a06ae7e6396dcd1832797e2d98036522443ccfca9f1253e16d531a99d1edf237fcd2b457c55491ff68ca4534a2396ca52f WHIRLPOOL 51789ba2a3193d404b26d26b999fc47f1bc4b56b45048078cc51e4ff5c31d834d360ee0c2d16096c060f85acab6de9055dc375569348ae3307e4b280406f2d9e
|
||||
@@ -11,7 +10,6 @@ DIST clang-tools-extra-3.5.2.src.tar.xz 215804 SHA256 f21a374d74b194d8c984546266
|
||||
DIST clang-tools-extra-3.6.2.src.tar.xz 248624 SHA256 6a0ec627d398f501ddf347060f7a2ccea4802b2494f1d4fd7bda3e0442d04feb SHA512 1b7710a7deee30cefb6a3b4edb026a96d8935a0c6f3056ccdb7a45564d10baf01a4f6722ae853ad9a3bad17e8de32a3c0ec99c5cf6144647a5e182809d403f7a WHIRLPOOL 3dc8888c302bac84f53b673784dec092a2c59ea2985d9983e87f057b9aa7b5d3e34cf13d2b0f1f60ea44f342b8167377204a510036872a087037cf02335c19cd
|
||||
DIST clang-tools-extra-3.7.1.src.tar.xz 277476 SHA256 4a91edaccad1ce984c7c49a4a87db186b7f7b21267b2b03bcf4bd7820715bc6b SHA512 06e2db8af75f1e6ee82da6ee723b5256b9e3f6ba196428f18944ec02d07df26d04329ca8824a083c5f25274ce7e3469aa75e3a29ccfbdb6375524841d65e3ad7 WHIRLPOOL 2c1a459d6aff6bc24d5c8d38120ab665adbef61394050781a9707d50e83dae1b4997ed19459086e9bd7f6dd38a09c295d135e33515c947d64a7f1ab714ad8beb
|
||||
DIST clang-tools-extra-3.8.0.src.tar.xz 334072 SHA256 afbda810106a6e64444bc164b921be928af46829117c95b996f2678ce4cb1ec4 SHA512 f0e593a76df5485f403079bd2fbb4e51c3d1c3fc4e63e2c2910894e8f2a7c14b47265435f3c52f035fb3fe2f595812d0f9869235296157a39c071a23e6a8b178 WHIRLPOOL 4928669a3c019eebe0a98ee72e25ef70ddf3c1d29e6a4aa18e408276b2a870069460c39e0e8fbe960d8d56127bb6951433d1fd89015d192951004e527b065ec9
|
||||
DIST compiler-rt-3.3.src.tar.gz 1568034 SHA256 0e2f3180d6316e6c43f064fdd406c5c6515e682c5f31c57c28335b68c7525423 SHA512 3e86aa8ab9810b4fbac54a40fc93a717a55c642520858c0db215a5324c1e495b4d8fcec9620251cca8e4e5f9afa34bc14364d7f785880a0700469d0201827929 WHIRLPOOL fcfd06bc860dfd901a7576cd4309f863e9d4363e36ab4c67e9e08fe3c8a37d627ee95eb96b9ed53eb6047dec06e73181b3c3e1555b1b49f1e893e6382f21ddc1
|
||||
DIST compiler-rt-3.4.src.tar.gz 1858593 SHA256 f37c89b1383ce462d47537a0245ac798600887a9be9f63073e16b79ed536ab5c SHA512 70efffaf12ff7c15befa87ce808489c6f6b6eb421d0ab5d8ecd525239efc8aab850c7ed34b31a993ff5e499657b72598619945cc4461fe3e5359e9a94aaac0c8 WHIRLPOOL ad558b5877a01e476d30d2757959ab04be0c385b2fe3442bcc578bf36c6f3214cd78b4adda24fcb1f3b2b84353db213b82e8d7d4c40e66c3f57aed3a49322dbc
|
||||
DIST compiler-rt-3.5.0.src.tar.xz 1088352 SHA256 a4b3e655832bf8d9a357ea2c771db347237460e131988cbb96cda40ff39a8136 SHA512 862cce2d6b398bd1a8399496a547e6ab976a31f676528beebfbea5fd7dc54aa72e1c25deefa12f6167096521eba74090565b0168806451da02ddac04e922fc48 WHIRLPOOL 248acf997d70d7904aa79bf83e0c02ba4e5f8c2812c03f44a8e1e31b845a654f250c09ec6a123f9245d0db8713e8cc5a4087b9ce785af4f5eb7e55d9dbd362a2
|
||||
DIST compiler-rt-3.5.2.src.tar.xz 1093000 SHA256 542d7aadd21e7fe35bea0a7912bc965f08a1a566746cebcca76f96dcfeb74dc3 SHA512 319a8a1dbe07eb4f1fcccfe79a1fa445f348fb854a441500e89fa0a128e45716b65d06347f19a63de32e9294cd2331e914ae0d5fe8224f0b2452c39b79ac96ff WHIRLPOOL 6e9286c56a60a515006c8232ca01622ae844185a5f31fb49bce632868862c5e560619f1c45da66878b5322a764f91a284cd296e9f13105d6f74e055a17321d93
|
||||
@@ -20,8 +18,6 @@ DIST compiler-rt-3.7.1.src.tar.xz 1181772 SHA256 9d4769e4a927d3824bcb7a9c82b01e3
|
||||
DIST compiler-rt-3.8.0.src.tar.xz 1270128 SHA256 c8d3387e55f229543dac1941769120f24dc50183150bf19d1b070d53d29d56b0 SHA512 21ba548b6b35a79aa291adba7f83db14c33855fa3cf376f2ad75bd22bb454501b74f0ea4f71bc03a864135862c800b101d3cd790e54e687c2a3459c64218b9c3 WHIRLPOOL 63ceb498fbc4083afda4f4aa12e44b8a6d2b58408edacd7d578d3cd6a63f0c1074e453b950fae4fee51690b3f79700e7752b6ceb3e6980c88541314993ce71a5
|
||||
DIST lldb-3.7.1.src.tar.xz 10650524 SHA256 9a0bc315ef55f44c98cdf92d064df0847f453ed156dd0ef6a87e04f5fd6a0e01 SHA512 d2d3e1052026edd6ef9113ff5362acb4a32cef598098b4031c35e389301130ef2e1bda594f30de4d65c9fdc0beaecdd35afcf36676eb540baad34015aca294d1 WHIRLPOOL bba9c700788f0cf86ac1de51383a223e1c92f724719cdd327d83189cb77714c1e10fb78569aeed3b3c639062a3410bb114f646a271fd0d9e8c9a8e45d090330a
|
||||
DIST lldb-3.8.0.src.tar.xz 10929768 SHA256 e3f68f44147df0433e7989bf6ed1c58ff28d7c68b9c47553cb9915f744785a35 SHA512 a491209ae12b0c7d938ebd94362396a50922326ed24ed11f71b1f19b61274a34a92d2bd46857b44081e7fa3e6d0a641d148bd4022f8edf71f80ff2aa7a55ebef WHIRLPOOL c498c22acab867419143745ce0212c70bdfc141dbae19ab53221908eba7961aae6a029cbad01b8409e6fbc187550141ed87f32366dd847ac57754891fbbc4049
|
||||
DIST llvm-3.3-manpages.tar.bz2 27098 SHA256 46bb22d63d5fe7dd04e1a7bb7e16c03d93f2ed51d31540cfb9d97ed70059aa77 SHA512 6f24b66b13025d0606908f91ad9b4fc6de1b4aac2d97d261f6b989065476cf153d2f84792f8dd4972b95fb1a45a3931c328df3bcf8ce5ab21170a7a912a39783 WHIRLPOOL 31b9c3635b698f404b75b87c7891b4b6be9cbeb6062bcb6fba5476b0b3069a486ba60c27ab2b12b8a2da9404f666617162041860f023951050a9fc4c7d27748a
|
||||
DIST llvm-3.3.src.tar.gz 13602421 SHA256 68766b1e70d05a25e2f502e997a3cb3937187a3296595cf6e0977d5cd6727578 SHA512 1b7f7c5e907a68f642dcbe48fdff9585cb1504022bc9d386f310ebe5d25103d0d5f7cf0abf19e0e3fd666970160a98c90033754e2b79b2fac0cf866c984f8038 WHIRLPOOL a89c0b470fde562a3402e7878b91bc0573d433ca0a60e62c9c46946d7948a4fb657b116b6bac032555e29c70d82c751876adb398fe240f5c8d0a9a2378ce1866
|
||||
DIST llvm-3.4-manpages.tar.bz2 33753 SHA256 dc2616104cf333dd9ef56b2d31f9a36e81303e2c5756ff8bc221e05b46f7e1cb SHA512 8e438a9392c9b896ccb2b1460a8f57ffa01633e3a6bba61e2bf2f718d970ff96c17d63b0bc0d4da1162e1d1dc4cb9b2a9e9a14a722e8a5b5d2f205f037ae665d WHIRLPOOL 1c037a9972442937f84bc3147d77d4bbc6d6c0812c3025f3107c2ee5f6259afab990f6e1bca564237fdca8089e2372df4b7ca45cbdea686fbf891f92d1bfbbe6
|
||||
DIST llvm-3.4.2.src.tar.gz 15938155 SHA256 17038d47069ad0700c063caed76f0c7259628b0e79651ce2b540d506f2f1efd7 SHA512 6c1453f7d9d9110257db3574cc4f6227fed8938705cbb09851ac09a868089b48f1556a1b6e758aff6d97520b08b5605d3ed20411ad9dd22cdc573d62176905f0 WHIRLPOOL f8b4d5167469e6f350ec41aede04e7b756e18f3d8e78b3270beb5791310a7b9b13c69e57c8bcfefbd0a78efc0c40e3b75a9a158eac72c025b7c77146e8dfaf7c
|
||||
DIST llvm-3.5.0-manpages.tar.bz2 35314 SHA256 724e752a60016dce8cc536658906d3646c600e977374e0ea692a5d0fe2d4a021 SHA512 d99d6096d7f21a81923297584fe5eeb23e0d83d4538fe376615c92fffc8aff3189999f7ab3c537b5aa5d6bc2c22c53eb05717d48c7ab99c42315b8665bac62c3 WHIRLPOOL 68ced06ee6678c5333c662eb1cc0da744c5a184b12dd059c1b77ec200b1d3cc231f270b9d9b6e177d728776894277b3f9061338aa55620c90474eb97915b7819
|
||||
|
||||
@@ -1,90 +0,0 @@
|
||||
Backport handling of 'g++-vX.Y' header location.
|
||||
|
||||
Fixes: https://bugs.gentoo.org/show_bug.cgi?id=487584
|
||||
---
|
||||
tools/clang/lib/Driver/ToolChains.cpp | 20 ++++++++++++--------
|
||||
tools/clang/lib/Driver/ToolChains.h | 3 +++
|
||||
2 files changed, 15 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/tools/clang/lib/Driver/ToolChains.cpp b/tools/clang/lib/Driver/ToolChains.cpp
|
||||
index 7c9e9c0..e38d42d 100644
|
||||
--- a/tools/clang/lib/Driver/ToolChains.cpp
|
||||
+++ b/tools/clang/lib/Driver/ToolChains.cpp
|
||||
@@ -917,17 +917,19 @@ Darwin_Generic_GCC::ComputeEffectiveClangTriple(const ArgList &Args,
|
||||
/// This is the primary means of forming GCCVersion objects.
|
||||
/*static*/
|
||||
Generic_GCC::GCCVersion Linux::GCCVersion::Parse(StringRef VersionText) {
|
||||
- const GCCVersion BadVersion = { VersionText.str(), -1, -1, -1, "" };
|
||||
+ const GCCVersion BadVersion = { VersionText.str(), -1, -1, -1, "", "", "" };
|
||||
std::pair<StringRef, StringRef> First = VersionText.split('.');
|
||||
std::pair<StringRef, StringRef> Second = First.second.split('.');
|
||||
|
||||
- GCCVersion GoodVersion = { VersionText.str(), -1, -1, -1, "" };
|
||||
+ GCCVersion GoodVersion = { VersionText.str(), -1, -1, -1, "", "", "" };
|
||||
if (First.first.getAsInteger(10, GoodVersion.Major) ||
|
||||
GoodVersion.Major < 0)
|
||||
return BadVersion;
|
||||
+ GoodVersion.MajorStr = First.first.str();
|
||||
if (Second.first.getAsInteger(10, GoodVersion.Minor) ||
|
||||
GoodVersion.Minor < 0)
|
||||
return BadVersion;
|
||||
+ GoodVersion.MinorStr = Second.first.str();
|
||||
|
||||
// First look for a number prefix and parse that if present. Otherwise just
|
||||
// stash the entire patch string in the suffix, and leave the number
|
||||
@@ -945,7 +947,7 @@ Generic_GCC::GCCVersion Linux::GCCVersion::Parse(StringRef VersionText) {
|
||||
if (PatchText.slice(0, EndNumber).getAsInteger(10, GoodVersion.Patch) ||
|
||||
GoodVersion.Patch < 0)
|
||||
return BadVersion;
|
||||
- GoodVersion.PatchSuffix = PatchText.substr(EndNumber).str();
|
||||
+ GoodVersion.PatchSuffix = PatchText.substr(EndNumber);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2590,11 +2592,11 @@ void Linux::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
|
||||
// equivalent to '/usr/include/c++/X.Y' in almost all cases.
|
||||
StringRef LibDir = GCCInstallation.getParentLibPath();
|
||||
StringRef InstallDir = GCCInstallation.getInstallPath();
|
||||
- StringRef Version = GCCInstallation.getVersion().Text;
|
||||
StringRef TripleStr = GCCInstallation.getTriple().str();
|
||||
+ const GCCVersion &Version = GCCInstallation.getVersion();
|
||||
|
||||
if (addLibStdCXXIncludePaths(LibDir.str() + "/../include",
|
||||
- "/c++/" + Version.str(),
|
||||
+ "/c++/" + Version.Text,
|
||||
TripleStr,
|
||||
GCCInstallation.getMultiarchSuffix(),
|
||||
DriverArgs, CC1Args))
|
||||
@@ -2602,10 +2604,12 @@ void Linux::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
|
||||
|
||||
const std::string IncludePathCandidates[] = {
|
||||
// Gentoo is weird and places its headers inside the GCC install, so if the
|
||||
- // first attempt to find the headers fails, try this pattern.
|
||||
- InstallDir.str() + "/include/g++-v4",
|
||||
+ // first attempt to find the headers fails, try these patterns.
|
||||
+ InstallDir.str() + "/include/g++-v" + Version.MajorStr + "." +
|
||||
+ Version.MinorStr,
|
||||
+ InstallDir.str() + "/include/g++-v" + Version.MajorStr,
|
||||
// Android standalone toolchain has C++ headers in yet another place.
|
||||
- LibDir.str() + "/../" + TripleStr.str() + "/include/c++/" + Version.str(),
|
||||
+ LibDir.str() + "/../" + TripleStr.str() + "/include/c++/" + Version.Text,
|
||||
// Freescale SDK C++ headers are directly in <sysroot>/usr/include/c++,
|
||||
// without a subdirectory corresponding to the gcc version.
|
||||
LibDir.str() + "/../include/c++",
|
||||
diff --git a/tools/clang/lib/Driver/ToolChains.h b/tools/clang/lib/Driver/ToolChains.h
|
||||
index 3afd8dd..04cf467 100644
|
||||
--- a/tools/clang/lib/Driver/ToolChains.h
|
||||
+++ b/tools/clang/lib/Driver/ToolChains.h
|
||||
@@ -48,6 +48,9 @@ protected:
|
||||
/// \brief The parsed major, minor, and patch numbers.
|
||||
int Major, Minor, Patch;
|
||||
|
||||
+ /// \brief The text of the parsed major, and major+minor versions.
|
||||
+ std::string MajorStr, MinorStr;
|
||||
+
|
||||
/// \brief Any textual suffix on the patch number.
|
||||
std::string PatchSuffix;
|
||||
|
||||
--
|
||||
1.8.3.2
|
||||
|
||||
@@ -1,71 +0,0 @@
|
||||
From 1a539a8868070e49966c6b5f5e4b9f1257acd7dc Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <gentoo@mgorny.alt.pl>
|
||||
Date: Fri, 19 Jul 2013 10:23:57 +0200
|
||||
Subject: [PATCH] clang gentoo install
|
||||
|
||||
---
|
||||
tools/clang/lib/Driver/Tools.cpp | 4 ++--
|
||||
tools/clang/tools/scan-build/scan-build | 4 ++--
|
||||
tools/clang/tools/scan-view/scan-view | 2 +-
|
||||
3 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/tools/clang/lib/Driver/Tools.cpp b/tools/clang/lib/Driver/Tools.cpp
|
||||
index e014980..6e60513 100644
|
||||
--- a/tools/clang/lib/Driver/Tools.cpp
|
||||
+++ b/tools/clang/lib/Driver/Tools.cpp
|
||||
@@ -219,7 +219,7 @@ static void addProfileRT(const ToolChain &TC, const ArgList &Args,
|
||||
// libprofile_rt.so. We used to use the -l:libprofile_rt.a syntax, but that is
|
||||
// not supported by old linkers.
|
||||
std::string ProfileRT =
|
||||
- std::string(TC.getDriver().Dir) + "/../lib/libprofile_rt.a";
|
||||
+ "-l:libprofile_rt.a";
|
||||
|
||||
CmdArgs.push_back(Args.MakeArgString(ProfileRT));
|
||||
}
|
||||
@@ -6177,7 +6177,7 @@ void gnutools::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
||||
// forward.
|
||||
if (D.IsUsingLTO(Args) || Args.hasArg(options::OPT_use_gold_plugin)) {
|
||||
CmdArgs.push_back("-plugin");
|
||||
- std::string Plugin = ToolChain.getDriver().Dir + "/../lib/LLVMgold.so";
|
||||
+ std::string Plugin = ToolChain.getDriver().Dir + "/../@libdir@/LLVMgold.so";
|
||||
CmdArgs.push_back(Args.MakeArgString(Plugin));
|
||||
|
||||
// Try to pass driver level flags relevant to LTO code generation down to
|
||||
diff --git a/tools/clang/tools/scan-build/scan-build b/tools/clang/tools/scan-build/scan-build
|
||||
index 22d5289..dcb4822 100755
|
||||
--- a/tools/clang/tools/scan-build/scan-build
|
||||
+++ b/tools/clang/tools/scan-build/scan-build
|
||||
@@ -410,7 +410,7 @@ sub CopyFiles {
|
||||
|
||||
my $Dir = shift;
|
||||
|
||||
- my $JS = Cwd::realpath("$RealBin/sorttable.js");
|
||||
+ my $JS = Cwd::realpath("@EPREFIX@/usr/share/llvm/sorttable.js");
|
||||
|
||||
DieDiag("Cannot find 'sorttable.js'.\n")
|
||||
if (! -r $JS);
|
||||
@@ -420,7 +420,7 @@ sub CopyFiles {
|
||||
DieDiag("Could not copy 'sorttable.js' to '$Dir'.\n")
|
||||
if (! -r "$Dir/sorttable.js");
|
||||
|
||||
- my $CSS = Cwd::realpath("$RealBin/scanview.css");
|
||||
+ my $CSS = Cwd::realpath("@EPREFIX@/usr/share/llvm/scanview.css");
|
||||
|
||||
DieDiag("Cannot find 'scanview.css'.\n")
|
||||
if (! -r $CSS);
|
||||
diff --git a/tools/clang/tools/scan-view/scan-view b/tools/clang/tools/scan-view/scan-view
|
||||
index fb27da6..1f8ddb8 100755
|
||||
--- a/tools/clang/tools/scan-view/scan-view
|
||||
+++ b/tools/clang/tools/scan-view/scan-view
|
||||
@@ -54,7 +54,7 @@ def start_browser(port, options):
|
||||
webbrowser.open(url)
|
||||
|
||||
def run(port, options, root):
|
||||
- import ScanView
|
||||
+ from clang import ScanView
|
||||
try:
|
||||
print 'Starting scan-view at: http://%s:%d'%(options.host,
|
||||
port)
|
||||
--
|
||||
1.8.3.2
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
Fixes compilation of llvm-3.3 on gcc-4.6 and 4.7 when VIDEO_CARDS=radeon
|
||||
|
||||
This issue is caused because although Q is a multiset the original code tries to get
|
||||
a set iterator which can't be converted in a multiset one.
|
||||
|
||||
The fix is as simple as just using a multiset iterator.
|
||||
|
||||
Patch by Francisco Blas Izquierdo Riera (klondike)
|
||||
Consider the changes in the Public Domain
|
||||
https://bugs.gentoo.org/show_bug.cgi?id=474096
|
||||
|
||||
--- lib/Target/R600/R600MachineScheduler.cpp
|
||||
+++ lib/Target/R600/R600MachineScheduler.cpp
|
||||
@@ -290,7 +290,7 @@
|
||||
SUnit *R600SchedStrategy::PopInst(std::multiset<SUnit *, CompareSUnit> &Q) {
|
||||
if (Q.empty())
|
||||
return NULL;
|
||||
- for (std::set<SUnit *, CompareSUnit>::iterator It = Q.begin(), E = Q.end();
|
||||
+ for (std::multiset<SUnit *, CompareSUnit>::iterator It = Q.begin(), E = Q.end();
|
||||
It != E; ++It) {
|
||||
SUnit *SU = *It;
|
||||
InstructionsGroupCandidate.push_back(SU->getInstr());
|
||||
@@ -1,117 +0,0 @@
|
||||
From a554809b6bdbe29b1f775c89104c1088300685ef Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
|
||||
Date: Sat, 28 Dec 2013 10:30:28 +0100
|
||||
Subject: [PATCH] Update for gentoo install layout.
|
||||
|
||||
---
|
||||
Makefile.config.in | 6 +++---
|
||||
Makefile.rules | 8 ++++----
|
||||
tools/llvm-config/BuildVariables.inc.in | 1 +
|
||||
tools/llvm-config/Makefile | 2 ++
|
||||
tools/llvm-config/llvm-config.cpp | 2 +-
|
||||
utils/FileCheck/Makefile | 2 +-
|
||||
6 files changed, 12 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/Makefile.config.in b/Makefile.config.in
|
||||
index fd4f6ef..b63786c 100644
|
||||
--- a/Makefile.config.in
|
||||
+++ b/Makefile.config.in
|
||||
@@ -95,10 +95,10 @@ PROJ_internal_prefix := $(prefix)
|
||||
endif
|
||||
|
||||
PROJ_bindir := $(PROJ_prefix)/bin
|
||||
-PROJ_libdir := $(PROJ_prefix)/lib
|
||||
+PROJ_libdir := $(PROJ_prefix)/$(GENTOO_LIBDIR)
|
||||
PROJ_datadir := $(PROJ_prefix)/share
|
||||
-PROJ_docsdir := $(PROJ_prefix)/docs/llvm
|
||||
-PROJ_etcdir := $(PROJ_prefix)/etc/llvm
|
||||
+PROJ_docsdir := $(PROJ_prefix)/share/doc/@PF@
|
||||
+PROJ_etcdir := @EPREFIX@/etc/llvm
|
||||
PROJ_includedir := $(PROJ_prefix)/include
|
||||
PROJ_infodir := $(PROJ_prefix)/info
|
||||
PROJ_mandir := $(PROJ_prefix)/share/man
|
||||
diff --git a/Makefile.rules b/Makefile.rules
|
||||
index f0c542b..6cc19fd 100644
|
||||
--- a/Makefile.rules
|
||||
+++ b/Makefile.rules
|
||||
@@ -276,7 +276,7 @@ ifeq ($(ENABLE_OPTIMIZED),1)
|
||||
# Don't use -fomit-frame-pointer on Darwin or FreeBSD.
|
||||
ifneq ($(HOST_OS),FreeBSD)
|
||||
ifneq ($(HOST_OS),Darwin)
|
||||
- OmitFramePointer := -fomit-frame-pointer
|
||||
+ OmitFramePointer :=
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -601,7 +601,7 @@ endif
|
||||
ifdef SHARED_LIBRARY
|
||||
ifneq ($(HOST_OS), $(filter $(HOST_OS), Cygwin MingW))
|
||||
ifneq ($(HOST_OS),Darwin)
|
||||
- LD.Flags += $(RPATH) -Wl,'$$ORIGIN'
|
||||
+ LD.Flags +=
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
@@ -641,9 +641,9 @@ ifneq ($(HOST_OS), $(filter $(HOST_OS), Cygwin MingW))
|
||||
ifdef TOOLNAME
|
||||
LD.Flags += $(RPATH) -Wl,'$$ORIGIN/../lib'
|
||||
ifdef EXAMPLE_TOOL
|
||||
- LD.Flags += $(RPATH) -Wl,$(ExmplDir) $(DynamicFlag)
|
||||
+ LD.Flags += $(DynamicFlag)
|
||||
else
|
||||
- LD.Flags += $(RPATH) -Wl,$(ToolDir) $(DynamicFlag)
|
||||
+ LD.Flags += $(DynamicFlag)
|
||||
endif
|
||||
endif
|
||||
else
|
||||
diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
|
||||
index fe87afb..908acd4 100644
|
||||
--- a/tools/llvm-config/BuildVariables.inc.in
|
||||
+++ b/tools/llvm-config/BuildVariables.inc.in
|
||||
@@ -25,3 +25,4 @@
|
||||
#define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
|
||||
#define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
|
||||
#define LLVM_SYSTEM_LIBS "@LLVM_SYSTEM_LIBS@"
|
||||
+#define LLVM_LIBDIR "@LLVM_LIBDIR@"
|
||||
diff --git a/tools/llvm-config/Makefile b/tools/llvm-config/Makefile
|
||||
index b20b6bf..0aeba45 100644
|
||||
--- a/tools/llvm-config/Makefile
|
||||
+++ b/tools/llvm-config/Makefile
|
||||
@@ -55,6 +55,8 @@ $(ObjDir)/BuildVariables.inc: $(BUILDVARIABLES_SRCPATH) Makefile $(ObjDir)/.dir
|
||||
>> temp.sed
|
||||
$(Verb) $(ECHO) 's/@LLVM_TARGETS_BUILT@/$(subst /,\/,$(TARGETS_TO_BUILD))/' \
|
||||
>> temp.sed
|
||||
+ $(Verb) $(ECHO) 's/@LLVM_LIBDIR@/$(subst /,\/,$(GENTOO_LIBDIR))/' \
|
||||
+ >> temp.sed
|
||||
$(Verb) $(SED) -f temp.sed < $< > $@
|
||||
$(Verb) $(RM) temp.sed
|
||||
|
||||
diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
|
||||
index 7edf5ec..c09b702 100644
|
||||
--- a/tools/llvm-config/llvm-config.cpp
|
||||
+++ b/tools/llvm-config/llvm-config.cpp
|
||||
@@ -250,7 +250,7 @@ int main(int argc, char **argv) {
|
||||
ActivePrefix = CurrentExecPrefix;
|
||||
ActiveIncludeDir = ActivePrefix + "/include";
|
||||
ActiveBinDir = ActivePrefix + "/bin";
|
||||
- ActiveLibDir = ActivePrefix + "/lib";
|
||||
+ ActiveLibDir = ActivePrefix + "/" LLVM_LIBDIR;
|
||||
ActiveIncludeOption = "-I" + ActiveIncludeDir;
|
||||
}
|
||||
|
||||
diff --git a/utils/FileCheck/Makefile b/utils/FileCheck/Makefile
|
||||
index 268b7bc..e7674f9 100644
|
||||
--- a/utils/FileCheck/Makefile
|
||||
+++ b/utils/FileCheck/Makefile
|
||||
@@ -15,7 +15,7 @@ USEDLIBS = LLVMSupport.a
|
||||
TOOL_NO_EXPORTS = 1
|
||||
|
||||
# Don't install this utility
|
||||
-NO_INSTALL = 1
|
||||
+#NO_INSTALL = 1
|
||||
|
||||
include $(LEVEL)/Makefile.common
|
||||
|
||||
--
|
||||
1.8.5.2
|
||||
|
||||
@@ -1,500 +0,0 @@
|
||||
# Copyright 1999-2015 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Id$
|
||||
|
||||
EAPI=5
|
||||
|
||||
PYTHON_COMPAT=( python2_7 pypy )
|
||||
|
||||
inherit cmake-utils eutils flag-o-matic multilib multilib-minimal \
|
||||
python-r1 toolchain-funcs pax-utils check-reqs
|
||||
|
||||
DESCRIPTION="Low Level Virtual Machine"
|
||||
HOMEPAGE="http://llvm.org/"
|
||||
SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.gz
|
||||
clang? ( http://llvm.org/releases/${PV}/compiler-rt-${PV}.src.tar.gz
|
||||
http://llvm.org/releases/${PV}/cfe-${PV}.src.tar.gz )
|
||||
!doc? ( https://dev.gentoo.org/~voyageur/distfiles/${P}-manpages.tar.bz2 )"
|
||||
|
||||
LICENSE="UoI-NCSA"
|
||||
SLOT="0/${PV}"
|
||||
KEYWORDS="amd64 arm ppc ppc64 x86 ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos"
|
||||
IUSE="clang debug doc gold +libffi multitarget ocaml python
|
||||
+static-analyzer test udis86 xml video_cards_radeon
|
||||
kernel_Darwin kernel_FreeBSD"
|
||||
|
||||
COMMON_DEPEND="
|
||||
sys-libs/zlib:0=
|
||||
clang? (
|
||||
python? ( ${PYTHON_DEPS} )
|
||||
static-analyzer? (
|
||||
dev-lang/perl:*
|
||||
${PYTHON_DEPS}
|
||||
)
|
||||
xml? ( dev-libs/libxml2:2= )
|
||||
)
|
||||
gold? ( >=sys-devel/binutils-2.22:*[cxx] )
|
||||
libffi? ( >=virtual/libffi-3.0.13-r1:0=[${MULTILIB_USEDEP}] )
|
||||
ocaml? ( dev-lang/ocaml:0= )
|
||||
udis86? ( >=dev-libs/udis86-1.7-r2:0=[pic(+),${MULTILIB_USEDEP}] )"
|
||||
DEPEND="${COMMON_DEPEND}
|
||||
dev-lang/perl
|
||||
>=sys-devel/make-3.81
|
||||
>=sys-devel/flex-2.5.4
|
||||
>=sys-devel/bison-1.875d
|
||||
|| ( >=sys-devel/gcc-3.0 >=sys-devel/gcc-apple-4.2.1
|
||||
( >=sys-freebsd/freebsd-lib-9.1-r10 sys-libs/libcxx )
|
||||
)
|
||||
|| ( >=sys-devel/binutils-2.18 >=sys-devel/binutils-apple-3.2.3 )
|
||||
clang? ( xml? ( virtual/pkgconfig ) )
|
||||
doc? ( dev-python/sphinx )
|
||||
libffi? ( virtual/pkgconfig )
|
||||
${PYTHON_DEPS}"
|
||||
RDEPEND="${COMMON_DEPEND}
|
||||
clang? ( !<=sys-devel/clang-3.3-r99
|
||||
!>=sys-devel/clang-9999 )
|
||||
abi_x86_32? ( !<=app-emulation/emul-linux-x86-baselibs-20130224-r2
|
||||
!app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)] )"
|
||||
|
||||
# pypy gives me around 1700 unresolved tests due to open file limit
|
||||
# being exceeded. probably GC does not close them fast enough.
|
||||
REQUIRED_USE="${PYTHON_REQUIRED_USE}
|
||||
test? ( || ( $(python_gen_useflags 'python*') ) )"
|
||||
|
||||
S=${WORKDIR}/${P}.src
|
||||
|
||||
# Some people actually override that in make.conf. That sucks since
|
||||
# we need to run install per-directory, and ninja can't do that...
|
||||
# so why did it call itself ninja in the first place?
|
||||
CMAKE_MAKEFILE_GENERATOR=emake
|
||||
|
||||
pkg_pretend() {
|
||||
# in megs
|
||||
# !clang !debug !multitarget -O2 400
|
||||
# !clang !debug multitarget -O2 550
|
||||
# clang !debug !multitarget -O2 950
|
||||
# clang !debug multitarget -O2 1200
|
||||
# !clang debug multitarget -O2 5G
|
||||
# clang !debug multitarget -O0 -g 12G
|
||||
# clang debug multitarget -O2 16G
|
||||
# clang debug multitarget -O0 -g 14G
|
||||
|
||||
local build_size=550
|
||||
use clang && build_size=1200
|
||||
|
||||
if use debug; then
|
||||
ewarn "USE=debug is known to increase the size of package considerably"
|
||||
ewarn "and cause the tests to fail."
|
||||
ewarn
|
||||
|
||||
(( build_size *= 14 ))
|
||||
elif is-flagq '-g?(gdb)?([1-9])'; then
|
||||
ewarn "The C++ compiler -g option is known to increase the size of the package"
|
||||
ewarn "considerably. If you run out of space, please consider removing it."
|
||||
ewarn
|
||||
|
||||
(( build_size *= 10 ))
|
||||
fi
|
||||
|
||||
# Multiply by number of ABIs :).
|
||||
local abis=( $(multilib_get_enabled_abis) )
|
||||
(( build_size *= ${#abis[@]} ))
|
||||
|
||||
local CHECKREQS_DISK_BUILD=${build_size}M
|
||||
check-reqs_pkg_pretend
|
||||
}
|
||||
|
||||
pkg_setup() {
|
||||
pkg_pretend
|
||||
|
||||
# need to check if the active compiler is ok
|
||||
|
||||
broken_gcc=( 3.2.2 3.2.3 3.3.2 4.1.1 )
|
||||
broken_gcc_x86=( 3.4.0 3.4.2 )
|
||||
broken_gcc_amd64=( 3.4.6 )
|
||||
|
||||
gcc_vers=$(gcc-fullversion)
|
||||
|
||||
if has "${gcc_vers}" "${broken_gcc[@]}"; then
|
||||
elog "Your version of gcc is known to miscompile llvm."
|
||||
elog "Check http://www.llvm.org/docs/GettingStarted.html for"
|
||||
elog "possible solutions."
|
||||
die "Your currently active version of gcc is known to miscompile llvm"
|
||||
fi
|
||||
|
||||
if use abi_x86_32 && has "${gcc_vers}" "${broken_gcc_x86[@]}"; then
|
||||
elog "Your version of gcc is known to miscompile llvm on x86"
|
||||
elog "architectures. Check"
|
||||
elog "http://www.llvm.org/docs/GettingStarted.html for possible"
|
||||
elog "solutions."
|
||||
die "Your currently active version of gcc is known to miscompile llvm"
|
||||
fi
|
||||
|
||||
if use abi_x86_64 && has "${gcc_vers}" "${broken_gcc_amd64[@]}"; then
|
||||
elog "Your version of gcc is known to miscompile llvm in amd64"
|
||||
elog "architectures. Check"
|
||||
elog "http://www.llvm.org/docs/GettingStarted.html for possible"
|
||||
elog "solutions."
|
||||
die "Your currently active version of gcc is known to miscompile llvm"
|
||||
fi
|
||||
}
|
||||
|
||||
src_unpack() {
|
||||
default
|
||||
|
||||
rm -f "${S}"/tools/clang "${S}"/projects/compiler-rt \
|
||||
|| die "symlinks removal failed"
|
||||
|
||||
if use clang; then
|
||||
mv "${WORKDIR}"/cfe-${PV}.src "${S}"/tools/clang \
|
||||
|| die "clang source directory move failed"
|
||||
mv "${WORKDIR}"/compiler-rt-${PV}.src "${S}"/projects/compiler-rt \
|
||||
|| die "compiler-rt source directory move failed"
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
epatch "${FILESDIR}"/${PN}-3.2-nodoctargz.patch
|
||||
epatch "${FILESDIR}"/${P}-R600_debug.patch
|
||||
epatch "${FILESDIR}"/${PN}-3.3-r2-gentoo-install.patch
|
||||
|
||||
# Hack cmake search path for Gentoo, bug #496480
|
||||
epatch "${FILESDIR}"/${PN}-3.3-cmake-modulepath.patch
|
||||
|
||||
if use clang; then
|
||||
# Automatically select active system GCC's libraries, bugs #406163 and #417913
|
||||
epatch "${FILESDIR}"/clang-3.1-gentoo-runtime-gcc-detection-v3.patch
|
||||
|
||||
epatch "${FILESDIR}"/clang-3.3-gentoo-install.patch
|
||||
|
||||
# backport support for g++-X.Y header location
|
||||
epatch "${FILESDIR}"/clang-3.3-gcc-header-path.patch
|
||||
fi
|
||||
|
||||
local sub_files=(
|
||||
Makefile.config.in
|
||||
Makefile.rules
|
||||
tools/llvm-config/llvm-config.cpp
|
||||
)
|
||||
use clang && sub_files+=(
|
||||
tools/clang/lib/Driver/Tools.cpp
|
||||
tools/clang/tools/scan-build/scan-build
|
||||
)
|
||||
|
||||
# unfortunately ./configure won't listen to --mandir and the-like, so take
|
||||
# care of this.
|
||||
# note: we're setting the main libdir intentionally.
|
||||
# where per-ABI is appropriate, we use $(GENTOO_LIBDIR) make.
|
||||
einfo "Fixing install dirs"
|
||||
sed -e "s,@libdir@,$(get_libdir),g" \
|
||||
-e "s,@PF@,${PF},g" \
|
||||
-e "s,@EPREFIX@,${EPREFIX},g" \
|
||||
-i "${sub_files[@]}" \
|
||||
|| die "install paths sed failed"
|
||||
|
||||
# User patches
|
||||
epatch_user
|
||||
|
||||
python_setup
|
||||
}
|
||||
|
||||
multilib_src_configure() {
|
||||
# disable timestamps since they confuse ccache
|
||||
local conf_flags=(
|
||||
--disable-timestamps
|
||||
--enable-keep-symbols
|
||||
--enable-shared
|
||||
--with-optimize-option=
|
||||
$(use_enable !debug optimized)
|
||||
$(use_enable debug assertions)
|
||||
$(use_enable debug expensive-checks)
|
||||
$(use_enable libffi)
|
||||
)
|
||||
|
||||
if use clang; then
|
||||
conf_flags+=( --with-clang-resource-dir=../lib/clang/${PV} )
|
||||
fi
|
||||
# well, it's used only by clang executable c-index-test
|
||||
if multilib_is_native_abi && use clang && use xml; then
|
||||
conf_flags+=( XML2CONFIG="$(tc-getPKG_CONFIG) libxml-2.0" )
|
||||
else
|
||||
conf_flags+=( ac_cv_prog_XML2CONFIG="" )
|
||||
fi
|
||||
|
||||
local targets bindings
|
||||
if use multitarget; then
|
||||
targets='all'
|
||||
else
|
||||
targets='host,cpp'
|
||||
fi
|
||||
conf_flags+=( --enable-targets=${targets} )
|
||||
|
||||
if use video_cards_radeon; then
|
||||
conf_flags+=( --enable-experimental-targets=R600 )
|
||||
fi
|
||||
|
||||
if multilib_is_native_abi; then
|
||||
use gold && conf_flags+=( --with-binutils-include="${EPREFIX}"/usr/include/ )
|
||||
# extra commas don't hurt
|
||||
use ocaml && bindings+=',ocaml'
|
||||
fi
|
||||
|
||||
[[ ${bindings} ]] || bindings='none'
|
||||
conf_flags+=( --enable-bindings=${bindings} )
|
||||
|
||||
if use udis86; then
|
||||
conf_flags+=( --with-udis86 )
|
||||
fi
|
||||
|
||||
if use libffi; then
|
||||
local CPPFLAGS=${CPPFLAGS}
|
||||
append-cppflags "$(pkg-config --cflags libffi)"
|
||||
fi
|
||||
|
||||
# llvm prefers clang over gcc, so we may need to force that
|
||||
tc-export CC CXX
|
||||
|
||||
ECONF_SOURCE=${S} \
|
||||
econf "${conf_flags[@]}"
|
||||
|
||||
multilib_is_native_abi && cmake_configure
|
||||
}
|
||||
|
||||
cmake_configure() {
|
||||
# sadly, cmake doesn't seem to have host autodetection
|
||||
# but it's fairly easy to steal this from configured autotools
|
||||
local targets=$(sed -n -e 's/^TARGETS_TO_BUILD=//p' Makefile.config || die)
|
||||
local libdir=$(get_libdir)
|
||||
|
||||
# cmake doesn't have R600 in 3.3
|
||||
targets=${targets/R600 /}
|
||||
|
||||
local mycmakeargs=(
|
||||
-DLLVM_TARGETS_TO_BUILD="${targets// /;}"
|
||||
-DLLVM_LIBDIR_SUFFIX=${libdir#lib}
|
||||
)
|
||||
|
||||
BUILD_DIR=${S%/}_cmake \
|
||||
cmake-utils_src_configure
|
||||
}
|
||||
|
||||
set_makeargs() {
|
||||
MAKEARGS=(
|
||||
VERBOSE=1
|
||||
REQUIRES_RTTI=1
|
||||
GENTOO_LIBDIR=$(get_libdir)
|
||||
)
|
||||
|
||||
# for tests, we want it all! otherwise, we may use a little filtering...
|
||||
# adding ONLY_TOOLS also disables unittest building...
|
||||
if [[ ${EBUILD_PHASE_FUNC} != src_test ]]; then
|
||||
local tools=( llvm-config )
|
||||
use clang && tools+=( clang )
|
||||
|
||||
if multilib_is_native_abi; then
|
||||
tools+=(
|
||||
opt llvm-as llvm-dis llc llvm-ar llvm-nm llvm-link lli
|
||||
llvm-extract llvm-mc llvm-bcanalyzer llvm-diff macho-dump
|
||||
llvm-objdump llvm-readobj llvm-rtdyld llvm-dwarfdump llvm-cov
|
||||
llvm-size llvm-stress llvm-mcmarkup llvm-symbolizer obj2yaml
|
||||
yaml2obj lto llvm-prof llvm-ranlib bugpoint
|
||||
)
|
||||
|
||||
# those tools require 'lto' built first, so we need to delay
|
||||
# building them to a second run
|
||||
if [[ ${1} != -1 ]]; then
|
||||
use gold && tools+=( gold )
|
||||
fi
|
||||
fi
|
||||
|
||||
MAKEARGS+=(
|
||||
# filter tools + disable unittests implicitly
|
||||
ONLY_TOOLS="${tools[*]}"
|
||||
|
||||
# this disables unittests & docs from clang
|
||||
BUILD_CLANG_ONLY=YES
|
||||
)
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_compile() {
|
||||
local MAKEARGS
|
||||
set_makeargs -1
|
||||
emake "${MAKEARGS[@]}"
|
||||
|
||||
if multilib_is_native_abi; then
|
||||
set_makeargs
|
||||
emake -C tools "${MAKEARGS[@]}"
|
||||
|
||||
if use doc; then
|
||||
emake -C "${S}"/docs -f Makefile.sphinx man
|
||||
use clang && emake -C "${S}"/tools/clang/docs/tools \
|
||||
BUILD_FOR_WEBSITE=1 DST_MAN_DIR="${T}"/ man
|
||||
emake -C "${S}"/docs -f Makefile.sphinx html
|
||||
fi
|
||||
fi
|
||||
|
||||
if use debug; then
|
||||
pax-mark m Debug+Asserts+Checks/bin/llvm-rtdyld
|
||||
pax-mark m Debug+Asserts+Checks/bin/lli
|
||||
else
|
||||
pax-mark m Release/bin/llvm-rtdyld
|
||||
pax-mark m Release/bin/lli
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_test() {
|
||||
local MAKEARGS
|
||||
set_makeargs
|
||||
|
||||
# build the remaining tools & unittests
|
||||
emake "${MAKEARGS[@]}"
|
||||
|
||||
pax-mark m unittests/ExecutionEngine/JIT/Release/JITTests
|
||||
pax-mark m unittests/ExecutionEngine/MCJIT/Release/MCJITTests
|
||||
pax-mark m unittests/Support/Release/SupportTests
|
||||
|
||||
emake "${MAKEARGS[@]}" check
|
||||
use clang && emake "${MAKEARGS[@]}" -C tools/clang test
|
||||
}
|
||||
|
||||
src_install() {
|
||||
local MULTILIB_WRAPPED_HEADERS=(
|
||||
/usr/include/llvm/Config/config.h
|
||||
/usr/include/llvm/Config/llvm-config.h
|
||||
)
|
||||
|
||||
use clang && MULTILIB_WRAPPED_HEADERS+=(
|
||||
/usr/include/clang/Config/config.h
|
||||
)
|
||||
|
||||
multilib-minimal_src_install
|
||||
|
||||
# Remove unnecessary headers on FreeBSD, bug #417171
|
||||
use kernel_FreeBSD && use clang && rm "${ED}"usr/lib/clang/${PV}/include/{std,float,iso,limits,tgmath,varargs}*.h
|
||||
}
|
||||
|
||||
multilib_src_install() {
|
||||
local MAKEARGS
|
||||
set_makeargs
|
||||
|
||||
emake "${MAKEARGS[@]}" DESTDIR="${D}" install
|
||||
|
||||
# Preserve ABI-variant of llvm-config.
|
||||
dodir /tmp
|
||||
mv "${ED}"/usr/bin/llvm-config "${ED}"/tmp/"${CHOST}"-llvm-config || die
|
||||
|
||||
if ! multilib_is_native_abi; then
|
||||
# Drop all the executables since LLVM doesn't like to
|
||||
# clobber when installing.
|
||||
rm -r "${ED}"/usr/bin || die
|
||||
|
||||
# Backwards compat, will be happily removed someday.
|
||||
dosym "${CHOST}"-llvm-config /tmp/llvm-config.${ABI}
|
||||
else
|
||||
# Move files back.
|
||||
mv "${ED}"/tmp/*llvm-config* "${ED}"/usr/bin || die
|
||||
# Create a symlink for host's llvm-config.
|
||||
dosym "${CHOST}"-llvm-config /usr/bin/llvm-config
|
||||
|
||||
# Install docs.
|
||||
if use doc; then
|
||||
doman "${S}"/docs/_build/man/*.1
|
||||
use clang && doman "${T}"/clang.1
|
||||
dohtml -r "${S}"/docs/_build/html/
|
||||
else
|
||||
doman "${WORKDIR}"/${P}-manpages/*.1
|
||||
fi
|
||||
|
||||
# Symlink the gold plugin.
|
||||
if use gold; then
|
||||
dodir /usr/${CHOST}/binutils-bin/lib/bfd-plugins
|
||||
dosym ../../../../$(get_libdir)/LLVMgold.so \
|
||||
/usr/${CHOST}/binutils-bin/lib/bfd-plugins/LLVMgold.so
|
||||
fi
|
||||
|
||||
# install cmake modules
|
||||
emake -C "${S%/}"_cmake/cmake/modules DESTDIR="${D}" install
|
||||
fi
|
||||
|
||||
# Fix install_names on Darwin. The build system is too complicated
|
||||
# to just fix this, so we correct it post-install
|
||||
local lib= f= odylib= libpv=${PV}
|
||||
if [[ ${CHOST} == *-darwin* ]] ; then
|
||||
eval $(grep PACKAGE_VERSION= configure)
|
||||
[[ -n ${PACKAGE_VERSION} ]] && libpv=${PACKAGE_VERSION}
|
||||
for lib in lib{EnhancedDisassembly,LLVM-${libpv},LTO,profile_rt,clang}.dylib LLVMHello.dylib ; do
|
||||
# libEnhancedDisassembly is Darwin10 only, so non-fatal
|
||||
# + omit clang libs if not enabled
|
||||
[[ -f ${ED}/usr/lib/${lib} ]] || continue
|
||||
|
||||
ebegin "fixing install_name of $lib"
|
||||
install_name_tool \
|
||||
-id "${EPREFIX}"/usr/lib/${lib} \
|
||||
"${ED}"/usr/lib/${lib}
|
||||
eend $?
|
||||
done
|
||||
for f in "${ED}"/usr/bin/* "${ED}"/usr/lib/lib{LTO,clang}.dylib ; do
|
||||
# omit clang libs if not enabled
|
||||
[[ -f ${ED}/usr/lib/${lib} ]] || continue
|
||||
|
||||
odylib=$(scanmacho -BF'%n#f' "${f}" | tr ',' '\n' | grep libLLVM-${libpv}.dylib)
|
||||
ebegin "fixing install_name reference to ${odylib} of ${f##*/}"
|
||||
install_name_tool \
|
||||
-change "${odylib}" \
|
||||
"${EPREFIX}"/usr/lib/libLLVM-${libpv}.dylib \
|
||||
-change "@rpath/libclang.dylib" \
|
||||
"${EPREFIX}"/usr/lib/libclang.dylib \
|
||||
-change "${S}"/Release/lib/libclang.dylib \
|
||||
"${EPREFIX}"/usr/lib/libclang.dylib \
|
||||
"${f}"
|
||||
eend $?
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
||||
multilib_src_install_all() {
|
||||
insinto /usr/share/vim/vimfiles/syntax
|
||||
doins utils/vim/*.vim
|
||||
|
||||
if use clang; then
|
||||
cd tools/clang || die
|
||||
|
||||
if use static-analyzer ; then
|
||||
dobin tools/scan-build/ccc-analyzer
|
||||
dosym ccc-analyzer /usr/bin/c++-analyzer
|
||||
dobin tools/scan-build/scan-build
|
||||
|
||||
insinto /usr/share/${PN}
|
||||
doins tools/scan-build/scanview.css
|
||||
doins tools/scan-build/sorttable.js
|
||||
fi
|
||||
|
||||
python_inst() {
|
||||
if use static-analyzer ; then
|
||||
pushd tools/scan-view >/dev/null || die
|
||||
|
||||
python_doscript scan-view
|
||||
|
||||
touch __init__.py || die
|
||||
python_moduleinto clang
|
||||
python_domodule __init__.py Reporter.py Resources ScanView.py startfile.py
|
||||
|
||||
popd >/dev/null || die
|
||||
fi
|
||||
|
||||
if use python ; then
|
||||
pushd bindings/python/clang >/dev/null || die
|
||||
|
||||
python_moduleinto clang
|
||||
python_domodule __init__.py cindex.py enumerations.py
|
||||
|
||||
popd >/dev/null || die
|
||||
fi
|
||||
|
||||
# AddressSanitizer symbolizer (currently separate)
|
||||
python_doscript "${S}"/projects/compiler-rt/lib/asan/scripts/asan_symbolize.py
|
||||
}
|
||||
python_foreach_impl python_inst
|
||||
fi
|
||||
}
|
||||
Reference in New Issue
Block a user