diff options
Diffstat (limited to 'pkgs/development/compilers')
57 files changed, 354 insertions, 335 deletions
diff --git a/pkgs/development/compilers/crystal/default.nix b/pkgs/development/compilers/crystal/default.nix index 9491a545a784..db22b668cf5e 100644 --- a/pkgs/development/compilers/crystal/default.nix +++ b/pkgs/development/compilers/crystal/default.nix @@ -178,33 +178,6 @@ let })); in rec { - binaryCrystal_0_27 = genericBinary { - version = "0.27.2"; - sha256s = { - x86_64-linux = "05l5x7kx2acgnv42fj3rr17z73ix06zvi05h7d7vf3kw0izxrasm"; - i686-linux = "1iwizkvn6pglc0azkyfhlmk9ap793krdgcnbihd1kvrvs4cz0mm9"; - x86_64-darwin = "14c69ac2dmfwmb5q56ps3xyxxb0mrbc91ahk9h07c8fiqfii3k9g"; - }; - }; - - binaryCrystal_0_29 = genericBinary { - version = "0.29.0"; - sha256s = { - x86_64-linux = "1wrk29sfx35akg7hxwpdiikvl18wd40gq1kwirw7x522hnq7vlna"; - i686-linux = "1nx0piis2k3nn7kqiijqazzbvlaavhgvsln0l3dxmpfa4i4dz5h2"; - x86_64-darwin = "1fd0fbyf05abivnp3igjlrm2axf65n2wdmg4aq6nqj60ipc01rvd"; - }; - }; - - binaryCrystal_0_30 = genericBinary { - version = "0.30.1"; - sha256s = { - x86_64-linux = "1k2mb74jh3ns3m7y73j4wpf571sayn73zbn6d7q81d09r280zrma"; - i686-linux = "0vsq1ayf922spydp2g2mmimc797jmm7nl5nljhfppcclrwygdyk2"; - x86_64-darwin = "1p3s4lwdgykb7h7aysjhrs7vm0zhinzw5d7rfv6jsyin4j8yxhzz"; - }; - }; - binaryCrystal_0_31 = genericBinary { version = "0.31.1"; sha256s = { @@ -214,32 +187,11 @@ in rec { }; }; - crystal_0_27 = generic { - version = "0.27.2"; - sha256 = "0vxqnpqi85yh0167nrkbksxsni476iwbh6y3znbvbjbbfhsi3nsj"; - doCheck = false; # about 20 tests out of more than 15000 are failing - binary = binaryCrystal_0_27; - }; - - crystal_0_29 = generic { - version = "0.29.0"; - sha256 = "0v9l253b2x8yw6a43vvalywpwciwr094l3g5wakmndfrzak2s3zr"; - doCheck = false; # 6 checks are failing now - binary = binaryCrystal_0_29; - }; - - crystal_0_30 = generic { - version = "0.30.1"; - sha256 = "0fbk784zjflsl3hys5a1xmn8mda8kb2z7ql58wpyfavivswxanbs"; - doCheck = false; # 6 checks are failing now - binary = binaryCrystal_0_29; - }; - crystal_0_31 = generic { version = "0.31.1"; sha256 = "1dswxa32w16gnc6yjym12xj7ibg0g6zk3ngvl76lwdjqb1h6lwz8"; doCheck = false; # 5 checks are failing now - binary = binaryCrystal_0_30; + binary = binaryCrystal_0_31; }; crystal_0_32 = generic { @@ -248,7 +200,21 @@ in rec { binary = binaryCrystal_0_31; }; - crystal = crystal_0_32; + crystal_0_33 = generic { + version = "0.33.0"; + sha256 = "1zg0qixcws81s083wrh54hp83ng2pa8iyyafaha55mzrh8293jbi"; + binary = binaryCrystal_0_31; + doCheck = false; # 4 checks are failing now + }; + + crystal_0_34 = generic { + version = "0.34.0"; + sha256 = "110lfpxk9jnqyznbfnilys65ixj5sdmy8pvvnlhqhc3ccvrlnmq4"; + binary = crystal_0_33; + doCheck = false; # 4 checks are failing now + }; + + crystal = crystal_0_34; crystal2nix = callPackage ./crystal2nix.nix {}; } diff --git a/pkgs/development/compilers/ghc/8.8.3.nix b/pkgs/development/compilers/ghc/8.8.3.nix index 9462835cbdb3..692ac9f0a122 100644 --- a/pkgs/development/compilers/ghc/8.8.3.nix +++ b/pkgs/development/compilers/ghc/8.8.3.nix @@ -73,7 +73,7 @@ let ''; # Splicer will pull out correct variations - libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ] + libDeps = platform: stdenv.lib.optional enableTerminfo ncurses ++ [libffi] ++ stdenv.lib.optional (!enableIntegerSimple) gmp ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv; @@ -160,10 +160,10 @@ stdenv.mkDerivation (rec { "--with-system-libffi" "--with-ffi-includes=${targetPackages.libffi.dev}/include" "--with-ffi-libraries=${targetPackages.libffi.out}/lib" - ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && !enableIntegerSimple) [ + ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [ "--with-gmp-includes=${targetPackages.gmp.dev}/include" "--with-gmp-libraries=${targetPackages.gmp.out}/lib" - ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ + ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib" ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [ diff --git a/pkgs/development/compilers/ghc/head.nix b/pkgs/development/compilers/ghc/head.nix index be8fd73a6be0..d7fe37d1103f 100644 --- a/pkgs/development/compilers/ghc/head.nix +++ b/pkgs/development/compilers/ghc/head.nix @@ -2,13 +2,17 @@ # build-tools , bootPkgs -, autoconf, autoreconfHook, automake, coreutils, fetchgit, fetchpatch, perl, python3, m4, sphinx +, autoconf, autoreconfHook, automake, coreutils, fetchgit, perl, python3, m4, sphinx , bash , libiconv ? null, ncurses +, # GHC can be built with system libffi or a bundled one. + libffi ? null + , enableDwarf ? !stdenv.targetPlatform.isDarwin && - !stdenv.targetPlatform.isWindows, elfutils # for DWARF support + !stdenv.targetPlatform.isWindows +, elfutils # for DWARF support , useLLVM ? !stdenv.targetPlatform.isx86 || stdenv.targetPlatform.isiOS , # LLVM is conceptually a run-time-only depedendency, but for @@ -18,7 +22,8 @@ , # If enabled, GHC will be built with the GPL-free but slower integer-simple # library instead of the faster but GPLed integer-gmp library. - enableIntegerSimple ? !(stdenv.lib.any (stdenv.lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp + enableIntegerSimple ? !(stdenv.lib.any (stdenv.lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms) +, gmp , # If enabled, use -fPIC when compiling static libs. enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform @@ -30,7 +35,7 @@ , # Whetherto build terminfo. enableTerminfo ? !stdenv.targetPlatform.isWindows -, version ? "8.10.20191119" +, version ? "8.11.20200403" , # What flavour to build. An empty string indicates no # specific flavour and falls back to ghc default values. ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) @@ -75,6 +80,7 @@ let # Splicer will pull out correct variations libDeps = platform: stdenv.lib.optional enableTerminfo ncurses + ++ [libffi] ++ stdenv.lib.optional (!enableIntegerSimple) gmp ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv ++ stdenv.lib.optional enableDwarf elfutils; @@ -97,17 +103,14 @@ stdenv.mkDerivation (rec { src = fetchgit { url = "https://gitlab.haskell.org/ghc/ghc.git/"; - rev = "0418c38d55c7a47967187dce2db5ea2ab1021b1e"; - sha256 = "1d8g30ii0w4xh6fh61bxbalsqqyanny99nn3p727fx7favnhgvxi"; + rev = "4291bddaea3148908c55f235ee8978e1d9aa6f20"; + sha256 = "1gs3mxmsdpsgsp7vnawx8mys0qwg4x2zhfrbciy3wv8nv13ar1af"; }; enableParallelBuilding = true; outputs = [ "out" "doc" ]; - patches = [ - ]; - postPatch = "patchShebangs ."; # GHC is a bit confused on its cross terminology. @@ -130,8 +133,8 @@ stdenv.mkDerivation (rec { export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip" echo -n "${buildMK}" > mk/build.mk - echo ${version} >VERSION - echo ${src.rev} >GIT_COMMIT_ID + echo ${version} > VERSION + echo ${src.rev} > GIT_COMMIT_ID ./boot sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure '' + stdenv.lib.optionalString (!stdenv.isDarwin) '' @@ -161,31 +164,40 @@ stdenv.mkDerivation (rec { # TODO(@Ericson2314): Always pass "--target" and always prefix. configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target"; + # `--with` flags for libraries needed for RTS linker configureFlags = [ "--datadir=$doc/share/doc/ghc" - "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib" + "--with-curses-libraries=${ncurses.out}/lib" + ] ++ stdenv.lib.optionals (libffi != null) [ + "--with-system-libffi" + "--with-ffi-includes=${targetPackages.libffi.dev}/include" + "--with-ffi-libraries=${targetPackages.libffi.out}/lib" ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [ - "--with-gmp-includes=${targetPackages.gmp.dev}/include" "--with-gmp-libraries=${targetPackages.gmp.out}/lib" + "--with-gmp-includes=${targetPackages.gmp.dev}/include" + "--with-gmp-libraries=${targetPackages.gmp.out}/lib" ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ - "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib" + "--with-iconv-includes=${libiconv}/include" + "--with-iconv-libraries=${libiconv}/lib" ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [ "--enable-bootstrap-with-devel-snapshot" ] ++ stdenv.lib.optionals useLdGold [ "CFLAGS=-fuse-ld=gold" "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold" "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold" - ] ++ stdenv.lib.optionals (disableLargeAddressSpace) [ - "--disable-large-address-space" - ] ++ stdenv.lib.optionals enableDwarf [ + ] ++ stdenv.lib.optional disableLargeAddressSpace "--disable-large-address-space" + ++ stdenv.lib.optionals enableDwarf [ "--enable-dwarf-unwind" "--with-libdw-includes=${stdenv.lib.getDev elfutils}/include" "--with-libdw-libraries=${stdenv.lib.getLib elfutils}/lib" ]; - # Make sure we never relax`$PATH` and hooks support for compatability. + # Make sure we never relax`$PATH` and hooks support for compatibility. strictDeps = true; + # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself. + dontAddExtraLibs = true; + nativeBuildInputs = [ perl autoconf autoreconfHook automake m4 python3 sphinx ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour diff --git a/pkgs/development/compilers/go/1.14.nix b/pkgs/development/compilers/go/1.14.nix index 475f03689ca9..cf5c878d9c8b 100644 --- a/pkgs/development/compilers/go/1.14.nix +++ b/pkgs/development/compilers/go/1.14.nix @@ -30,11 +30,11 @@ in stdenv.mkDerivation rec { pname = "go"; - version = "1.14"; + version = "1.14.1"; src = fetchurl { url = "https://dl.google.com/go/go${version}.src.tar.gz"; - sha256 = "12a3nzj4k4p5ica447sjfva9pvvj84a03b4xlg3mhl2nmm33wr3d"; + sha256 = "0xkna02clggcdgl5xxwani62krnf64x6p3hk9k5v9ldh2lhmglia"; }; # perl is used for testing go vet diff --git a/pkgs/development/compilers/graalvm/default.nix b/pkgs/development/compilers/graalvm/default.nix index 960f29264674..244ee4c010ea 100644 --- a/pkgs/development/compilers/graalvm/default.nix +++ b/pkgs/development/compilers/graalvm/default.nix @@ -150,7 +150,7 @@ let ]; graal-mxcache = jvmci8-mxcache ++ [ - # rec { sha1 = "5001adab652fc4eb35e30cdefbb0765442f8b7db"; name = "LLVM_ORG_LIBCXX_SRC_${sha1}/llvm-org-libcxx-src.tar.gz"; url = https://lafo.ssw.uni-linz.ac.at/pub/llvm-org/compiler-rt-llvmorg-8.0.0-4-gd563e33a79-bgae3b177eaa-linux-amd64.tar.gz; } + # rec { sha1 = "5001adab652fc4eb35e30cdefbb0765442f8b7db"; name = "LLVM_ORG_LIBCXX_SRC_${sha1}/llvm-org-libcxx-src.tar.gz"; url = "https://lafo.ssw.uni-linz.ac.at/pub/llvm-org/compiler-rt-llvmorg-8.0.0-4-gd563e33a79-bgae3b177eaa-linux-amd64.tar.gz"; } rec { sha1 = "5001adab652fc4eb35e30cdefbb0765442f8b7db"; name = "LLVM_ORG_COMPILER_RT_LINUX_${sha1}/llvm-org-compiler-rt-linux.tar.gz"; url = "https://lafo.ssw.uni-linz.ac.at/pub/llvm-org/compiler-rt-llvmorg-8.0.0-4-gd563e33a79-bgae3b177eaa-linux-amd64.tar.gz"; } rec { sha1 = "a990b2dba1c706f5c43c56fedfe70bad9a695852"; name = "LLVM_WRAPPER_${sha1}/llvm-wrapper.jar"; url = "mirror://maven/org/bytedeco/javacpp-presets/llvm/6.0.1-1.4.2/llvm-6.0.1-1.4.2.jar"; } rec { sha1 = "decbd95d46092fa9afaf2523b5b23d07ad7ad6bc"; name = "LLVM_WRAPPER_${sha1}/llvm-wrapper.sources.jar"; url = "mirror://maven/org/bytedeco/javacpp-presets/llvm/6.0.1-1.4.2/llvm-6.0.1-1.4.2-sources.jar"; } diff --git a/pkgs/development/compilers/halide/default.nix b/pkgs/development/compilers/halide/default.nix index 44c079af9263..356ebe231729 100644 --- a/pkgs/development/compilers/halide/default.nix +++ b/pkgs/development/compilers/halide/default.nix @@ -1,7 +1,10 @@ { llvmPackages, lib, fetchFromGitHub, cmake -, libpng, libjpeg, mesa, eigen, openblas +, libpng, libjpeg, mesa, eigen +, openblas, blas, lapack }: +assert blas.implementation == "openblas" && lapack.implementation == "openblas"; + let version = "2019_08_27"; diff --git a/pkgs/development/compilers/julia/1.3.nix b/pkgs/development/compilers/julia/1.3.nix index 48034920e283..49dc17a27f45 100644 --- a/pkgs/development/compilers/julia/1.3.nix +++ b/pkgs/development/compilers/julia/1.3.nix @@ -7,28 +7,22 @@ # standard library dependencies , curl, fftwSinglePrec, fftw, gmp, libgit2, mpfr, openlibm, openspecfun, pcre2 # linear algebra -, openblas, arpack +, blas, lapack, arpack # Darwin frameworks , CoreServices, ApplicationServices }: +assert (!blas.is64bit) && (!lapack.is64bit); + with stdenv.lib; -# All dependencies must use the same OpenBLAS. -let - arpack_ = arpack; -in let - arpack = arpack_.override { inherit openblas; }; -in - -let majorVersion = "1"; minorVersion = "3"; maintenanceVersion = "1"; src_sha256 = "0q9a7yc3b235psrwl5ghyxgwly25lf8n818l8h6bkf2ymdbsv5p6"; version = "${majorVersion}.${minorVersion}.${maintenanceVersion}"; -in +in stdenv.mkDerivation rec { pname = "julia"; @@ -67,7 +61,7 @@ stdenv.mkDerivation rec { buildInputs = [ arpack fftw fftwSinglePrec gmp libgit2 libunwind mpfr - pcre2.dev openblas openlibm openspecfun readline utf8proc + pcre2.dev blas lapack openlibm openspecfun readline utf8proc zlib ] ++ stdenv.lib.optionals stdenv.isDarwin [CoreServices ApplicationServices] @@ -94,13 +88,9 @@ stdenv.mkDerivation rec { "SHELL=${stdenv.shell}" "USE_SYSTEM_BLAS=1" - "USE_BLAS64=${if openblas.blas64 then "1" else "0"}" - "LIBBLAS=-lopenblas" - "LIBBLASNAME=libopenblas" + "USE_BLAS64=${if blas.is64bit then "1" else "0"}" "USE_SYSTEM_LAPACK=1" - "LIBLAPACK=-lopenblas" - "LIBLAPACKNAME=libopenblas" "USE_SYSTEM_ARPACK=1" "USE_SYSTEM_FFTW=1" @@ -123,7 +113,7 @@ stdenv.mkDerivation rec { ]; LD_LIBRARY_PATH = makeLibraryPath [ - arpack fftw fftwSinglePrec gmp libgit2 mpfr openblas openlibm + arpack fftw fftwSinglePrec gmp libgit2 mpfr blas openlibm openspecfun pcre2 ]; diff --git a/pkgs/development/compilers/julia/shared.nix b/pkgs/development/compilers/julia/shared.nix index ec1818f99890..92e3d4a5c14b 100644 --- a/pkgs/development/compilers/julia/shared.nix +++ b/pkgs/development/compilers/julia/shared.nix @@ -15,20 +15,14 @@ # standard library dependencies , curl, fftwSinglePrec, fftw, gmp, libgit2, mpfr, openlibm, openspecfun, pcre2 # linear algebra -, openblas, arpack +, blas, lapack, arpack # Darwin frameworks , CoreServices, ApplicationServices }: with stdenv.lib; -# All dependencies must use the same OpenBLAS. -let - arpack_ = arpack; -in -let - arpack = arpack_.override { inherit openblas; }; -in +assert (!blas.is64bit) && (!lapack.is64bit); let dsfmtVersion = "2.2.3"; @@ -118,7 +112,7 @@ stdenv.mkDerivation rec { buildInputs = [ arpack fftw fftwSinglePrec gmp libgit2 libunwind mpfr - pcre2.dev openblas openlibm openspecfun readline utf8proc + pcre2.dev blas lapack openlibm openspecfun readline utf8proc zlib ] ++ stdenv.lib.optionals stdenv.isDarwin [CoreServices ApplicationServices] @@ -143,13 +137,9 @@ stdenv.mkDerivation rec { "SHELL=${stdenv.shell}" "USE_SYSTEM_BLAS=1" - "USE_BLAS64=${if openblas.blas64 then "1" else "0"}" - "LIBBLAS=-lopenblas" - "LIBBLASNAME=libopenblas" + "USE_BLAS64=${if blas.is64bit then "1" else "0"}" "USE_SYSTEM_LAPACK=1" - "LIBLAPACK=-lopenblas" - "LIBLAPACKNAME=libopenblas" "USE_SYSTEM_ARPACK=1" "USE_SYSTEM_FFTW=1" @@ -173,7 +163,7 @@ stdenv.mkDerivation rec { ]; LD_LIBRARY_PATH = makeLibraryPath [ - arpack fftw fftwSinglePrec gmp libgit2 mpfr openblas openlibm + arpack fftw fftwSinglePrec gmp libgit2 mpfr blas lapack openlibm openspecfun pcre2 ]; diff --git a/pkgs/development/compilers/ldc/binary.nix b/pkgs/development/compilers/ldc/binary.nix new file mode 100644 index 000000000000..56d40be86194 --- /dev/null +++ b/pkgs/development/compilers/ldc/binary.nix @@ -0,0 +1,41 @@ +{ stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames, libxml2 +, version, hashes }: +with stdenv; +let + OS = if hostPlatform.isDarwin then "osx" else hostPlatform.parsed.kernel.name; + ARCH = toString hostPlatform.parsed.cpu.name; +in mkDerivation { + pname = "ldc-bootstrap"; + inherit version; + + src = fetchurl rec { + name = "ldc2-${version}-${OS}-${ARCH}.tar.xz"; + url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/${name}"; + sha256 = hashes."${OS}-${ARCH}" or (throw "missing bootstrap sha256 for ${OS}-${ARCH}"); + }; + + dontConfigure = true; + dontBuild = true; + + nativeBuildInputs = [ fixDarwinDylibNames autoPatchelfHook ]; + + buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ libxml2 stdenv.cc.cc ]; + + propagatedBuildInputs = [ curl tzdata ]; + + installPhase = '' + mkdir -p $out + + mv bin etc import lib LICENSE README $out/ + ''; + + meta = with lib; { + inherit version; + description = "The LLVM-based D Compiler"; + homepage = "https://github.com/ldc-developers/ldc"; + # from https://github.com/ldc-developers/ldc/blob/master/LICENSE + license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ]; + maintainers = with maintainers; [ ThomasMader lionello ]; + platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]; + }; +} diff --git a/pkgs/development/compilers/ldc/bootstrap.nix b/pkgs/development/compilers/ldc/bootstrap.nix new file mode 100644 index 000000000000..fde4c8426848 --- /dev/null +++ b/pkgs/development/compilers/ldc/bootstrap.nix @@ -0,0 +1,10 @@ +{ callPackage }: +callPackage ./binary.nix { + version = "1.19.0"; + hashes = { + # Get these from `nix-prefetch-url https://github.com/ldc-developers/ldc/releases/download/v1.19.0/ldc2-1.19.0-osx-x86_64.tar.xz` etc.. + osx-x86_64 = "1bp3xkh9zp64dzq8isanib1gacb3nfbl70qv15qygwk1zan6zgy7"; + linux-x86_64 = "146grr2lwarfk13wgkpyb77xb6b3as1is2rf4s2hipqjmc8biy1h"; + linux-aarch64 = "1fv6jshfvi15m7masgxq1hgp216qjd5amizrqdf26vhrq3a08li3"; + }; +} diff --git a/pkgs/development/compilers/ldc/default.nix b/pkgs/development/compilers/ldc/default.nix index 19fe2981c833..5a4baabcf8d8 100644 --- a/pkgs/development/compilers/ldc/default.nix +++ b/pkgs/development/compilers/ldc/default.nix @@ -1,173 +1,5 @@ -{ stdenv, fetchurl, cmake, ninja, llvm_5, llvm_8, curl, tzdata -, libconfig, lit, gdb, unzip, darwin, bash -, callPackage, makeWrapper, runCommand, targetPackages -, bootstrapVersion ? false -, version ? "1.17.0" -, ldcSha256 ? "1aag5jfrng6p4ms0fs90hjbv9bcj3hj8h52r68c3cm6racdajbva" -}: - -let - bootstrapLdc = if !bootstrapVersion then - # LDC 0.17.x is the last version which doesn't need a working D compiler to - # build so we use that version to bootstrap the actual build. - callPackage ./default.nix { - bootstrapVersion = true; - version = "0.17.6"; - ldcSha256 = "0qf5kbxddgmg3kqzi0kf4bgv8vdrnv16y07hcpm0cwv9mc3qr2w6"; - } - else - ""; - - pathConfig = runCommand "ldc-lib-paths" {} '' - mkdir $out - echo ${tzdata}/share/zoneinfo/ > $out/TZDatabaseDirFile - echo ${curl.out}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} > $out/LibcurlPathFile - ''; -in - -stdenv.mkDerivation rec { - pname = "ldc"; - inherit version; - - enableParallelBuilding = true; - - src = fetchurl { - url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz"; - sha256 = ldcSha256; - }; - - # https://issues.dlang.org/show_bug.cgi?id=19553 - hardeningDisable = [ "fortify" ]; - - postUnpack = '' - patchShebangs . - '' - - + stdenv.lib.optionalString (!bootstrapVersion) '' - rm ldc-${version}-src/tests/d2/dmd-testsuite/fail_compilation/mixin_gc.d - rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/xtest46_gc.d - rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/testptrref_gc.d - - # test depends on current year - rm ldc-${version}-src/tests/d2/dmd-testsuite/compilable/ddocYear.d - '' - - + stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isDarwin) '' - # https://github.com/NixOS/nixpkgs/issues/34817 - rm -r ldc-${version}-src/tests/plugins/addFuncEntryCall - ''; - - postPatch = '' - # Setting SHELL=$SHELL when dmd testsuite is run doesn't work on Linux somehow - substituteInPlace tests/d2/dmd-testsuite/Makefile --replace "SHELL=/bin/bash" "SHELL=${bash}/bin/bash" - '' - - + stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isLinux) '' - substituteInPlace runtime/phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" "" - '' - - + stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isDarwin) '' - substituteInPlace runtime/phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)" - '' - - + stdenv.lib.optionalString (bootstrapVersion && stdenv.hostPlatform.isDarwin) '' - # Was not able to compile on darwin due to "__inline_isnanl" - # being undefined. - # TODO Remove with version > 0.17.6 - substituteInPlace dmd2/root/port.c --replace __inline_isnanl __inline_isnan - ''; - - nativeBuildInputs = [ cmake ninja makeWrapper unzip ] - ++ stdenv.lib.optionals (!bootstrapVersion) [ - bootstrapLdc lit lit.python - ] - ++ stdenv.lib.optional (!bootstrapVersion && stdenv.hostPlatform.isDarwin) - # https://github.com/NixOS/nixpkgs/issues/57120 - # https://github.com/NixOS/nixpkgs/pull/59197#issuecomment-481972515 - llvm_5 - ++ stdenv.lib.optional (!bootstrapVersion && !stdenv.hostPlatform.isDarwin) - llvm_8 - ++ stdenv.lib.optional (!bootstrapVersion && !stdenv.hostPlatform.isDarwin) - # https://github.com/NixOS/nixpkgs/pull/36378#issuecomment-385034818 - gdb - ++ stdenv.lib.optionals (bootstrapVersion) [ - libconfig llvm_5 - ] - ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin - darwin.apple_sdk.frameworks.Foundation; - - - buildInputs = [ curl tzdata ]; - - cmakeFlags = stdenv.lib.optionals (!bootstrapVersion) [ - "-DD_FLAGS=-d-version=TZDatabaseDir;-d-version=LibcurlPath;-J${pathConfig}" - "-DCMAKE_BUILD_TYPE=Release" - ]; - - postConfigure = '' - export DMD=$PWD/bin/ldmd2 - ''; - - makeFlags = [ "DMD=$DMD" ]; - - fixNames = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin '' - fixDarwinDylibNames() { - local flags=() - - for fn in "$@"; do - flags+=(-change "$(basename "$fn")" "$fn") - done - - for fn in "$@"; do - if [ -L "$fn" ]; then continue; fi - echo "$fn: fixing dylib" - install_name_tool -id "$fn" "''${flags[@]}" "$fn" - done - } - - fixDarwinDylibNames $(find "$(pwd)/lib" -name "*.dylib") - export DYLD_LIBRARY_PATH=$(pwd)/lib - ''; - - # https://github.com/ldc-developers/ldc/issues/2497#issuecomment-459633746 - additionalExceptions = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin - "|druntime-test-shared"; - - doCheck = !bootstrapVersion; - - checkPhase = stdenv.lib.optionalString doCheck '' - # Build default lib test runners - ninja -j$NIX_BUILD_CORES all-test-runners - - ${fixNames} - - # Run dmd testsuite - export DMD_TESTSUITE_MAKE_ARGS="-j$NIX_BUILD_CORES DMD=$DMD CC=$CXX" - ctest -V -R "dmd-testsuite" - - # Build and run LDC D unittests. - ctest --output-on-failure -R "ldc2-unittest" - - # Run LIT testsuite. - ctest -V -R "lit-tests" - - # Run default lib unittests - ctest -j$NIX_BUILD_CORES --output-on-failure -E "ldc2-unittest|lit-tests|dmd-testsuite${additionalExceptions}" - ''; - - postInstall = '' - wrapProgram $out/bin/ldc2 \ - --prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \ - --set-default CC "${targetPackages.stdenv.cc}/bin/cc" - ''; - - meta = with stdenv.lib; { - description = "The LLVM-based D compiler"; - homepage = "https://github.com/ldc-developers/ldc"; - # from https://github.com/ldc-developers/ldc/blob/master/LICENSE - license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ]; - maintainers = with maintainers; [ ThomasMader ]; - platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ]; - }; +import ./generic.nix { + version = "1.20.1"; + ldcSha256 = "1bqsgab22v02pc3c9gcyf15y7aimadv24d68icaw5lpgnvzxy89b"; } diff --git a/pkgs/development/compilers/ldc/generic.nix b/pkgs/development/compilers/ldc/generic.nix new file mode 100644 index 000000000000..c93d423945cb --- /dev/null +++ b/pkgs/development/compilers/ldc/generic.nix @@ -0,0 +1,143 @@ +{ version, ldcSha256 }: +{ stdenv, fetchurl, cmake, ninja, llvm_5, llvm_8, curl, tzdata +, libconfig, lit, gdb, unzip, darwin, bash +, callPackage, makeWrapper, runCommand, targetPackages +, ldcBootstrap ? callPackage ./bootstrap.nix { } +}: + +let + pathConfig = runCommand "ldc-lib-paths" {} '' + mkdir $out + echo ${tzdata}/share/zoneinfo/ > $out/TZDatabaseDirFile + echo ${curl.out}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} > $out/LibcurlPathFile + ''; + +in + +stdenv.mkDerivation rec { + pname = "ldc"; + inherit version; + + enableParallelBuilding = true; + + src = fetchurl { + url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz"; + sha256 = ldcSha256; + }; + + # https://issues.dlang.org/show_bug.cgi?id=19553 + hardeningDisable = [ "fortify" ]; + + postUnpack = '' + patchShebangs . + '' + + '' + rm ldc-${version}-src/tests/d2/dmd-testsuite/fail_compilation/mixin_gc.d + rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/xtest46_gc.d + rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/testptrref_gc.d + + # test depends on current year + rm ldc-${version}-src/tests/d2/dmd-testsuite/compilable/ddocYear.d + '' + + stdenv.lib.optionalString stdenv.hostPlatform.isDarwin '' + # https://github.com/NixOS/nixpkgs/issues/34817 + rm -r ldc-${version}-src/tests/plugins/addFuncEntryCall + ''; + + postPatch = '' + # Setting SHELL=$SHELL when dmd testsuite is run doesn't work on Linux somehow + substituteInPlace tests/d2/dmd-testsuite/Makefile --replace "SHELL=/bin/bash" "SHELL=${bash}/bin/bash" + '' + + stdenv.lib.optionalString stdenv.hostPlatform.isLinux '' + substituteInPlace runtime/phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" "" + '' + + stdenv.lib.optionalString stdenv.hostPlatform.isDarwin '' + substituteInPlace runtime/phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)" + ''; + + nativeBuildInputs = [ + cmake ninja makeWrapper unzip ldcBootstrap lit lit.python + ] + ++ stdenv.lib.optionals stdenv.hostPlatform.isDarwin [ + darwin.apple_sdk.frameworks.Foundation + # https://github.com/NixOS/nixpkgs/issues/57120 + # https://github.com/NixOS/nixpkgs/pull/59197#issuecomment-481972515 + llvm_5 + ] + ++ stdenv.lib.optionals (!stdenv.hostPlatform.isDarwin) [ + llvm_8 + # https://github.com/NixOS/nixpkgs/pull/36378#issuecomment-385034818 + gdb + ]; + + buildInputs = [ curl tzdata ]; + + cmakeFlags = [ + "-DD_FLAGS=-d-version=TZDatabaseDir;-d-version=LibcurlPath;-J${pathConfig}" + "-DCMAKE_BUILD_TYPE=Release" + ]; + + postConfigure = '' + export DMD=$PWD/bin/ldmd2 + ''; + + makeFlags = [ "DMD=$DMD" ]; + + fixNames = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin '' + fixDarwinDylibNames() { + local flags=() + + for fn in "$@"; do + flags+=(-change "$(basename "$fn")" "$fn") + done + + for fn in "$@"; do + if [ -L "$fn" ]; then continue; fi + echo "$fn: fixing dylib" + install_name_tool -id "$fn" "''${flags[@]}" "$fn" + done + } + + fixDarwinDylibNames $(find "$(pwd)/lib" -name "*.dylib") + export DYLD_LIBRARY_PATH=$(pwd)/lib + ''; + + # https://github.com/ldc-developers/ldc/issues/2497#issuecomment-459633746 + additionalExceptions = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin + "|druntime-test-shared"; + + checkPhase = '' + # Build default lib test runners + ninja -j$NIX_BUILD_CORES all-test-runners + + ${fixNames} + + # Run dmd testsuite + export DMD_TESTSUITE_MAKE_ARGS="-j$NIX_BUILD_CORES DMD=$DMD" + ctest -V -R "dmd-testsuite" + + # Build and run LDC D unittests. + ctest --output-on-failure -R "ldc2-unittest" + + # Run LIT testsuite. + ctest -V -R "lit-tests" + + # Run default lib unittests + ctest -j$NIX_BUILD_CORES --output-on-failure -E "ldc2-unittest|lit-tests|dmd-testsuite${additionalExceptions}" + ''; + + postInstall = '' + wrapProgram $out/bin/ldc2 \ + --prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \ + --set-default CC "${targetPackages.stdenv.cc}/bin/cc" + ''; + + meta = with stdenv.lib; { + description = "The LLVM-based D compiler"; + homepage = "https://github.com/ldc-developers/ldc"; + # from https://github.com/ldc-developers/ldc/blob/master/LICENSE + license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ]; + maintainers = with maintainers; [ ThomasMader lionello ]; + platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ]; + }; +} diff --git a/pkgs/development/compilers/llvm/10/clang/default.nix b/pkgs/development/compilers/llvm/10/clang/default.nix index 51c0cd9ccc32..10026ca4eb19 100644 --- a/pkgs/development/compilers/llvm/10/clang/default.nix +++ b/pkgs/development/compilers/llvm/10/clang/default.nix @@ -95,7 +95,7 @@ let meta = { description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = stdenv.lib.licenses.ncsa; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/development/compilers/llvm/10/libc++/default.nix b/pkgs/development/compilers/llvm/10/libc++/default.nix index f7064bdc452b..ed76ce77a8bb 100644 --- a/pkgs/development/compilers/llvm/10/libc++/default.nix +++ b/pkgs/development/compilers/llvm/10/libc++/default.nix @@ -47,7 +47,7 @@ stdenv.mkDerivation { ]; meta = { - homepage = "http://libcxx.llvm.org/"; + homepage = "https://libcxx.llvm.org/"; description = "A new implementation of the C++ standard library, targeting C++11"; license = with stdenv.lib.licenses; [ ncsa mit ]; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/development/compilers/llvm/10/libc++abi.nix b/pkgs/development/compilers/llvm/10/libc++abi.nix index b3b90687a2ab..ab45f27d24f4 100644 --- a/pkgs/development/compilers/llvm/10/libc++abi.nix +++ b/pkgs/development/compilers/llvm/10/libc++abi.nix @@ -40,7 +40,7 @@ stdenv.mkDerivation { # this should be done in CMake, but having trouble figuring out # the magic combination of necessary CMake variables # if you fancy a try, take a look at - # http://www.cmake.org/Wiki/CMake_RPATH_handling + # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling install_name_tool -id $out/$file $file done make install @@ -58,7 +58,7 @@ stdenv.mkDerivation { ''; meta = { - homepage = "http://libcxxabi.llvm.org/"; + homepage = "https://libcxxabi.llvm.org/"; description = "A new implementation of low level support for a standard C++ library"; license = with stdenv.lib.licenses; [ ncsa mit ]; maintainers = with stdenv.lib.maintainers; [ vlstill ]; diff --git a/pkgs/development/compilers/llvm/10/lld.nix b/pkgs/development/compilers/llvm/10/lld.nix index 8c66697c67e9..6a0032de2ac4 100644 --- a/pkgs/development/compilers/llvm/10/lld.nix +++ b/pkgs/development/compilers/llvm/10/lld.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { meta = { description = "The LLVM Linker"; - homepage = "http://lld.llvm.org/"; + homepage = "https://lld.llvm.org/"; license = stdenv.lib.licenses.ncsa; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/development/compilers/llvm/10/lldb.nix b/pkgs/development/compilers/llvm/10/lldb.nix index a4816a635e41..90716f67f836 100644 --- a/pkgs/development/compilers/llvm/10/lldb.nix +++ b/pkgs/development/compilers/llvm/10/lldb.nix @@ -71,7 +71,7 @@ stdenv.mkDerivation (rec { meta = with stdenv.lib; { description = "A next-generation high-performance debugger"; - homepage = "http://lldb.llvm.org"; + homepage = "https://lldb.llvm.org"; license = licenses.ncsa; platforms = platforms.all; }; diff --git a/pkgs/development/compilers/llvm/10/llvm.nix b/pkgs/development/compilers/llvm/10/llvm.nix index f36f58d82038..648c9fdefc34 100644 --- a/pkgs/development/compilers/llvm/10/llvm.nix +++ b/pkgs/development/compilers/llvm/10/llvm.nix @@ -161,7 +161,7 @@ in stdenv.mkDerivation (rec { meta = { description = "Collection of modular and reusable compiler and toolchain technologies"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = stdenv.lib.licenses.ncsa; maintainers = with stdenv.lib.maintainers; [ lovek323 raskin dtzWill ]; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/development/compilers/llvm/10/openmp.nix b/pkgs/development/compilers/llvm/10/openmp.nix index 940f53f4cf75..624c99bc8683 100644 --- a/pkgs/development/compilers/llvm/10/openmp.nix +++ b/pkgs/development/compilers/llvm/10/openmp.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = { description = "Components required to build an executable OpenMP program"; - homepage = "http://openmp.llvm.org/"; + homepage = "https://openmp.llvm.org/"; license = stdenv.lib.licenses.mit; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/development/compilers/llvm/5/clang/default.nix b/pkgs/development/compilers/llvm/5/clang/default.nix index 0317271f003a..1016398992fb 100644 --- a/pkgs/development/compilers/llvm/5/clang/default.nix +++ b/pkgs/development/compilers/llvm/5/clang/default.nix @@ -83,7 +83,7 @@ let meta = { description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = stdenv.lib.licenses.ncsa; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/development/compilers/llvm/5/libc++/default.nix b/pkgs/development/compilers/llvm/5/libc++/default.nix index 5bd3cde2329e..88ad3c29c3e2 100644 --- a/pkgs/development/compilers/llvm/5/libc++/default.nix +++ b/pkgs/development/compilers/llvm/5/libc++/default.nix @@ -45,7 +45,7 @@ stdenv.mkDerivation { ]; meta = { - homepage = "http://libcxx.llvm.org/"; + homepage = "https://libcxx.llvm.org/"; description = "A new implementation of the C++ standard library, targeting C++11"; license = with stdenv.lib.licenses; [ ncsa mit ]; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/development/compilers/llvm/5/libc++abi.nix b/pkgs/development/compilers/llvm/5/libc++abi.nix index e3ffc473c34d..96d6e78e01e4 100644 --- a/pkgs/development/compilers/llvm/5/libc++abi.nix +++ b/pkgs/development/compilers/llvm/5/libc++abi.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation { # this should be done in CMake, but having trouble figuring out # the magic combination of necessary CMake variables # if you fancy a try, take a look at - # http://www.cmake.org/Wiki/CMake_RPATH_handling + # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling install_name_tool -id $out/$file $file done make install @@ -42,7 +42,7 @@ stdenv.mkDerivation { ''; meta = { - homepage = "http://libcxxabi.llvm.org/"; + homepage = "https://libcxxabi.llvm.org/"; description = "A new implementation of low level support for a standard C++ library"; license = with stdenv.lib.licenses; [ ncsa mit ]; maintainers = with stdenv.lib.maintainers; [ vlstill ]; diff --git a/pkgs/development/compilers/llvm/5/lld.nix b/pkgs/development/compilers/llvm/5/lld.nix index 7ab02c1d35c1..3d9ed6ee6635 100644 --- a/pkgs/development/compilers/llvm/5/lld.nix +++ b/pkgs/development/compilers/llvm/5/lld.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation { meta = { description = "The LLVM Linker"; - homepage = "http://lld.llvm.org/"; + homepage = "https://lld.llvm.org/"; license = stdenv.lib.licenses.ncsa; platforms = stdenv.lib.platforms.all; badPlatforms = [ "x86_64-darwin" ]; diff --git a/pkgs/development/compilers/llvm/5/lldb.nix b/pkgs/development/compilers/llvm/5/lldb.nix index 4a0d678cc2a1..e0698e1dcf3d 100644 --- a/pkgs/development/compilers/llvm/5/lldb.nix +++ b/pkgs/development/compilers/llvm/5/lldb.nix @@ -50,7 +50,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "A next-generation high-performance debugger"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = licenses.ncsa; platforms = platforms.all; }; diff --git a/pkgs/development/compilers/llvm/5/llvm.nix b/pkgs/development/compilers/llvm/5/llvm.nix index 1bf86115bc26..987e6258527a 100644 --- a/pkgs/development/compilers/llvm/5/llvm.nix +++ b/pkgs/development/compilers/llvm/5/llvm.nix @@ -151,7 +151,7 @@ stdenv.mkDerivation ({ requiredSystemFeatures = [ "big-parallel" ]; meta = { description = "Collection of modular and reusable compiler and toolchain technologies"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = stdenv.lib.licenses.ncsa; maintainers = with stdenv.lib.maintainers; [ lovek323 raskin dtzWill ]; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/development/compilers/llvm/5/openmp.nix b/pkgs/development/compilers/llvm/5/openmp.nix index 34e6bc64bfdf..da328de24d13 100644 --- a/pkgs/development/compilers/llvm/5/openmp.nix +++ b/pkgs/development/compilers/llvm/5/openmp.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation { meta = { description = "Components required to build an executable OpenMP program"; - homepage = "http://openmp.llvm.org/"; + homepage = "https://openmp.llvm.org/"; license = stdenv.lib.licenses.mit; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/development/compilers/llvm/6/clang/default.nix b/pkgs/development/compilers/llvm/6/clang/default.nix index 7139e15d1dc3..e2f7166354ae 100644 --- a/pkgs/development/compilers/llvm/6/clang/default.nix +++ b/pkgs/development/compilers/llvm/6/clang/default.nix @@ -83,7 +83,7 @@ let meta = { description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = stdenv.lib.licenses.ncsa; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/development/compilers/llvm/6/libc++/default.nix b/pkgs/development/compilers/llvm/6/libc++/default.nix index 40f91c4d6aef..57f1431f4711 100644 --- a/pkgs/development/compilers/llvm/6/libc++/default.nix +++ b/pkgs/development/compilers/llvm/6/libc++/default.nix @@ -45,7 +45,7 @@ stdenv.mkDerivation { ]; meta = { - homepage = "http://libcxx.llvm.org/"; + homepage = "https://libcxx.llvm.org/"; description = "A new implementation of the C++ standard library, targeting C++11"; license = with stdenv.lib.licenses; [ ncsa mit ]; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/development/compilers/llvm/6/libc++abi.nix b/pkgs/development/compilers/llvm/6/libc++abi.nix index f8d0d2e0cee8..246bc6153e59 100644 --- a/pkgs/development/compilers/llvm/6/libc++abi.nix +++ b/pkgs/development/compilers/llvm/6/libc++abi.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation { # this should be done in CMake, but having trouble figuring out # the magic combination of necessary CMake variables # if you fancy a try, take a look at - # http://www.cmake.org/Wiki/CMake_RPATH_handling + # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling install_name_tool -id $out/$file $file done make install @@ -42,7 +42,7 @@ stdenv.mkDerivation { ''; meta = { - homepage = "http://libcxxabi.llvm.org/"; + homepage = "https://libcxxabi.llvm.org/"; description = "A new implementation of low level support for a standard C++ library"; license = with stdenv.lib.licenses; [ ncsa mit ]; maintainers = with stdenv.lib.maintainers; [ vlstill ]; diff --git a/pkgs/development/compilers/llvm/6/lld.nix b/pkgs/development/compilers/llvm/6/lld.nix index e00b71bc33e4..81b94df31194 100644 --- a/pkgs/development/compilers/llvm/6/lld.nix +++ b/pkgs/development/compilers/llvm/6/lld.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation { meta = { description = "The LLVM Linker"; - homepage = "http://lld.llvm.org/"; + homepage = "https://lld.llvm.org/"; license = stdenv.lib.licenses.ncsa; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/development/compilers/llvm/6/lldb.nix b/pkgs/development/compilers/llvm/6/lldb.nix index 0445dfed47f5..80e298eaf8c0 100644 --- a/pkgs/development/compilers/llvm/6/lldb.nix +++ b/pkgs/development/compilers/llvm/6/lldb.nix @@ -50,7 +50,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "A next-generation high-performance debugger"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = licenses.ncsa; platforms = platforms.all; }; diff --git a/pkgs/development/compilers/llvm/6/llvm.nix b/pkgs/development/compilers/llvm/6/llvm.nix index e1e40c8456d5..9f3b5e5ba0d0 100644 --- a/pkgs/development/compilers/llvm/6/llvm.nix +++ b/pkgs/development/compilers/llvm/6/llvm.nix @@ -149,7 +149,7 @@ stdenv.mkDerivation ({ meta = { description = "Collection of modular and reusable compiler and toolchain technologies"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = stdenv.lib.licenses.ncsa; maintainers = with stdenv.lib.maintainers; [ lovek323 raskin dtzWill ]; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/development/compilers/llvm/6/openmp.nix b/pkgs/development/compilers/llvm/6/openmp.nix index efc5553b1d66..c1a4480a5524 100644 --- a/pkgs/development/compilers/llvm/6/openmp.nix +++ b/pkgs/development/compilers/llvm/6/openmp.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation { meta = { description = "Components required to build an executable OpenMP program"; - homepage = "http://openmp.llvm.org/"; + homepage = "https://openmp.llvm.org/"; license = stdenv.lib.licenses.mit; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/development/compilers/llvm/7/clang/default.nix b/pkgs/development/compilers/llvm/7/clang/default.nix index 3a43b6b8aeef..18ea46ea39c4 100644 --- a/pkgs/development/compilers/llvm/7/clang/default.nix +++ b/pkgs/development/compilers/llvm/7/clang/default.nix @@ -93,7 +93,7 @@ let meta = { description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = stdenv.lib.licenses.ncsa; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/development/compilers/llvm/7/libc++/default.nix b/pkgs/development/compilers/llvm/7/libc++/default.nix index 7c2f1e238bab..96cb671fa431 100644 --- a/pkgs/development/compilers/llvm/7/libc++/default.nix +++ b/pkgs/development/compilers/llvm/7/libc++/default.nix @@ -45,7 +45,7 @@ stdenv.mkDerivation { ]; meta = { - homepage = "http://libcxx.llvm.org/"; + homepage = "https://libcxx.llvm.org/"; description = "A new implementation of the C++ standard library, targeting C++11"; license = with stdenv.lib.licenses; [ ncsa mit ]; platforms = stdenv.lib.platforms.unix; diff --git a/pkgs/development/compilers/llvm/7/libc++abi.nix b/pkgs/development/compilers/llvm/7/libc++abi.nix index 608351e0eb95..97141a0bd402 100644 --- a/pkgs/development/compilers/llvm/7/libc++abi.nix +++ b/pkgs/development/compilers/llvm/7/libc++abi.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation { # this should be done in CMake, but having trouble figuring out # the magic combination of necessary CMake variables # if you fancy a try, take a look at - # http://www.cmake.org/Wiki/CMake_RPATH_handling + # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling install_name_tool -id $out/$file $file done make install @@ -45,7 +45,7 @@ stdenv.mkDerivation { ''; meta = { - homepage = "http://libcxxabi.llvm.org/"; + homepage = "https://libcxxabi.llvm.org/"; description = "A new implementation of low level support for a standard C++ library"; license = with stdenv.lib.licenses; [ ncsa mit ]; maintainers = with stdenv.lib.maintainers; [ vlstill ]; diff --git a/pkgs/development/compilers/llvm/7/lld.nix b/pkgs/development/compilers/llvm/7/lld.nix index 3921e70b3e30..bee9202ed6c1 100644 --- a/pkgs/development/compilers/llvm/7/lld.nix +++ b/pkgs/development/compilers/llvm/7/lld.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation { meta = { description = "The LLVM Linker"; - homepage = "http://lld.llvm.org/"; + homepage = "https://lld.llvm.org/"; license = stdenv.lib.licenses.ncsa; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/development/compilers/llvm/7/lldb.nix b/pkgs/development/compilers/llvm/7/lldb.nix index 81ad06758390..8fadd3cf7849 100644 --- a/pkgs/development/compilers/llvm/7/lldb.nix +++ b/pkgs/development/compilers/llvm/7/lldb.nix @@ -61,7 +61,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "A next-generation high-performance debugger"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = licenses.ncsa; platforms = platforms.all; }; diff --git a/pkgs/development/compilers/llvm/7/llvm.nix b/pkgs/development/compilers/llvm/7/llvm.nix index 0ea517e81f46..55485418e4f1 100644 --- a/pkgs/development/compilers/llvm/7/llvm.nix +++ b/pkgs/development/compilers/llvm/7/llvm.nix @@ -170,7 +170,7 @@ in stdenv.mkDerivation ({ meta = { description = "Collection of modular and reusable compiler and toolchain technologies"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = stdenv.lib.licenses.ncsa; maintainers = with stdenv.lib.maintainers; [ lovek323 raskin dtzWill ]; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/development/compilers/llvm/7/openmp.nix b/pkgs/development/compilers/llvm/7/openmp.nix index 69ee58679c42..898d49dce834 100644 --- a/pkgs/development/compilers/llvm/7/openmp.nix +++ b/pkgs/development/compilers/llvm/7/openmp.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation { meta = { description = "Components required to build an executable OpenMP program"; - homepage = "http://openmp.llvm.org/"; + homepage = "https://openmp.llvm.org/"; license = stdenv.lib.licenses.mit; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/development/compilers/llvm/8/clang/default.nix b/pkgs/development/compilers/llvm/8/clang/default.nix index e549713cecaa..3b398628e567 100644 --- a/pkgs/development/compilers/llvm/8/clang/default.nix +++ b/pkgs/development/compilers/llvm/8/clang/default.nix @@ -103,7 +103,7 @@ let meta = { description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = stdenv.lib.licenses.ncsa; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/development/compilers/llvm/8/libc++/default.nix b/pkgs/development/compilers/llvm/8/libc++/default.nix index 97293464645a..24bca6aafcd1 100644 --- a/pkgs/development/compilers/llvm/8/libc++/default.nix +++ b/pkgs/development/compilers/llvm/8/libc++/default.nix @@ -51,7 +51,7 @@ stdenv.mkDerivation { ]; meta = { - homepage = "http://libcxx.llvm.org/"; + homepage = "https://libcxx.llvm.org/"; description = "A new implementation of the C++ standard library, targeting C++11"; license = with stdenv.lib.licenses; [ ncsa mit ]; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/development/compilers/llvm/8/libc++abi.nix b/pkgs/development/compilers/llvm/8/libc++abi.nix index d8c64f51ee07..590872aaab64 100644 --- a/pkgs/development/compilers/llvm/8/libc++abi.nix +++ b/pkgs/development/compilers/llvm/8/libc++abi.nix @@ -40,7 +40,7 @@ stdenv.mkDerivation { # this should be done in CMake, but having trouble figuring out # the magic combination of necessary CMake variables # if you fancy a try, take a look at - # http://www.cmake.org/Wiki/CMake_RPATH_handling + # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling install_name_tool -id $out/$file $file done make install @@ -58,7 +58,7 @@ stdenv.mkDerivation { ''; meta = { - homepage = "http://libcxxabi.llvm.org/"; + homepage = "https://libcxxabi.llvm.org/"; description = "A new implementation of low level support for a standard C++ library"; license = with stdenv.lib.licenses; [ ncsa mit ]; maintainers = with stdenv.lib.maintainers; [ vlstill ]; diff --git a/pkgs/development/compilers/llvm/8/lld.nix b/pkgs/development/compilers/llvm/8/lld.nix index da5649ef5a23..ba9cf3c57d77 100644 --- a/pkgs/development/compilers/llvm/8/lld.nix +++ b/pkgs/development/compilers/llvm/8/lld.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation { meta = { description = "The LLVM Linker"; - homepage = "http://lld.llvm.org/"; + homepage = "https://lld.llvm.org/"; license = stdenv.lib.licenses.ncsa; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/development/compilers/llvm/8/lldb.nix b/pkgs/development/compilers/llvm/8/lldb.nix index 5df6f760a07d..298ce737fc73 100644 --- a/pkgs/development/compilers/llvm/8/lldb.nix +++ b/pkgs/development/compilers/llvm/8/lldb.nix @@ -54,7 +54,7 @@ stdenv.mkDerivation { meta = with stdenv.lib; { description = "A next-generation high-performance debugger"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = licenses.ncsa; platforms = platforms.all; }; diff --git a/pkgs/development/compilers/llvm/8/llvm.nix b/pkgs/development/compilers/llvm/8/llvm.nix index 9bf835027aef..43615fc675dc 100644 --- a/pkgs/development/compilers/llvm/8/llvm.nix +++ b/pkgs/development/compilers/llvm/8/llvm.nix @@ -145,7 +145,7 @@ in stdenv.mkDerivation ({ meta = { description = "Collection of modular and reusable compiler and toolchain technologies"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = stdenv.lib.licenses.ncsa; maintainers = with stdenv.lib.maintainers; [ lovek323 raskin dtzWill ]; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/development/compilers/llvm/8/openmp.nix b/pkgs/development/compilers/llvm/8/openmp.nix index 74ec8076e435..42cc7adf4f00 100644 --- a/pkgs/development/compilers/llvm/8/openmp.nix +++ b/pkgs/development/compilers/llvm/8/openmp.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation { meta = { description = "Components required to build an executable OpenMP program"; - homepage = "http://openmp.llvm.org/"; + homepage = "https://openmp.llvm.org/"; license = stdenv.lib.licenses.mit; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/development/compilers/llvm/9/clang/default.nix b/pkgs/development/compilers/llvm/9/clang/default.nix index 51399ea45988..c938a01f8979 100644 --- a/pkgs/development/compilers/llvm/9/clang/default.nix +++ b/pkgs/development/compilers/llvm/9/clang/default.nix @@ -98,7 +98,7 @@ let meta = { description = "A c, c++, objective-c, and objective-c++ frontend for the llvm compiler"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = stdenv.lib.licenses.ncsa; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/development/compilers/llvm/9/libc++/default.nix b/pkgs/development/compilers/llvm/9/libc++/default.nix index 05aaa9fc8e5b..f3081d1f2699 100644 --- a/pkgs/development/compilers/llvm/9/libc++/default.nix +++ b/pkgs/development/compilers/llvm/9/libc++/default.nix @@ -47,7 +47,7 @@ stdenv.mkDerivation { ]; meta = { - homepage = "http://libcxx.llvm.org/"; + homepage = "https://libcxx.llvm.org/"; description = "A new implementation of the C++ standard library, targeting C++11"; license = with stdenv.lib.licenses; [ ncsa mit ]; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/development/compilers/llvm/9/libc++abi.nix b/pkgs/development/compilers/llvm/9/libc++abi.nix index 583a47da3ffc..5b63560282c0 100644 --- a/pkgs/development/compilers/llvm/9/libc++abi.nix +++ b/pkgs/development/compilers/llvm/9/libc++abi.nix @@ -40,7 +40,7 @@ stdenv.mkDerivation { # this should be done in CMake, but having trouble figuring out # the magic combination of necessary CMake variables # if you fancy a try, take a look at - # http://www.cmake.org/Wiki/CMake_RPATH_handling + # https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling install_name_tool -id $out/$file $file done make install @@ -58,7 +58,7 @@ stdenv.mkDerivation { ''; meta = { - homepage = "http://libcxxabi.llvm.org/"; + homepage = "https://libcxxabi.llvm.org/"; description = "A new implementation of low level support for a standard C++ library"; license = with stdenv.lib.licenses; [ ncsa mit ]; maintainers = with stdenv.lib.maintainers; [ vlstill ]; diff --git a/pkgs/development/compilers/llvm/9/lld.nix b/pkgs/development/compilers/llvm/9/lld.nix index a746b96f30d5..488870e729a5 100644 --- a/pkgs/development/compilers/llvm/9/lld.nix +++ b/pkgs/development/compilers/llvm/9/lld.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { meta = { description = "The LLVM Linker"; - homepage = "http://lld.llvm.org/"; + homepage = "https://lld.llvm.org/"; license = stdenv.lib.licenses.ncsa; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/development/compilers/llvm/9/lldb.nix b/pkgs/development/compilers/llvm/9/lldb.nix index 1ba0339d6390..a8e193c27b17 100644 --- a/pkgs/development/compilers/llvm/9/lldb.nix +++ b/pkgs/development/compilers/llvm/9/lldb.nix @@ -65,7 +65,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A next-generation high-performance debugger"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = licenses.ncsa; platforms = platforms.all; }; diff --git a/pkgs/development/compilers/llvm/9/llvm.nix b/pkgs/development/compilers/llvm/9/llvm.nix index 49ea3be34da6..f69f45b858b7 100644 --- a/pkgs/development/compilers/llvm/9/llvm.nix +++ b/pkgs/development/compilers/llvm/9/llvm.nix @@ -162,7 +162,7 @@ in stdenv.mkDerivation (rec { meta = { description = "Collection of modular and reusable compiler and toolchain technologies"; - homepage = "http://llvm.org/"; + homepage = "https://llvm.org/"; license = stdenv.lib.licenses.ncsa; maintainers = with stdenv.lib.maintainers; [ lovek323 raskin dtzWill ]; platforms = stdenv.lib.platforms.all; diff --git a/pkgs/development/compilers/llvm/9/openmp.nix b/pkgs/development/compilers/llvm/9/openmp.nix index b5699cd1af02..84f898ec06a1 100644 --- a/pkgs/development/compilers/llvm/9/openmp.nix +++ b/pkgs/development/compilers/llvm/9/openmp.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = { description = "Components required to build an executable OpenMP program"; - homepage = "http://openmp.llvm.org/"; + homepage = "https://openmp.llvm.org/"; license = stdenv.lib.licenses.mit; platforms = stdenv.lib.platforms.all; }; diff --git a/pkgs/development/compilers/tinygo/default.nix b/pkgs/development/compilers/tinygo/default.nix index 412dfa53feb1..069ef69dc7ef 100644 --- a/pkgs/development/compilers/tinygo/default.nix +++ b/pkgs/development/compilers/tinygo/default.nix @@ -3,16 +3,16 @@ buildGoModule rec { pname = "tinygo"; - version = "0.12.0"; + version = "0.13.0"; src = fetchFromGitHub { owner = "tinygo-org"; repo = "tinygo"; rev = "v${version}"; - sha256 = "0dw3kxf55p617pb0bj3knsqcfvap5scxlvhh3a9g9ia92kann4v1"; + sha256 = "0x59j56y704m2hfkg78illgw9f6czrx265x887jfd989lnxphyqa"; }; - modSha256 = "1bjq4vaf38hi204lr9w3r3wcy1rzj06ygi5gzfa7dl3kx10hw6p0"; + modSha256 = "0y8n4mcr4jhas29ahvk8k4zbj1iz65fdpsgq61qa8kcsm8m5kqa6"; enableParallelBuilding = true; subPackages = [ "." ]; buildInputs = [ llvm clang-unwrapped makeWrapper ]; diff --git a/pkgs/development/compilers/zig/default.nix b/pkgs/development/compilers/zig/default.nix index d547535c54be..20ce0b5ff5ee 100644 --- a/pkgs/development/compilers/zig/default.nix +++ b/pkgs/development/compilers/zig/default.nix @@ -1,25 +1,47 @@ -{ stdenv, fetchFromGitHub, cmake, llvmPackages, libxml2, zlib }: +{ stdenv, fetchFromGitHub, cmake, llvmPackages, libxml2, zlib, substituteAll }: -stdenv.mkDerivation rec { - version = "0.5.0"; +llvmPackages.stdenv.mkDerivation rec { + version = "0.6.0"; pname = "zig"; src = fetchFromGitHub { owner = "ziglang"; repo = pname; rev = version; - sha256 = "0xyl0riakh6kwb3yvxihb451kqs4ai4q0aygqygnlb2rlr1dn1zb"; + sha256 = "13dwm2zpscn4n0p5x8ggs9n7mwmq9cgip383i3qqphg7m3pkls8z"; }; nativeBuildInputs = [ cmake ]; - buildInputs = [ llvmPackages.clang-unwrapped llvmPackages.llvm libxml2 zlib ]; + buildInputs = [ + llvmPackages.clang-unwrapped + llvmPackages.llvm + llvmPackages.lld + libxml2 + zlib + ]; + + patches = [ + (substituteAll { + src = ./llvm10_polly.patch; + llvm_extras = "-Wl,${llvmPackages.llvm}/lib/LLVMPolly.so"; + }) + ]; preBuild = '' export HOME=$TMPDIR; ''; + checkPhase = '' + runHook preCheck + ./zig test $src/test/stage1/behavior.zig + runHook postCheck + ''; + + doCheck = true; + meta = with stdenv.lib; { - description = "Programming languaged designed for robustness, optimality, and clarity"; + description = + "General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software"; homepage = "https://ziglang.org/"; license = licenses.mit; platforms = platforms.unix; diff --git a/pkgs/development/compilers/zig/llvm10_polly.patch b/pkgs/development/compilers/zig/llvm10_polly.patch new file mode 100644 index 000000000000..72449c35d91f --- /dev/null +++ b/pkgs/development/compilers/zig/llvm10_polly.patch @@ -0,0 +1,10 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 97608cddf..e451c0711 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -369,4 +369,5 @@ target_link_libraries(zig_cpp LINK_PUBLIC + ${CLANG_LIBRARIES} + ${LLD_LIBRARIES} + ${LLVM_LIBRARIES} ++ @llvm_extras@ + ) |