diff options
Diffstat (limited to 'pkgs/development/compilers')
-rw-r--r-- | pkgs/development/compilers/idris/default.nix | 13 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/clang-purity.patch | 105 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/clang.nix | 10 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/default.nix | 37 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/more-memory-for-bugpoint.patch | 15 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/set_soname.patch | 12 | ||||
-rw-r--r-- | pkgs/development/compilers/swi-prolog/default.nix | 4 |
7 files changed, 111 insertions, 85 deletions
diff --git a/pkgs/development/compilers/idris/default.nix b/pkgs/development/compilers/idris/default.nix index 225f8afcd82d..e36924f63fed 100644 --- a/pkgs/development/compilers/idris/default.nix +++ b/pkgs/development/compilers/idris/default.nix @@ -1,19 +1,20 @@ { cabal, binary, Cabal, filepath, gmp, happy, haskeline -, languageJava, libffi, mtl, parsec, split, text, transformers +, languageJava, libffi, llvmGeneral, mtl, parsec, split, text +, transformers, vector, vectorBinaryInstances, boehmgc }: cabal.mkDerivation (self: { pname = "idris"; - version = "0.9.8"; - sha256 = "1mxc6mic3d508ni9pqxw8q31f27shyaxs1rchfl2jg58i9w6iy7h"; + version = "0.9.9"; + sha256 = "0wwssgpiyn7akyfrpi1khvqxx1k8753kk7151zvvymz0zkks643m"; isLibrary = false; isExecutable = true; buildDepends = [ - binary Cabal filepath haskeline languageJava libffi mtl parsec - split text transformers + binary Cabal filepath haskeline languageJava libffi llvmGeneral mtl + parsec split text transformers vector vectorBinaryInstances ]; buildTools = [ happy ]; - extraLibraries = [ gmp ]; + extraLibraries = [ gmp boehmgc ]; meta = { homepage = "http://www.idris-lang.org/"; description = "Functional Programming Language with Dependent Types"; diff --git a/pkgs/development/compilers/llvm/clang-purity.patch b/pkgs/development/compilers/llvm/clang-purity.patch index 18c70b56c540..e82305189e8f 100644 --- a/pkgs/development/compilers/llvm/clang-purity.patch +++ b/pkgs/development/compilers/llvm/clang-purity.patch @@ -1,8 +1,8 @@ -diff -Naur clang-3.2.src-orig/lib/Driver/ToolChains.cpp clang-3.2.src/lib/Driver/ToolChains.cpp ---- clang-3.2.src-orig/lib/Driver/ToolChains.cpp 2012-12-16 10:59:27.000000000 -0500 -+++ clang-3.2.src/lib/Driver/ToolChains.cpp 2013-01-22 14:16:55.787547681 -0500 -@@ -2153,16 +2153,6 @@ - addPathIfExists(LibPath + "/../" + GCCTriple.str() + "/lib", Paths); +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); @@ -15,29 +15,30 @@ diff -Naur clang-3.2.src-orig/lib/Driver/ToolChains.cpp clang-3.2.src/lib/Driver - if (GCCInstallation.isValid()) - addPathIfExists(SysRoot + "/usr/lib/" + GCCInstallation.getTriple().str() + - "/../../" + Multilib, Paths); - +- // Add the non-multilib suffixed paths (if potentially different). if (GCCInstallation.isValid()) { -@@ -2176,8 +2166,6 @@ + const std::string &LibPath = GCCInstallation.getParentLibPath(); +@@ -2341,8 +2330,6 @@ addPathIfExists(LibPath, Paths); } } - addPathIfExists(SysRoot + "/lib", Paths); - addPathIfExists(SysRoot + "/usr/lib", Paths); - } - bool Linux::HasNativeLLVMSupport() const { -@@ -2228,9 +2216,6 @@ + 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, D.SysRoot + "/usr/local/include"); +- addSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/local/include"); - if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) { llvm::sys::Path P(D.ResourceDir); P.appendComponent("include"); -@@ -2295,24 +2280,6 @@ +@@ -2479,26 +2463,6 @@ "/usr/include/powerpc64-linux-gnu" }; ArrayRef<StringRef> MultiarchIncludeDirs; @@ -45,6 +46,8 @@ diff -Naur clang-3.2.src-orig/lib/Driver/ToolChains.cpp clang-3.2.src/lib/Driver - 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; @@ -62,7 +65,7 @@ diff -Naur clang-3.2.src-orig/lib/Driver/ToolChains.cpp clang-3.2.src/lib/Driver for (ArrayRef<StringRef>::iterator I = MultiarchIncludeDirs.begin(), E = MultiarchIncludeDirs.end(); I != E; ++I) { -@@ -2324,13 +2291,6 @@ +@@ -2510,13 +2474,6 @@ if (getTriple().getOS() == llvm::Triple::RTEMS) return; @@ -70,24 +73,30 @@ diff -Naur clang-3.2.src-orig/lib/Driver/ToolChains.cpp clang-3.2.src/lib/Driver - // 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, D.SysRoot + "/include"); +- addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + "/include"); - -- addExternCSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/usr/include"); +- addExternCSystemInclude(DriverArgs, CC1Args, SysRoot + "/usr/include"); } - /// \brief Helper to add the thre variant paths for a libstdc++ installation. -diff -Naur clang-3.2.src-orig/lib/Driver/Tools.cpp clang-3.2.src/lib/Driver/Tools.cpp ---- clang-3.2.src-orig/lib/Driver/Tools.cpp 2012-11-21 02:56:23.000000000 -0500 -+++ clang-3.2.src/lib/Driver/Tools.cpp 2013-01-22 14:24:37.167212186 -0500 -@@ -5972,34 +5972,6 @@ - ToolChain.getArch() == llvm::Triple::thumb || - (!Args.hasArg(options::OPT_static) && - !Args.hasArg(options::OPT_shared))) { + /// \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) @@ -107,31 +116,47 @@ diff -Naur clang-3.2.src-orig/lib/Driver/Tools.cpp clang-3.2.src/lib/Driver/Tool - } - else if (ToolChain.getArch() == llvm::Triple::ppc) - CmdArgs.push_back("/lib/ld.so.1"); -- else if (ToolChain.getArch() == llvm::Triple::ppc64) +- 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"); -diff -Naur clang-3.2.src-orig/lib/Frontend/InitHeaderSearch.cpp clang-3.2.src/lib/Frontend/InitHeaderSearch.cpp ---- clang-3.2.src-orig/lib/Frontend/InitHeaderSearch.cpp 2012-10-24 12:19:39.000000000 -0400 -+++ clang-3.2.src/lib/Frontend/InitHeaderSearch.cpp 2013-01-22 14:20:32.803925775 -0500 -@@ -221,8 +221,6 @@ - case llvm::Triple::Bitrig: - break; - default: + 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, true, false, false); - break; - } - } -@@ -330,8 +328,6 @@ +- 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", System, false, false, false); +- AddPath("/usr/include", ExternCSystem, false); } void InitHeaderSearch:: diff --git a/pkgs/development/compilers/llvm/clang.nix b/pkgs/development/compilers/llvm/clang.nix index c2117798666b..df58591973e6 100644 --- a/pkgs/development/compilers/llvm/clang.nix +++ b/pkgs/development/compilers/llvm/clang.nix @@ -1,14 +1,14 @@ -{ stdenv, fetchurl, perl, groff, llvm, cmake, libxml2 }: +{ stdenv, fetchurl, perl, groff, llvm, cmake, libxml2, python }: let - version = "3.2"; + 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 ]; + buildInputs = [ perl llvm groff cmake libxml2 python ]; patches = stdenv.lib.optional (stdenv.gcc.libc != null) ./clang-purity.patch; @@ -24,8 +24,8 @@ stdenv.mkDerivation { enableParallelBuilding = true; src = fetchurl { - url = "http://llvm.org/releases/${version}/clang-${version}.src.tar.gz"; - sha256 = "0n2nzw3pw2v7fk67f2k2qyzd9wibvi3i5j7cjzz1csqgghzz1aia"; + url = "http://llvm.org/releases/${version}/cfe-${version}.src.tar.gz"; + sha256 = "15mrvw43s4frk1j49qr4v5viq68h8qlf10qs6ghd6mrsmgj5vddi"; }; passthru = { gcc = stdenv.gcc.gcc; }; diff --git a/pkgs/development/compilers/llvm/default.nix b/pkgs/development/compilers/llvm/default.nix index 1e53256a2405..abd3277d919e 100644 --- a/pkgs/development/compilers/llvm/default.nix +++ b/pkgs/development/compilers/llvm/default.nix @@ -1,34 +1,35 @@ -{ stdenv, fetchurl, perl, groff, cmake, python, libffi }: +{ stdenv, fetchurl, perl, groff, cmake, python, libffi, binutils_gold }: -let version = "3.2"; in +let version = "3.3"; in -stdenv.mkDerivation { +stdenv.mkDerivation rec { name = "llvm-${version}"; src = fetchurl { url = "http://llvm.org/releases/${version}/llvm-${version}.src.tar.gz"; - sha256 = "0hv30v5l4fkgyijs56sr1pbrlzgd674pg143x7az2h37sb290l0j"; + sha256 = "0y3mfbb5qzcpw3v5qncn69x1hdrrrfirgs82ypi2annhf0g6nxk8"; }; - patches = [ ./set_soname.patch ]; # http://llvm.org/bugs/show_bug.cgi?id=12334 - patchFlags = "-p0"; + # The default rlimits are too low for shared libraries. + patches = [ ./more-memory-for-bugpoint.patch ]; - preConfigure = "patchShebangs ."; + # libffi was propagated before, but it wasn't even being used, so + # unless something needs it just an input is fine. + buildInputs = [ perl groff cmake python libffi ]; # ToDo: polly, libc++; enable cxx11? - propagatedBuildInputs = [ libffi ]; - buildInputs = [ perl groff cmake python ]; # ToDo: polly, libc++; enable cxx11? + # hacky fix: created binaries need to be run before installation + preBuild = let LD = if stdenv.isDarwin then "DYLD" else "LD"; + in "export ${LD}_LIBRARY_PATH='$$${LD}_LIBRARY_PATH:'`pwd`/lib"; - # created binaries need to be run before installation... I coudn't find a - # better way - preBuild = ( if stdenv.isDarwin - then "export DYLD_LIBRARY_PATH='$DYLD_LIBRARY_PATH:'`pwd`/lib" - else "export LD_LIBRARY_PATH='$LD_LIBRARY_PATH:'`pwd`/lib" ); - - cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ] - ++ stdenv.lib.optional (!stdenv.isDarwin) [ "-DBUILD_SHARED_LIBS=ON" ]; + cmakeFlags = with stdenv; [ + "-DCMAKE_BUILD_TYPE=Release" + "-DLLVM_ENABLE_FFI=ON" + "-DLLVM_BINUTILS_INCDIR=${binutils_gold}/include" + ] ++ lib.optional (!isDarwin) [ "-DBUILD_SHARED_LIBS=ON" ]; enableParallelBuilding = true; - # doCheck = true; # tests are broken, don't know why + + doCheck = true; meta = with stdenv.lib; { description = "Collection of modular and reusable compiler and toolchain technologies"; diff --git a/pkgs/development/compilers/llvm/more-memory-for-bugpoint.patch b/pkgs/development/compilers/llvm/more-memory-for-bugpoint.patch new file mode 100644 index 000000000000..fa19ce4f5871 --- /dev/null +++ b/pkgs/development/compilers/llvm/more-memory-for-bugpoint.patch @@ -0,0 +1,15 @@ +diff -Naur llvm-3.3.src-orig/tools/bugpoint/bugpoint.cpp llvm-3.3.src/tools/bugpoint/bugpoint.cpp +--- llvm-3.3.src-orig/tools/bugpoint/bugpoint.cpp 2013-01-27 20:35:51.000000000 -0500 ++++ llvm-3.3.src/tools/bugpoint/bugpoint.cpp 2013-06-21 18:29:47.612731499 -0400 +@@ -48,9 +48,9 @@ + "is killed (default is 300s), 0 disables timeout")); + + static cl::opt<int> +-MemoryLimit("mlimit", cl::init(-1), cl::value_desc("MBytes"), ++MemoryLimit("mlimit", cl::init(0), cl::value_desc("MBytes"), + cl::desc("Maximum amount of memory to use. 0 disables check." +- " Defaults to 100MB (800MB under valgrind).")); ++ " Check disabled by default.")); + + static cl::opt<bool> + UseValgrind("enable-valgrind", diff --git a/pkgs/development/compilers/llvm/set_soname.patch b/pkgs/development/compilers/llvm/set_soname.patch deleted file mode 100644 index 69ba74dddad8..000000000000 --- a/pkgs/development/compilers/llvm/set_soname.patch +++ /dev/null @@ -1,12 +0,0 @@ -https://bugs.gentoo.org/show_bug.cgi?id=409267 -http://llvm.org/bugs/show_bug.cgi?id=12334 ---- tools/llvm-shlib/Makefile.orig 2012-03-26 18:14:13.071797115 +0200 -+++ tools/llvm-shlib/Makefile 2012-03-26 17:31:12.491196254 +0200 -@@ -67,6 +67,7 @@ - # Include everything from the .a's into the shared library. - LLVMLibsOptions := -Wl,--whole-archive $(LLVMLibsOptions) \ - -Wl,--no-whole-archive -+ LLVMLibsOptions += -Wl,--soname,lib$(LIBRARYNAME)$(SHLIBEXT) - endif - - ifeq ($(HOST_OS),Linux) diff --git a/pkgs/development/compilers/swi-prolog/default.nix b/pkgs/development/compilers/swi-prolog/default.nix index a17e104b5bbf..e8db962d9c4f 100644 --- a/pkgs/development/compilers/swi-prolog/default.nix +++ b/pkgs/development/compilers/swi-prolog/default.nix @@ -18,10 +18,6 @@ stdenv.mkDerivation { configureFlags = "--with-world --enable-gmp --enable-shared"; makeFlags = "world"; - preConfigure = '' - export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${freetype}/include/freetype2" - ''; - meta = { homepage = http://www.swi-prolog.org/; description = "A Prolog compiler and interpreter"; |