Author: shlevy
Date: Mon Dec 19 12:48:09 2011
New Revision: 30956
URL: https://nixos.org/websvn/nix/?rev=30956&sc=1
Log:
clang-3.0
This required moving to the cmake build for llvm in order to build clang
separately from llvm.
Deleted:
nixpkgs/trunk/pkgs/development/compilers/llvm/clang-system-llvm-libs.patch
nixpkgs/trunk/pkgs/development/compilers/llvm/clang-tblgen.patch
Modified:
nixpkgs/trunk/pkgs/development/compilers/llvm/clang-include-paths.patch
nixpkgs/trunk/pkgs/development/compilers/llvm/clang-ld-flags.patch
nixpkgs/trunk/pkgs/development/compilers/llvm/clang.nix
nixpkgs/trunk/pkgs/development/compilers/llvm/default.nix
nixpkgs/trunk/pkgs/top-level/all-packages.nix
Modified:
nixpkgs/trunk/pkgs/development/compilers/llvm/clang-include-paths.patch
==============================================================================
--- nixpkgs/trunk/pkgs/development/compilers/llvm/clang-include-paths.patch
Mon Dec 19 12:28:58 2011 (r30955)
+++ nixpkgs/trunk/pkgs/development/compilers/llvm/clang-include-paths.patch
Mon Dec 19 12:48:09 2011 (r30956)
@@ -1,39 +1,49 @@
-diff -ru -x '*~' a/tools/clang/lib/Frontend/InitHeaderSearch.cpp
b/tools/clang/lib/Frontend/InitHeaderSearch.cpp
---- a/tools/clang/lib/Frontend/InitHeaderSearch.cpp 2011-03-21
20:24:04.000000000 -0400
-+++ b/tools/clang/lib/Frontend/InitHeaderSearch.cpp 2011-10-18
12:09:50.624355551 -0400
-@@ -438,6 +438,7 @@
+diff -Naur clang-3.0.src-orig/lib/Driver/ToolChains.cpp
clang-3.0.src/lib/Driver/ToolChains.cpp
+--- clang-3.0.src-orig/lib/Driver/ToolChains.cpp 2011-11-17
02:40:32.000000000 -0500
++++ clang-3.0.src/lib/Driver/ToolChains.cpp 2011-12-19 06:29:27.562428830
-0500
+@@ -1926,14 +1926,17 @@
+ if (DriverArgs.hasArg(options::OPT_nostdinc))
+ return;
- void InitHeaderSearch::AddDefaultCIncludePaths(const llvm::Triple &triple,
- const HeaderSearchOptions
&HSOpts) {
+#if 0
- llvm::Triple::OSType os = triple.getOS();
+ if (!DriverArgs.hasArg(options::OPT_nostdlibinc))
+ addSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/usr/local/include");
- switch (os) {
-@@ -559,6 +560,8 @@
++#endif
+ if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
+ llvm::sys::Path P(D.ResourceDir);
+ P.appendComponent("include");
+ addSystemInclude(DriverArgs, CC1Args, P.str());
}
++#if 0
+
+ if (DriverArgs.hasArg(options::OPT_nostdlibinc))
+ return;
+@@ -1998,6 +2001,8 @@
+ return;
- AddPath("/usr/include", System, false, false, false);
+ addExternCSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/usr/include");
+#endif
-+ AddPath(C_INCLUDE_PATH, System, false, false, false);
++ addExternCSystemInclude(DriverArgs, CC1Args, D.SysRoot + C_INCLUDE_PATH);
}
- void InitHeaderSearch::
-@@ -577,6 +580,7 @@
- triple);
- return;
- }
-+#if 0
- // FIXME: temporary hack: hard-coded paths.
- switch (os) {
- case llvm::Triple::Cygwin:
-@@ -847,6 +851,10 @@
- default:
- break;
+ static bool addLibStdCXXIncludePaths(Twine Base, Twine TargetArchDir,
+@@ -2030,6 +2035,7 @@
+ bool IsTarget64Bit = (TargetArch == llvm::Triple::x86_64 ||
+ TargetArch == llvm::Triple::ppc64);
+
++#if 0
+ StringRef CxxIncludeRoot(CXX_INCLUDE_ROOT);
+ if (!CxxIncludeRoot.empty()) {
+ StringRef CxxIncludeArch(CXX_INCLUDE_ARCH);
+@@ -2072,6 +2078,10 @@
+ GCCInstallation.getTriple() + Suffix,
+ DriverArgs, CC1Args);
}
+#endif
-+ AddGnuCPlusPlusIncludePaths(
-+ CPP_INCLUDE_PATH,
-+ CPP_HOST, "", "", triple);
++ addLibStdCXXIncludePaths(CPP_INCLUDE_PATH,
++ CPP_HOST,
++ DriverArgs, CC1Args);
}
- void InitHeaderSearch::AddDefaultSystemIncludePaths(const LangOptions &Lang,
+ /// DragonFly - DragonFly tool chain which can call as(1) and ld(1) directly.
Modified: nixpkgs/trunk/pkgs/development/compilers/llvm/clang-ld-flags.patch
==============================================================================
--- nixpkgs/trunk/pkgs/development/compilers/llvm/clang-ld-flags.patch Mon Dec
19 12:28:58 2011 (r30955)
+++ nixpkgs/trunk/pkgs/development/compilers/llvm/clang-ld-flags.patch Mon Dec
19 12:48:09 2011 (r30956)
@@ -1,33 +1,26 @@
-diff -Naur a/tools/clang/lib/Driver/ToolChains.cpp
b/tools/clang/lib/Driver/ToolChains.cpp
---- a/tools/clang/lib/Driver/ToolChains.cpp 2011-03-21 17:29:27.000000000
-0400
-+++ b/tools/clang/lib/Driver/ToolChains.cpp 2011-10-18 19:43:48.999590771
-0400
-@@ -1482,12 +1482,9 @@
- Lib = Lib64;
- }
+diff -Naur clang-3.0.src-orig/lib/Driver/ToolChains.cpp
clang-3.0.src/lib/Driver/ToolChains.cpp
+--- clang-3.0.src-orig/lib/Driver/ToolChains.cpp 2011-11-17
02:40:32.000000000 -0500
++++ clang-3.0.src/lib/Driver/ToolChains.cpp 2011-12-19 05:32:38.695513475
-0500
+@@ -1800,6 +1800,7 @@
-- llvm::sys::Path LinkerPath(Base + "/../../../../" + GccTriple + "/bin/ld");
-- if (!llvm::sys::fs::exists(LinkerPath.str(), Exists) && Exists)
-- Linker = LinkerPath.str();
-- else
-- Linker = GetProgramPath("ld");
-+ Linker = GetProgramPath("ld");
+ Linker = GetProgramPath("ld");
+#if 0
LinuxDistro Distro = DetectLinuxDistro(Arch);
- if (IsUbuntu(Distro)) {
-@@ -1531,6 +1528,7 @@
- Paths.push_back(Base + "/../../..");
- if (Arch == getArch() && IsUbuntu(Distro))
- Paths.push_back("/usr/lib/" + GccTriple);
+ if (IsOpenSuse(Distro) || IsUbuntu(Distro)) {
+@@ -1882,6 +1883,7 @@
+ addPathIfExists(SysRoot + "/lib", Paths);
+ addPathIfExists(SysRoot + "/usr/lib/" + MultiarchTriple, Paths);
+ addPathIfExists(SysRoot + "/usr/lib", Paths);
+#endif
}
bool Linux::HasNativeLLVMSupport() const {
-diff -Naur a/tools/clang/lib/Driver/Tools.cpp
b/tools/clang/lib/Driver/Tools.cpp
---- a/tools/clang/lib/Driver/Tools.cpp 2011-03-06 18:31:01.000000000 -0500
-+++ b/tools/clang/lib/Driver/Tools.cpp 2011-10-18 18:44:00.799604267 -0400
-@@ -3619,6 +3619,7 @@
+diff -Naur clang-3.0.src-orig/lib/Driver/Tools.cpp
clang-3.0.src/lib/Driver/Tools.cpp
+--- clang-3.0.src-orig/lib/Driver/Tools.cpp 2011-11-07 05:27:39.000000000
-0500
++++ clang-3.0.src/lib/Driver/Tools.cpp 2011-12-19 05:34:44.075325534 -0500
+@@ -4306,6 +4306,7 @@
ToolChain.getArch() == llvm::Triple::thumb ||
(!Args.hasArg(options::OPT_static) &&
!Args.hasArg(options::OPT_shared))) {
@@ -35,8 +28,8 @@
CmdArgs.push_back("-dynamic-linker");
if (ToolChain.getArch() == llvm::Triple::x86)
CmdArgs.push_back("/lib/ld-linux.so.2");
-@@ -3627,6 +3628,7 @@
- CmdArgs.push_back("/lib/ld-linux.so.3");
+@@ -4318,6 +4319,7 @@
+ CmdArgs.push_back("/lib64/ld64.so.1");
else
CmdArgs.push_back("/lib64/ld-linux-x86-64.so.2");
+#endif
Modified: nixpkgs/trunk/pkgs/development/compilers/llvm/clang.nix
==============================================================================
--- nixpkgs/trunk/pkgs/development/compilers/llvm/clang.nix Mon Dec 19
12:28:58 2011 (r30955)
+++ nixpkgs/trunk/pkgs/development/compilers/llvm/clang.nix Mon Dec 19
12:48:09 2011 (r30956)
@@ -1,50 +1,30 @@
-{ stdenv, fetchurl, perl, groff, llvm }:
+{ stdenv, fetchurl, perl, groff, llvm, cmake }:
-assert stdenv.isLinux && stdenv.gcc.gcc != null;
-
-let version = "2.9"; in
+let version = "3.0"; in
stdenv.mkDerivation {
name = "clang-${version}";
- src = llvm.src;
-
- buildInputs = [ perl llvm groff ];
+ buildInputs = [ perl llvm groff cmake ];
- configureFlags = [ "--enable-optimized" "--enable-shared" "--disable-static"
]
- ++ stdenv.lib.optionals (stdenv.gcc ? clang) [
- "--with-built-clang=yes"
- "CXX=clang++"
- ];
-
- srcClang = fetchurl {
- url = "http://llvm.org/releases/${version}/clang-${version}.tgz";
- sha256 = "1pq9g7qxw761dp6gx3amx39kl9p4zhlymmn8gfmcnw9ag0zizi3h";
- };
+ patches = stdenv.lib.optionals stdenv.isLinux
+ [ ./clang-include-paths.patch ./clang-ld-flags.patch ];
- prePatch = ''
- pushd tools
- unpackFile $srcClang
- mv clang-${version} clang
- popd
- find
+ postPatch = stdenv.lib.optionalString stdenv.isLinux ''
+ sed -i -e 's,C_INCLUDE_PATH,"${stdenv.gcc.libc}/include/",' \
+ -e 's,CPP_HOST,"'$(${stdenv.gcc}/bin/cc -dumpmachine)'",' \
+ -e
's,CPP_INCLUDE_PATH,"${stdenv.gcc.gcc}/include/c++/${stdenv.gcc.gcc.version}",'
\
+ lib/Driver/ToolChains.cpp
'';
- patches = [ ./clang-include-paths.patch ./clang-ld-flags.patch
./clang-tblgen.patch ./clang-system-llvm-libs.patch ];
+ cmakeFlags = [ "-DCLANG_PATH_TO_LLVM_BUILD=${llvm}"
"-DCMAKE_BUILD_TYPE=Release" ];
- buildFlags = [ "TableGen=tblgen" "LLVM_CONFIG=llvm-config" ];
+ enableParallelBuilding = true;
- preBuild = ''
- sed -i -e 's,C_INCLUDE_PATH,"${stdenv.gcc.libc}/include/",' \
- -e 's,CPP_HOST,"'$(${stdenv.gcc.gcc}/bin/gcc -dumpmachine)'",' \
- -e
's,CPP_INCLUDE_PATH,"${stdenv.gcc.gcc}/include/c++/${stdenv.gcc.gcc.version}",'
\
- tools/clang/lib/Frontend/InitHeaderSearch.cpp
-
- pushd utils/unittest
- make
- popd
- cd tools/clang
- '';
+ src = fetchurl {
+ url = "http://llvm.org/releases/${version}/clang-${version}.tar.gz";
+ sha256 = "0v8j9rgmb7w74ihc44zfxa22q17c946n5b6prwl38z3d6pd74kmn";
+ };
passthru = { gcc = stdenv.gcc.gcc; };
@@ -53,6 +33,7 @@
description = "A C language family frontend for LLVM";
license = "BSD";
maintainers = with stdenv.lib.maintainers; [viric shlevy];
- platforms = with stdenv.lib.platforms; linux;
+ platforms = with stdenv.lib.platforms; all;
};
}
+
Modified: nixpkgs/trunk/pkgs/development/compilers/llvm/default.nix
==============================================================================
--- nixpkgs/trunk/pkgs/development/compilers/llvm/default.nix Mon Dec 19
12:28:58 2011 (r30955)
+++ nixpkgs/trunk/pkgs/development/compilers/llvm/default.nix Mon Dec 19
12:48:09 2011 (r30956)
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl, groff, darwinSwVersUtility }:
+{ stdenv, fetchurl, perl, groff, darwinSwVersUtility, cmake }:
let version = "3.0"; in
@@ -10,14 +10,10 @@
sha256 = "0xq4gi7lflv8ilfckslhfvnja5693xjii1yvzz39kklr6hfv37ji";
};
- buildInputs = [ perl groff ] ++
+ buildInputs = [ perl groff cmake ] ++
stdenv.lib.optional stdenv.isDarwin darwinSwVersUtility;
- configureFlags = [ "--enable-optimized" "--enable-shared" "--disable-static"
]
- ++ stdenv.lib.optionals (stdenv.gcc ? clang) [
- "--with-built-clang=yes"
- "CXX=clang++"
- ];
+ cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ];
enableParallelBuilding = true;
Modified: nixpkgs/trunk/pkgs/top-level/all-packages.nix
==============================================================================
--- nixpkgs/trunk/pkgs/top-level/all-packages.nix Mon Dec 19 12:28:58
2011 (r30955)
+++ nixpkgs/trunk/pkgs/top-level/all-packages.nix Mon Dec 19 12:48:09
2011 (r30956)
@@ -1665,7 +1665,11 @@
ccl = builderDefsPackage ../development/compilers/ccl {};
- clangBootUnwrapped = callPackage ../development/compilers/llvm/clang.nix { };
+ clangBootUnwrapped = callPackage ../development/compilers/llvm/clang.nix {
+ # There is a bug in gcc-4.5 that prevents building a release build of
+ # clang-3.0
+ stdenv = stdenvAdapters.overrideGCC stdenv gcc46;
+ };
clangBoot = wrapClang clangBootUnwrapped;
_______________________________________________
nix-commits mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-commits