diff options
Diffstat (limited to 'pkgs/development/compilers/llvm')
-rw-r--r-- | pkgs/development/compilers/llvm/clang-purity.patch | 162 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/clang-tablegen-dir.patch | 9 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/clang.nix | 41 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/default.nix | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/dragonegg.nix | 8 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/full.nix | 89 |
6 files changed, 94 insertions, 217 deletions
diff --git a/pkgs/development/compilers/llvm/clang-purity.patch b/pkgs/development/compilers/llvm/clang-purity.patch deleted file mode 100644 index e82305189e8fb..0000000000000 --- a/pkgs/development/compilers/llvm/clang-purity.patch +++ /dev/null @@ -1,162 +0,0 @@ -diff -Naur cfe-3.3.src-orig/lib/Driver/ToolChains.cpp cfe-3.3.src/lib/Driver/ToolChains.cpp ---- cfe-3.3.src-orig/lib/Driver/ToolChains.cpp 2013-05-06 12:26:41.000000000 -0400 -+++ cfe-3.3.src/lib/Driver/ToolChains.cpp 2013-06-21 19:28:12.120364372 -0400 -@@ -2318,17 +2318,6 @@ - Paths); - } - } -- addPathIfExists(SysRoot + "/lib/" + MultiarchTriple, Paths); -- addPathIfExists(SysRoot + "/lib/../" + Multilib, Paths); -- addPathIfExists(SysRoot + "/usr/lib/" + MultiarchTriple, Paths); -- addPathIfExists(SysRoot + "/usr/lib/../" + Multilib, Paths); -- -- // Try walking via the GCC triple path in case of multiarch GCC -- // installations with strange symlinks. -- if (GCCInstallation.isValid()) -- addPathIfExists(SysRoot + "/usr/lib/" + GCCInstallation.getTriple().str() + -- "/../../" + Multilib, Paths); -- - // Add the non-multilib suffixed paths (if potentially different). - if (GCCInstallation.isValid()) { - const std::string &LibPath = GCCInstallation.getParentLibPath(); -@@ -2341,8 +2330,6 @@ - addPathIfExists(LibPath, Paths); - } - } -- addPathIfExists(SysRoot + "/lib", Paths); -- addPathIfExists(SysRoot + "/usr/lib", Paths); - - IsPIEDefault = SanitizerArgs(*this, Args).hasZeroBaseShadow(); - } -@@ -2395,9 +2382,6 @@ - if (DriverArgs.hasArg(options::OPT_nostdinc)) - return; - -- if (!DriverArgs.hasArg(options::OPT_nostdlibinc)) -- addSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/local/include"); -- - if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) { - llvm::sys::Path P(D.ResourceDir); - P.appendComponent("include"); -@@ -2479,26 +2463,6 @@ - "/usr/include/powerpc64-linux-gnu" - }; - ArrayRef<StringRef> MultiarchIncludeDirs; -- if (getTriple().getArch() == llvm::Triple::x86_64) { -- MultiarchIncludeDirs = X86_64MultiarchIncludeDirs; -- } else if (getTriple().getArch() == llvm::Triple::x86) { -- MultiarchIncludeDirs = X86MultiarchIncludeDirs; -- } else if (getTriple().getArch() == llvm::Triple::aarch64) { -- MultiarchIncludeDirs = AArch64MultiarchIncludeDirs; -- } else if (getTriple().getArch() == llvm::Triple::arm) { -- if (getTriple().getEnvironment() == llvm::Triple::GNUEABIHF) -- MultiarchIncludeDirs = ARMHFMultiarchIncludeDirs; -- else -- MultiarchIncludeDirs = ARMMultiarchIncludeDirs; -- } else if (getTriple().getArch() == llvm::Triple::mips) { -- MultiarchIncludeDirs = MIPSMultiarchIncludeDirs; -- } else if (getTriple().getArch() == llvm::Triple::mipsel) { -- MultiarchIncludeDirs = MIPSELMultiarchIncludeDirs; -- } else if (getTriple().getArch() == llvm::Triple::ppc) { -- MultiarchIncludeDirs = PPCMultiarchIncludeDirs; -- } else if (getTriple().getArch() == llvm::Triple::ppc64) { -- MultiarchIncludeDirs = PPC64MultiarchIncludeDirs; -- } - for (ArrayRef<StringRef>::iterator I = MultiarchIncludeDirs.begin(), - E = MultiarchIncludeDirs.end(); - I != E; ++I) { -@@ -2510,13 +2474,6 @@ - - if (getTriple().getOS() == llvm::Triple::RTEMS) - return; -- -- // Add an include of '/include' directly. This isn't provided by default by -- // system GCCs, but is often used with cross-compiling GCCs, and harmless to -- // add even when Clang is acting as-if it were a system compiler. -- addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + "/include"); -- -- addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/include"); - } - - /// \brief Helper to add the three variant paths for a libstdc++ installation. -diff -Naur cfe-3.3.src-orig/lib/Driver/Tools.cpp cfe-3.3.src/lib/Driver/Tools.cpp ---- cfe-3.3.src-orig/lib/Driver/Tools.cpp 2013-05-30 14:01:30.000000000 -0400 -+++ cfe-3.3.src/lib/Driver/Tools.cpp 2013-06-21 19:30:51.604726574 -0400 -@@ -5976,43 +5976,6 @@ - } - } - -- if (ToolChain.getArch() == llvm::Triple::arm || -- ToolChain.getArch() == llvm::Triple::thumb || -- (!Args.hasArg(options::OPT_static) && -- !Args.hasArg(options::OPT_shared))) { -- CmdArgs.push_back("-dynamic-linker"); -- if (isAndroid) -- CmdArgs.push_back("/system/bin/linker"); -- else if (ToolChain.getArch() == llvm::Triple::x86) -- CmdArgs.push_back("/lib/ld-linux.so.2"); -- else if (ToolChain.getArch() == llvm::Triple::aarch64) -- CmdArgs.push_back("/lib/ld-linux-aarch64.so.1"); -- else if (ToolChain.getArch() == llvm::Triple::arm || -- ToolChain.getArch() == llvm::Triple::thumb) { -- if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF) -- CmdArgs.push_back("/lib/ld-linux-armhf.so.3"); -- else -- CmdArgs.push_back("/lib/ld-linux.so.3"); -- } -- else if (ToolChain.getArch() == llvm::Triple::mips || -- ToolChain.getArch() == llvm::Triple::mipsel) -- CmdArgs.push_back("/lib/ld.so.1"); -- else if (ToolChain.getArch() == llvm::Triple::mips64 || -- ToolChain.getArch() == llvm::Triple::mips64el) { -- if (hasMipsN32ABIArg(Args)) -- CmdArgs.push_back("/lib32/ld.so.1"); -- else -- CmdArgs.push_back("/lib64/ld.so.1"); -- } -- else if (ToolChain.getArch() == llvm::Triple::ppc) -- CmdArgs.push_back("/lib/ld.so.1"); -- else if (ToolChain.getArch() == llvm::Triple::ppc64 || -- ToolChain.getArch() == llvm::Triple::systemz) -- CmdArgs.push_back("/lib64/ld64.so.1"); -- else -- CmdArgs.push_back("/lib64/ld-linux-x86-64.so.2"); -- } -- - CmdArgs.push_back("-o"); - CmdArgs.push_back(Output.getFilename()); - -diff -Naur cfe-3.3.src-orig/lib/Frontend/InitHeaderSearch.cpp cfe-3.3.src/lib/Frontend/InitHeaderSearch.cpp ---- cfe-3.3.src-orig/lib/Frontend/InitHeaderSearch.cpp 2013-04-29 21:21:43.000000000 -0400 -+++ cfe-3.3.src/lib/Frontend/InitHeaderSearch.cpp 2013-06-21 19:32:47.627016565 -0400 -@@ -225,20 +225,6 @@ - const HeaderSearchOptions &HSOpts) { - llvm::Triple::OSType os = triple.getOS(); - -- if (HSOpts.UseStandardSystemIncludes) { -- switch (os) { -- case llvm::Triple::FreeBSD: -- case llvm::Triple::NetBSD: -- case llvm::Triple::OpenBSD: -- case llvm::Triple::Bitrig: -- break; -- default: -- // FIXME: temporary hack: hard-coded paths. -- AddPath("/usr/local/include", System, false); -- break; -- } -- } -- - // Builtin includes use #include_next directives and should be positioned - // just prior C include dirs. - if (HSOpts.UseBuiltinIncludes) { -@@ -332,9 +318,6 @@ - default: - break; - } -- -- if ( os != llvm::Triple::RTEMS ) -- AddPath("/usr/include", ExternCSystem, false); - } - - void InitHeaderSearch:: diff --git a/pkgs/development/compilers/llvm/clang-tablegen-dir.patch b/pkgs/development/compilers/llvm/clang-tablegen-dir.patch deleted file mode 100644 index de6a468b239f6..0000000000000 --- a/pkgs/development/compilers/llvm/clang-tablegen-dir.patch +++ /dev/null @@ -1,9 +0,0 @@ ---- a/utils/TableGen/CMakeLists.txt (revision 190146) -+++ b/utils/TableGen/CMakeLists.txt (working copy) -@@ -1,4 +1,5 @@ - set(LLVM_LINK_COMPONENTS Support) -+set(LLVM_TOOLS_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) - - add_tablegen(clang-tblgen CLANG - ClangASTNodesEmitter.cpp - diff --git a/pkgs/development/compilers/llvm/clang.nix b/pkgs/development/compilers/llvm/clang.nix deleted file mode 100644 index 8c178c9ce0371..0000000000000 --- a/pkgs/development/compilers/llvm/clang.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ stdenv, fetchurl, perl, groff, llvm, cmake, libxml2, python }: - -let - version = "3.3"; - gccReal = if (stdenv.gcc.gcc or null) == null then stdenv.gcc else stdenv.gcc.gcc; -in - -stdenv.mkDerivation { - name = "clang-${version}"; - - buildInputs = [ perl llvm groff cmake libxml2 python ]; - - patches = [ ./clang-tablegen-dir.patch ] ++ - stdenv.lib.optional (stdenv.gcc.libc != null) ./clang-purity.patch; - - cmakeFlags = [ - "-DCLANG_PATH_TO_LLVM_BUILD=${llvm}" - "-DCMAKE_BUILD_TYPE=Release" - "-DLLVM_TARGETS_TO_BUILD=all" - "-DGCC_INSTALL_PREFIX=${gccReal}" - ] ++ stdenv.lib.optionals (stdenv.gcc.libc != null) [ - "-DC_INCLUDE_DIRS=${stdenv.gcc.libc}/include/" - ]; - - enableParallelBuilding = true; - - src = fetchurl { - url = "http://llvm.org/releases/${version}/cfe-${version}.src.tar.gz"; - sha256 = "15mrvw43s4frk1j49qr4v5viq68h8qlf10qs6ghd6mrsmgj5vddi"; - }; - - passthru = { gcc = stdenv.gcc.gcc; }; - - meta = { - homepage = http://clang.llvm.org/; - description = "A C language family frontend for LLVM"; - license = "BSD"; - maintainers = with stdenv.lib.maintainers; [viric shlevy]; - platforms = with stdenv.lib.platforms; all; - }; -} diff --git a/pkgs/development/compilers/llvm/default.nix b/pkgs/development/compilers/llvm/default.nix index 7ef7adfa324ea..1a8fa30974993 100644 --- a/pkgs/development/compilers/llvm/default.nix +++ b/pkgs/development/compilers/llvm/default.nix @@ -41,7 +41,7 @@ stdenv.mkDerivation rec { description = "Collection of modular and reusable compiler and toolchain technologies"; homepage = http://llvm.org/; license = licenses.bsd3; - maintainers = with maintainers; [ lovek323 raskin shlevy viric ]; + maintainers = with maintainers; [ lovek323 raskin viric ]; platforms = platforms.all; }; } diff --git a/pkgs/development/compilers/llvm/dragonegg.nix b/pkgs/development/compilers/llvm/dragonegg.nix index 737b9533a089b..38d3546d9819a 100644 --- a/pkgs/development/compilers/llvm/dragonegg.nix +++ b/pkgs/development/compilers/llvm/dragonegg.nix @@ -1,18 +1,18 @@ -{stdenv, fetchurl, llvm, gmp, mpfr, mpc}: +{stdenv, fetchurl, llvm, gmp, mpfr, mpc, ncurses, zlib}: stdenv.mkDerivation rec { - version = "3.3"; + version = "3.4"; name = "dragonegg-${version}"; src = fetchurl { url = "http://llvm.org/releases/${version}/${name}.src.tar.gz"; - sha256 = "1kfryjaz5hxh3q6m50qjrwnyjb3smg2zyh025lhz9km3x4kshlri"; + sha256 = "1733czbvby1ww3xkwcwmm0km0bpwhfyxvf56wb0zv5gksp3kbgrl"; }; # The gcc the plugin will be built for (the same used building dragonegg) GCC = "gcc"; - buildInputs = [ llvm gmp mpfr mpc ]; + buildInputs = [ llvm gmp mpfr mpc ncurses zlib ]; installPhase = '' mkdir -p $out/lib $out/share/doc/${name} diff --git a/pkgs/development/compilers/llvm/full.nix b/pkgs/development/compilers/llvm/full.nix new file mode 100644 index 0000000000000..c3ca879c5527e --- /dev/null +++ b/pkgs/development/compilers/llvm/full.nix @@ -0,0 +1,89 @@ +{ stdenv +, fetchurl +, perl, groff +, cmake +, libxml2 +, python +, libffi +, zlib +, ncurses +, isl +, gmp +, doxygen +, binutils_gold +, swig +, which +, libedit +, valgrind +}: + +let + version = "3.4"; + + fetch = name: sha256: fetchurl { + url = "http://llvm.org/releases/${version}/${name}-${version}.src.tar.gz"; + inherit sha256; + }; + + inherit (stdenv.lib) concatStrings mapAttrsToList; +in stdenv.mkDerivation { + name = "llvm-full-${version}"; + + unpackPhase = '' + unpackFile ${fetch "llvm" "0a169ba045r4apb9cv6ncrwl83l7yiajnzirkcdlhj1cd4nn3995"} + mv llvm-${version} llvm + sourceRoot=$PWD/llvm + ${concatStrings (mapAttrsToList (name: { location, sha256 }: '' + unpackFile ${fetch name sha256} + mv ${name}-${version} $sourceRoot/${location} + '') { + clang = { location = "tools/clang"; sha256 = "06rb4j1ifbznl3gfhl98s7ilj0ns01p7y7zap4p7ynmqnc6pia92"; }; + clang-tools-extra = { location = "tools/clang/tools/extra"; sha256 = "1d1822mwxxl9agmyacqjw800kzz5x8xr0sdmi8fgx5xfa5sii1ds"; }; + compiler-rt = { location = "projects/compiler-rt"; sha256 = "0p5b6varxdqn7q3n77xym63hhq4qqxd2981pfpa65r1w72qqjz7k"; }; + lld = { location = "tools/lld"; sha256 = "1sd4scqynryfrmcc4h0ljgwn2dgjmbbmf38z50ya6l0janpd2nxz"; }; + lldb = { location = "tools/lldb"; sha256 = "0h8cmjrhjhigk7k2qll1pcf6jfgmbdzkzfz2i048pkfg851s0x4g"; }; + polly = { location = "tools/polly"; sha256 = "1rqflmgzg1vzjm0r32c5ck8x3q0qm3g0hh8ggbjazh6x7nvmy6lz"; }; + })} + sed -i 's|/usr/bin/env||' \ + $sourceRoot/tools/lldb/scripts/Python/finish-swig-Python-LLDB.sh \ + $sourceRoot/tools/lldb/scripts/Python/build-swig-Python.sh + ''; + + buildInputs = [ perl + groff + cmake + libxml2 + python + libffi + zlib + ncurses + isl + gmp + doxygen + swig + which + libedit + valgrind + ]; + + cmakeFlags = [ + "-DCMAKE_BUILD_TYPE=Release" + "-DLLVM_ENABLE_FFI=ON" + "-DGCC_INSTALL_PREFIX=${stdenv.gcc.gcc}" + "-DC_INCLUDE_DIRS=${stdenv.gcc.libc}/include/" + "-DLLVM_BINUTILS_INCDIR=${binutils_gold}/include" + "-DCMAKE_CXX_FLAGS=-std=c++11" + ]; + + passthru.gcc = stdenv.gcc.gcc; + + enableParallelBuilding = true; + + meta = { + description = "Collection of modular and reusable compiler and toolchain technologies"; + homepage = http://llvm.org/; + license = stdenv.lib.licenses.bsd3; + maintainers = [ stdenv.lib.maintainers.shlevy ]; + platforms = stdenv.lib.platforms.all; + }; +} |