* Clang/LLVM updated to 2.8.

svn path=/nixpkgs/trunk/; revision=25777
This commit is contained in:
Eelco Dolstra 2011-02-05 15:45:02 +00:00
parent 596dca28d3
commit 4f87b5338c
2 changed files with 41 additions and 208 deletions

View File

@ -1,202 +1,36 @@
diff --git a/tools/clang/lib/Frontend/InitHeaderSearch.cpp b/tools/clang/lib/Frontend/InitHeaderSearch.cpp diff -ru -x '*~' a/tools/clang/lib/Frontend/InitHeaderSearch.cpp b/tools/clang/lib/Frontend/InitHeaderSearch.cpp
index cd749d2..b5591f6 100644 --- a/tools/clang/lib/Frontend/InitHeaderSearch.cpp 2010-09-03 18:45:53.000000000 +0200
--- a/tools/clang/lib/Frontend/InitHeaderSearch.cpp +++ b/tools/clang/lib/Frontend/InitHeaderSearch.cpp 2011-02-05 14:59:08.669573190 +0100
+++ b/tools/clang/lib/Frontend/InitHeaderSearch.cpp @@ -443,6 +443,7 @@
@@ -393,51 +393,7 @@ void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple) {
AddPath(*i, System, false, false, false); AddPath(*i, System, false, false, false);
return; return;
} }
- llvm::Triple::OSType os = triple.getOS(); +#if 0
- switch (os) { llvm::Triple::OSType os = triple.getOS();
- case llvm::Triple::Win32: switch (os) {
- { case llvm::Triple::Win32:
- std::string VSDir; @@ -532,6 +533,8 @@
- std::string WindowsSDKDir; }
- if (getVisualStudioDir(VSDir)) {
- AddPath(VSDir + "\\VC\\include", System, false, false, false); AddPath("/usr/include", System, false, false, false);
- if (getWindowsSDKDir(WindowsSDKDir)) +#endif
- AddPath(WindowsSDKDir, System, false, false, false);
- else
- AddPath(VSDir + "\\VC\\PlatformSDK\\Include",
- System, false, false, false);
- }
- else {
- // Default install paths.
- AddPath("C:/Program Files/Microsoft Visual Studio 9.0/VC/include",
- System, false, false, false);
- AddPath(
- "C:/Program Files/Microsoft Visual Studio 9.0/VC/PlatformSDK/Include",
- System, false, false, false);
- AddPath("C:/Program Files/Microsoft Visual Studio 8/VC/include",
- System, false, false, false);
- AddPath(
- "C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include",
- System, false, false, false);
- // For some clang developers.
- AddPath("G:/Program Files/Microsoft Visual Studio 9.0/VC/include",
- System, false, false, false);
- AddPath(
- "G:/Program Files/Microsoft Visual Studio 9.0/VC/PlatformSDK/Include",
- System, false, false, false);
- }
- }
- break;
- case llvm::Triple::MinGW64:
- case llvm::Triple::MinGW32:
- AddPath("c:/mingw/include", System, true, false, false);
- break;
- default:
- break;
- }
-
- AddPath("/usr/local/include", System, true, false, false);
- AddPath("/usr/include", System, false, false, false);
+ AddPath(C_INCLUDE_PATH, System, false, false, false); + AddPath(C_INCLUDE_PATH, System, false, false, false);
} }
void InitHeaderSearch::AddDefaultCPlusPlusIncludePaths(const llvm::Triple &triple) { void InitHeaderSearch::
@@ -453,144 +409,9 @@ void InitHeaderSearch::AddDefaultCPlusPlusIncludePaths(const llvm::Triple &tripl @@ -550,6 +553,7 @@
CXX_INCLUDE_32BIT_DIR, CXX_INCLUDE_64BIT_DIR, triple); triple);
return; return;
} }
- // FIXME: temporary hack: hard-coded paths. +#if 0
- switch (os) { // FIXME: temporary hack: hard-coded paths.
- case llvm::Triple::Cygwin: switch (os) {
- AddPath("/lib/gcc/i686-pc-cygwin/3.4.4/include", case llvm::Triple::Cygwin:
- System, true, false, false); @@ -769,6 +773,10 @@
- AddPath("/lib/gcc/i686-pc-cygwin/3.4.4/include/c++", default:
- System, true, false, false); break;
- break; }
- case llvm::Triple::MinGW64: +#endif
- // Try gcc 4.4.0
- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw64", "4.4.0");
- // Try gcc 4.3.0
- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw64", "4.3.0");
- // Fall through.
- case llvm::Triple::MinGW32:
- // Try gcc 4.4.0
- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.4.0");
- // Try gcc 4.3.0
- AddMinGWCPlusPlusIncludePaths("c:/MinGW/lib/gcc", "mingw32", "4.3.0");
- break;
- case llvm::Triple::Darwin:
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.2.1",
- "i686-apple-darwin10", "", "x86_64", triple);
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.0.0",
- "i686-apple-darwin8", "", "", triple);
- break;
- case llvm::Triple::DragonFly:
- AddPath("/usr/include/c++/4.1", System, true, false, false);
- break;
- case llvm::Triple::Linux:
- // Exherbo (2010-01-25)
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.3",
- "x86_64-pc-linux-gnu", "32", "", triple);
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.3",
- "i686-pc-linux-gnu", "", "", triple);
- // Debian sid
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4",
- "x86_64-linux-gnu", "32", "", triple);
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4",
- "i486-linux-gnu", "64", "", triple);
- // Ubuntu 7.10 - Gutsy Gibbon
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.1.3",
- "i486-linux-gnu", "", "", triple);
- // Ubuntu 9.04
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3.3",
- "x86_64-linux-gnu","32", "", triple);
- // Ubuntu 9.10
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.1",
- "x86_64-linux-gnu", "32", "", triple);
- // Fedora 8
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.1.2",
- "i386-redhat-linux", "", "", triple);
- // Fedora 9
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3.0",
- "i386-redhat-linux", "", "", triple);
- // Fedora 10
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3.2",
- "i386-redhat-linux","", "", triple);
-
- // Fedora 10 x86_64
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3.2",
- "x86_64-redhat-linux", "32", "", triple);
-
- // Fedora 11
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.1",
- "i586-redhat-linux","", "", triple);
-
- // Fedora 12
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.2",
- "i686-redhat-linux","", "", triple);
-
- // Fedora 12 (February-2010+)
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4.3",
- "i686-redhat-linux","", "", triple);
-
- // openSUSE 11.1 32 bit
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3",
- "i586-suse-linux", "", "", triple);
- // openSUSE 11.1 64 bit
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3",
- "x86_64-suse-linux", "32", "", triple);
- // openSUSE 11.2
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4",
- "i586-suse-linux", "", "", triple);
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.4",
- "x86_64-suse-linux", "", "", triple);
- // Arch Linux 2008-06-24
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3.1",
- "i686-pc-linux-gnu", "", "", triple);
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3.1",
- "x86_64-unknown-linux-gnu", "", "", triple);
- // Gentoo x86 2009.1 stable
- AddGnuCPlusPlusIncludePaths(
- "/usr/lib/gcc/i686-pc-linux-gnu/4.3.4/include/g++-v4",
- "i686-pc-linux-gnu", "", "", triple);
- // Gentoo x86 2009.0 stable
- AddGnuCPlusPlusIncludePaths(
- "/usr/lib/gcc/i686-pc-linux-gnu/4.3.2/include/g++-v4",
- "i686-pc-linux-gnu", "", "", triple);
- // Gentoo x86 2008.0 stable
- AddGnuCPlusPlusIncludePaths(
- "/usr/lib/gcc/i686-pc-linux-gnu/4.1.2/include/g++-v4",
- "i686-pc-linux-gnu", "", "", triple);
- // Ubuntu 8.10
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3",
- "i486-pc-linux-gnu", "", "", triple);
- // Ubuntu 9.04
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.3",
- "i486-linux-gnu","", "", triple);
- // Gentoo amd64 stable
- AddGnuCPlusPlusIncludePaths(
- "/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/include/g++-v4",
- "i686-pc-linux-gnu", "", "", triple);
-
- // Gentoo amd64 gcc 4.3.2
- AddGnuCPlusPlusIncludePaths(
- "/usr/lib/gcc/x86_64-pc-linux-gnu/4.3.2/include/g++-v4",
- "x86_64-pc-linux-gnu", "", "", triple);
-
- // Gentoo amd64 gcc 4.4.3
- AddGnuCPlusPlusIncludePaths(
- "/usr/lib/gcc/x86_64-pc-linux-gnu/4.4.3/include/g++-v4",
- "x86_64-pc-linux-gnu", "32", "", triple);
-
- break;
- case llvm::Triple::FreeBSD:
- AddGnuCPlusPlusIncludePaths("/usr/include/c++/4.2", "", "", "", triple);
- break;
- case llvm::Triple::Solaris:
- // Solaris - Fall though..
- case llvm::Triple::AuroraUX:
- // AuroraUX
- AddGnuCPlusPlusIncludePaths("/opt/gcc4/include/c++/4.2.4",
- "i386-pc-solaris2.11", "", "", triple);
- break;
- default:
- break;
- }
+ AddGnuCPlusPlusIncludePaths( + AddGnuCPlusPlusIncludePaths(
+ CPP_INCLUDE_PATH, + CPP_INCLUDE_PATH,
+ CPP_HOST, "", "", triple); + CPP_HOST, "", "", triple);

View File

@ -1,16 +1,17 @@
{stdenv, fetchurl, fetchsvn, gcc, flex, perl, libtool, groff { stdenv, fetchurl, gcc, flex, perl, libtool, groff
, buildClang ? false}: , buildClang ? false }:
stdenv.mkDerivation ({ stdenv.mkDerivation ({
name = "llvm-2.7"; name = "llvm-2.8";
src = fetchurl { src = fetchurl {
url = http://llvm.org/releases/2.7/llvm-2.7.tgz; url = http://llvm.org/releases/2.8/llvm-2.8.tgz;
sha256 = "19dwvfyxr851fjfsaxbm56gdj9mlivr37bv6h41hd8q3hpf4nrlr"; sha256 = "0fyl2gk2ld28isz9bq4f6r4dhqm9vljfj3pdfwlc2v0w5xsdpb95";
}; };
buildInputs = [ gcc flex perl libtool groff ]; buildInputs = [ gcc flex perl groff ];
configureFlags = [ "--enable-optimized" "--enable-shared" ]; configureFlags = [ "--enable-optimized" "--enable-shared" "--disable-static" ];
meta = { meta = {
homepage = http://llvm.org/; homepage = http://llvm.org/;
@ -20,8 +21,7 @@ stdenv.mkDerivation ({
platforms = with stdenv.lib.platforms; all; platforms = with stdenv.lib.platforms; all;
}; };
} }
// // stdenv.lib.optionalAttrs buildClang (
(if buildClang then
# I write the assert because 'gcc.libc' will be evaluated although 'triplet' would not # I write the assert because 'gcc.libc' will be evaluated although 'triplet' would not
# evaluate properly (in the preConfigure below) # evaluate properly (in the preConfigure below)
assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"; assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux";
@ -30,19 +30,19 @@ stdenv.mkDerivation ({
else if (stdenv.system == "x86_64-linux") then "x86_64-unknown-linux-gnu" else if (stdenv.system == "x86_64-linux") then "x86_64-unknown-linux-gnu"
else throw "System not supported"; else throw "System not supported";
in { in {
name = "clang-2.7"; name = "clang-2.8";
srcClang = fetchsvn { srcClang = fetchurl {
url = http://llvm.org/svn/llvm-project/cfe/tags/RELEASE_27; url = http://llvm.org/releases/2.8/clang-2.8.tgz;
rev = 105900; sha256 = "1hg0vqmyr4wdy686l2bga0rpin41v0q9ds2k5659m8z6acali0zd";
sha256 = "fe79988950319b62d3bca34848424f20a3f33c8182507df222f2ac93fbacf671";
}; };
prePatch = '' prePatch = ''
pushd tools pushd tools
cp -R "$srcClang" clang unpackFile $srcClang
chmod u+w -R clang mv clang-2.8 clang
popd popd
find
''; '';
patches = [ ./clang-include-paths.patch ]; patches = [ ./clang-include-paths.patch ];
@ -63,5 +63,4 @@ stdenv.mkDerivation ({
platforms = with stdenv.lib.platforms; linux; platforms = with stdenv.lib.platforms; linux;
}; };
} }
else {}
)) ))