forked from mirrors/nixpkgs
pkgs/development/compilers: stdenv.lib -> lib
This commit is contained in:
parent
bbaff89ceb
commit
acc5f7b18a
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl }:
|
{ lib, stdenv, fetchurl }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "4th";
|
pname = "4th";
|
||||||
|
@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
|
||||||
"MANDIR=${placeholder "out"}/share/man"
|
"MANDIR=${placeholder "out"}/share/man"
|
||||||
];
|
];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "A portable Forth compiler";
|
description = "A portable Forth compiler";
|
||||||
homepage = "https://thebeez.home.xs4all.nl/4tH/index.html";
|
homepage = "https://thebeez.home.xs4all.nl/4tH/index.html";
|
||||||
license = licenses.lgpl3;
|
license = licenses.lgpl3;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{stdenv, fetchurl, ant, jre, jdk}:
|
{lib, stdenv, fetchurl, ant, jre, jdk}:
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "abcl";
|
pname = "abcl";
|
||||||
version = "1.8.0";
|
version = "1.8.0";
|
||||||
|
@ -31,9 +31,9 @@ stdenv.mkDerivation rec {
|
||||||
meta = {
|
meta = {
|
||||||
inherit version;
|
inherit version;
|
||||||
description = "A JVM-based Common Lisp implementation";
|
description = "A JVM-based Common Lisp implementation";
|
||||||
license = stdenv.lib.licenses.gpl3 ;
|
license = lib.licenses.gpl3 ;
|
||||||
maintainers = [stdenv.lib.maintainers.raskin];
|
maintainers = [lib.maintainers.raskin];
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = lib.platforms.linux;
|
||||||
homepage = "https://common-lisp.net/project/armedbear/";
|
homepage = "https://common-lisp.net/project/armedbear/";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchsvn }:
|
{ lib, stdenv, fetchsvn }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "acme";
|
pname = "acme";
|
||||||
|
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
||||||
--replace "= gcc" "?= gcc"
|
--replace "= gcc" "?= gcc"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "A multi-platform cross assembler for 6502/6510/65816 CPUs";
|
description = "A multi-platform cross assembler for 6502/6510/65816 CPUs";
|
||||||
homepage = "https://sourceforge.net/projects/acme-crossass/";
|
homepage = "https://sourceforge.net/projects/acme-crossass/";
|
||||||
license = licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
sourcePerArch:
|
sourcePerArch:
|
||||||
|
|
||||||
{ swingSupport ? true # not used for now
|
{ swingSupport ? true # not used for now
|
||||||
, stdenv
|
, lib, stdenv
|
||||||
, fetchurl
|
, fetchurl
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -43,11 +43,11 @@ let cpuName = stdenv.hostPlatform.parsed.cpu.name;
|
||||||
|
|
||||||
passthru.home = result;
|
passthru.home = result;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
license = licenses.gpl2Classpath;
|
license = licenses.gpl2Classpath;
|
||||||
description = "AdoptOpenJDK, prebuilt OpenJDK binary";
|
description = "AdoptOpenJDK, prebuilt OpenJDK binary";
|
||||||
platforms = [ "x86_64-darwin" ]; # some inherit jre.meta.platforms
|
platforms = [ "x86_64-darwin" ]; # some inherit jre.meta.platforms
|
||||||
maintainers = with stdenv.lib.maintainers; [ taku0 ];
|
maintainers = with lib.maintainers; [ taku0 ];
|
||||||
};
|
};
|
||||||
|
|
||||||
}; in result
|
}; in result
|
||||||
|
|
|
@ -69,7 +69,7 @@ let result = stdenv.mkDerivation rec {
|
||||||
|
|
||||||
passthru.home = result;
|
passthru.home = result;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
license = licenses.gpl2Classpath;
|
license = licenses.gpl2Classpath;
|
||||||
description = "AdoptOpenJDK, prebuilt OpenJDK binary";
|
description = "AdoptOpenJDK, prebuilt OpenJDK binary";
|
||||||
platforms = lib.mapAttrsToList (arch: _: arch + "-linux") sourcePerArch; # some inherit jre.meta.platforms
|
platforms = lib.mapAttrsToList (arch: _: arch + "-linux") sourcePerArch; # some inherit jre.meta.platforms
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchFromGitHub, cargo, rustc, autoreconfHook, jdk, glib, xulrunner, zip, pkg-config, npapi_sdk, bash, bc }:
|
{ lib, stdenv, fetchFromGitHub, cargo, rustc, autoreconfHook, jdk, glib, xulrunner, zip, pkg-config, npapi_sdk, bash, bc }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "adoptopenjdk-icedtea-web";
|
pname = "adoptopenjdk-icedtea-web";
|
||||||
|
@ -58,6 +58,6 @@ stdenv.mkDerivation rec {
|
||||||
based on the NetX project.
|
based on the NetX project.
|
||||||
'';
|
'';
|
||||||
homepage = "https://github.com/adoptopenjdk/icedtea-web";
|
homepage = "https://github.com/adoptopenjdk/icedtea-web";
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = lib.platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ fetchgit, stdenv, gmp, which, flex, bison, makeWrapper
|
{ fetchgit, lib, stdenv, gmp, which, flex, bison, makeWrapper
|
||||||
, autoconf, automake, libtool, jdk, perl }:
|
, autoconf, automake, libtool, jdk, perl }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
|
@ -32,7 +32,7 @@ stdenv.mkDerivation {
|
||||||
broken = true;
|
broken = true;
|
||||||
homepage = "http://www.aldor.org/";
|
homepage = "http://www.aldor.org/";
|
||||||
description = "Programming language with an expressive type system";
|
description = "Programming language with an expressive type system";
|
||||||
license = stdenv.lib.licenses.asl20;
|
license = lib.licenses.asl20;
|
||||||
|
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
Aldor is a programming language with an expressive type system well-suited
|
Aldor is a programming language with an expressive type system well-suited
|
||||||
|
@ -47,6 +47,6 @@ stdenv.mkDerivation {
|
||||||
and powerful properties of functional, object-oriented and aspect-oriented styles.
|
and powerful properties of functional, object-oriented and aspect-oriented styles.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = lib.platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{stdenv, gcc, glibc, fetchurl, fetchgit, libtool, autoconf, automake, file, gnumake, which, zsh, m4, pkg-config, perl, gnome2, gtk2, pango, sqlite, libxml2, zlib, gmp, smlnj }:
|
{lib, stdenv, gcc, glibc, fetchurl, fetchgit, libtool, autoconf, automake, file, gnumake, which, zsh, m4, pkg-config, perl, gnome2, gtk2, pango, sqlite, libxml2, zlib, gmp, smlnj }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "aliceml-1.4-7d44dc8e";
|
name = "aliceml-1.4-7d44dc8e";
|
||||||
|
@ -50,8 +50,8 @@ stdenv.mkDerivation {
|
||||||
programming.
|
programming.
|
||||||
'';
|
'';
|
||||||
homepage = "https://www.ps.uni-saarland.de/alice/";
|
homepage = "https://www.ps.uni-saarland.de/alice/";
|
||||||
license = stdenv.lib.licenses.mit;
|
license = lib.licenses.mit;
|
||||||
maintainers = [ stdenv.lib.maintainers.doublec ];
|
maintainers = [ lib.maintainers.doublec ];
|
||||||
broken = true;
|
broken = true;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, makeWrapper, jre }:
|
{ lib, stdenv, fetchurl, makeWrapper, jre }:
|
||||||
|
|
||||||
let
|
let
|
||||||
playerglobal_ver = "27.0";
|
playerglobal_ver = "27.0";
|
||||||
|
@ -47,7 +47,7 @@ in stdenv.mkDerivation rec {
|
||||||
|
|
||||||
fixupPhase = ":";
|
fixupPhase = ":";
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Flex SDK for Adobe Flash / ActionScript";
|
description = "Flex SDK for Adobe Flash / ActionScript";
|
||||||
homepage = "https://flex.apache.org/";
|
homepage = "https://flex.apache.org/";
|
||||||
license = with licenses; [ asl20 ];
|
license = with licenses; [ asl20 ];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchFromGitHub, icestorm }:
|
{ lib, stdenv, fetchFromGitHub, icestorm }:
|
||||||
|
|
||||||
with builtins;
|
with builtins;
|
||||||
|
|
||||||
|
@ -37,8 +37,8 @@ stdenv.mkDerivation rec {
|
||||||
the IceStorm [2] icepack command.
|
the IceStorm [2] icepack command.
|
||||||
'';
|
'';
|
||||||
homepage = "https://github.com/cseed/arachne-pnr";
|
homepage = "https://github.com/cseed/arachne-pnr";
|
||||||
license = stdenv.lib.licenses.mit;
|
license = lib.licenses.mit;
|
||||||
maintainers = with stdenv.lib.maintainers; [ shell thoughtpolice ];
|
maintainers = with lib.maintainers; [ shell thoughtpolice ];
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = lib.platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, perl }:
|
{ lib, stdenv, fetchurl, perl }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "asn1c";
|
pname = "asn1c";
|
||||||
|
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
homepage = "http://lionet.info/asn1c/compiler.html";
|
homepage = "http://lionet.info/asn1c/compiler.html";
|
||||||
description = "Open Source ASN.1 Compiler";
|
description = "Open Source ASN.1 Compiler";
|
||||||
license = licenses.bsd2;
|
license = licenses.bsd2;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{stdenv, fetchurl, jre}:
|
{lib, stdenv, fetchurl, jre}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "aspectj";
|
pname = "aspectj";
|
||||||
|
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://www.eclipse.org/aspectj/";
|
homepage = "http://www.eclipse.org/aspectj/";
|
||||||
description = "A seamless aspect-oriented extension to the Java programming language";
|
description = "A seamless aspect-oriented extension to the Java programming language";
|
||||||
platforms = stdenv.lib.platforms.unix;
|
platforms = lib.platforms.unix;
|
||||||
license = stdenv.lib.licenses.epl10;
|
license = lib.licenses.epl10;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, gmp }:
|
{ lib, stdenv, fetchurl, gmp }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "ats";
|
pname = "ats";
|
||||||
|
@ -16,10 +16,10 @@ stdenv.mkDerivation rec {
|
||||||
meta = {
|
meta = {
|
||||||
description = "Functional programming language with dependent types";
|
description = "Functional programming language with dependent types";
|
||||||
homepage = "http://www.ats-lang.org";
|
homepage = "http://www.ats-lang.org";
|
||||||
license = stdenv.lib.licenses.gpl3Plus;
|
license = lib.licenses.gpl3Plus;
|
||||||
# TODO: it looks like ATS requires gcc specifically. Someone with more knowledge
|
# TODO: it looks like ATS requires gcc specifically. Someone with more knowledge
|
||||||
# will need to experiment.
|
# will need to experiment.
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = lib.platforms.linux;
|
||||||
maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
|
maintainers = [ lib.maintainers.thoughtpolice ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, gmp
|
{ lib, stdenv, fetchurl, gmp
|
||||||
, withEmacsSupport ? true
|
, withEmacsSupport ? true
|
||||||
, withContrib ? true }:
|
, withContrib ? true }:
|
||||||
|
|
||||||
|
@ -10,14 +10,14 @@ let
|
||||||
sha256 = "184m4hz2xszhcfc6w9fw9qibhmcvgjmikwfwkb345xypr59jm93d";
|
sha256 = "184m4hz2xszhcfc6w9fw9qibhmcvgjmikwfwkb345xypr59jm93d";
|
||||||
};
|
};
|
||||||
|
|
||||||
postInstallContrib = stdenv.lib.optionalString withContrib
|
postInstallContrib = lib.optionalString withContrib
|
||||||
''
|
''
|
||||||
local contribDir=$out/lib/ats2-postiats-*/ ;
|
local contribDir=$out/lib/ats2-postiats-*/ ;
|
||||||
mkdir -p $contribDir ;
|
mkdir -p $contribDir ;
|
||||||
tar -xzf "${contrib}" --strip-components 1 -C $contribDir ;
|
tar -xzf "${contrib}" --strip-components 1 -C $contribDir ;
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postInstallEmacs = stdenv.lib.optionalString withEmacsSupport
|
postInstallEmacs = lib.optionalString withEmacsSupport
|
||||||
''
|
''
|
||||||
local siteLispDir=$out/share/emacs/site-lisp/ats2 ;
|
local siteLispDir=$out/share/emacs/site-lisp/ats2 ;
|
||||||
mkdir -p $siteLispDir ;
|
mkdir -p $siteLispDir ;
|
||||||
|
@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
buildInputs = [ gmp ];
|
buildInputs = [ gmp ];
|
||||||
|
|
||||||
setupHook = with stdenv.lib;
|
setupHook = with lib;
|
||||||
let
|
let
|
||||||
hookFiles =
|
hookFiles =
|
||||||
[ ./setup-hook.sh ]
|
[ ./setup-hook.sh ]
|
||||||
|
@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
postInstall = postInstallContrib + postInstallEmacs;
|
postInstall = postInstallContrib + postInstallEmacs;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Functional programming language with dependent types";
|
description = "Functional programming language with dependent types";
|
||||||
homepage = "http://www.ats-lang.org";
|
homepage = "http://www.ats-lang.org";
|
||||||
license = licenses.gpl3Plus;
|
license = licenses.gpl3Plus;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchFromGitHub, zlib, jdk, CoreServices, Foundation }:
|
{ lib, stdenv, fetchFromGitHub, zlib, jdk, CoreServices, Foundation }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "avian";
|
pname = "avian";
|
||||||
|
@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ zlib jdk ]
|
buildInputs = [ zlib jdk ]
|
||||||
++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices Foundation ];
|
++ lib.optionals stdenv.isDarwin [ CoreServices Foundation ];
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = "-Wno-error";
|
NIX_CFLAGS_COMPILE = "-Wno-error";
|
||||||
|
|
||||||
|
@ -36,8 +36,8 @@ stdenv.mkDerivation rec {
|
||||||
building self-contained applications.
|
building self-contained applications.
|
||||||
'';
|
'';
|
||||||
homepage = "https://readytalk.github.io/avian/";
|
homepage = "https://readytalk.github.io/avian/";
|
||||||
license = stdenv.lib.licenses.isc;
|
license = lib.licenses.isc;
|
||||||
platforms = stdenv.lib.platforms.all;
|
platforms = lib.platforms.all;
|
||||||
maintainers = [ stdenv.lib.maintainers.earldouglas ];
|
maintainers = [ lib.maintainers.earldouglas ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, autoconf, automake }:
|
{ lib, stdenv, fetchurl, autoconf, automake }:
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "avra-1.3.0";
|
name = "avra-1.3.0";
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
||||||
automake -a
|
automake -a
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Assembler for the Atmel AVR microcontroller family";
|
description = "Assembler for the Atmel AVR microcontroller family";
|
||||||
homepage = "http://avra.sourceforge.net/";
|
homepage = "http://avra.sourceforge.net/";
|
||||||
license = licenses.gpl2Plus;
|
license = licenses.gpl2Plus;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ fetchurl, stdenv, autoconf, automake, libtool, gmp
|
{ fetchurl, lib, stdenv, autoconf, automake, libtool, gmp
|
||||||
, darwin
|
, darwin
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
nativeBuildInputs = [ autoconf automake libtool ];
|
nativeBuildInputs = [ autoconf automake libtool ];
|
||||||
|
|
||||||
buildInputs = stdenv.lib.optional stdenv.isDarwin
|
buildInputs = lib.optional stdenv.isDarwin
|
||||||
darwin.apple_sdk.frameworks.ApplicationServices
|
darwin.apple_sdk.frameworks.ApplicationServices
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
preConfigure =
|
preConfigure =
|
||||||
# For libuv on darwin
|
# For libuv on darwin
|
||||||
stdenv.lib.optionalString stdenv.isDarwin ''
|
lib.optionalString stdenv.isDarwin ''
|
||||||
export LIBTOOLIZE=libtoolize
|
export LIBTOOLIZE=libtoolize
|
||||||
'' +
|
'' +
|
||||||
# Help libgc's configure.
|
# Help libgc's configure.
|
||||||
|
@ -50,9 +50,9 @@ stdenv.mkDerivation rec {
|
||||||
meta = {
|
meta = {
|
||||||
description = "Efficient Scheme compiler";
|
description = "Efficient Scheme compiler";
|
||||||
homepage = "http://www-sop.inria.fr/indes/fp/Bigloo/";
|
homepage = "http://www-sop.inria.fr/indes/fp/Bigloo/";
|
||||||
license = stdenv.lib.licenses.gpl2Plus;
|
license = lib.licenses.gpl2Plus;
|
||||||
platforms = stdenv.lib.platforms.unix;
|
platforms = lib.platforms.unix;
|
||||||
maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
|
maintainers = with lib.maintainers; [ thoughtpolice ];
|
||||||
|
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
Bigloo is a Scheme implementation devoted to one goal: enabling
|
Bigloo is a Scheme implementation devoted to one goal: enabling
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, cmake, python3, fetchFromGitHub, fetchpatch, emscripten }:
|
{ lib, stdenv, cmake, python3, fetchFromGitHub, fetchpatch, emscripten }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "binaryen";
|
pname = "binaryen";
|
||||||
|
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake python3 ];
|
nativeBuildInputs = [ cmake python3 ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
homepage = "https://github.com/WebAssembly/binaryen";
|
homepage = "https://github.com/WebAssembly/binaryen";
|
||||||
description = "Compiler infrastructure and toolchain library for WebAssembly, in C++";
|
description = "Compiler infrastructure and toolchain library for WebAssembly, in C++";
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv
|
{ lib, stdenv
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, fetchpatch
|
, fetchpatch
|
||||||
, autoconf
|
, autoconf
|
||||||
|
@ -97,10 +97,10 @@ in stdenv.mkDerivation rec {
|
||||||
meta = {
|
meta = {
|
||||||
description = "Toolchain for the Bluespec Hardware Definition Language";
|
description = "Toolchain for the Bluespec Hardware Definition Language";
|
||||||
homepage = "https://github.com/B-Lang-org/bsc";
|
homepage = "https://github.com/B-Lang-org/bsc";
|
||||||
license = stdenv.lib.licenses.bsd3;
|
license = lib.licenses.bsd3;
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
# darwin fails at https://github.com/B-Lang-org/bsc/pull/35#issuecomment-583731562
|
# darwin fails at https://github.com/B-Lang-org/bsc/pull/35#issuecomment-583731562
|
||||||
# aarch64 fails, as GHC fails with "ghc: could not execute: opt"
|
# aarch64 fails, as GHC fails with "ghc: could not execute: opt"
|
||||||
maintainers = with stdenv.lib.maintainers; [ jcumming thoughtpolice ];
|
maintainers = with lib.maintainers; [ jcumming thoughtpolice ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
# This file is based on https://github.com/turboMaCk/bs-platform.nix/blob/master/build-bs-platform.nix
|
# This file is based on https://github.com/turboMaCk/bs-platform.nix/blob/master/build-bs-platform.nix
|
||||||
# to make potential future updates simpler
|
# to make potential future updates simpler
|
||||||
|
|
||||||
{ stdenv, fetchFromGitHub, ninja, runCommand, nodejs, python3,
|
{ lib, stdenv, fetchFromGitHub, ninja, runCommand, nodejs, python3,
|
||||||
ocaml-version, version, src,
|
ocaml-version, version, src,
|
||||||
patches ? [],
|
patches ? [],
|
||||||
ocaml ? (import ./ocaml.nix {
|
ocaml ? (import ./ocaml.nix {
|
||||||
version = ocaml-version;
|
version = ocaml-version;
|
||||||
inherit stdenv;
|
inherit lib stdenv;
|
||||||
src = "${src}/ocaml";
|
src = "${src}/ocaml";
|
||||||
}),
|
}),
|
||||||
custom-ninja ? (ninja.overrideAttrs (attrs: {
|
custom-ninja ? (ninja.overrideAttrs (attrs: {
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
{ stdenv, runCommand, fetchFromGitHub, ninja, nodejs, python3, ... }:
|
{ lib, stdenv, runCommand, fetchFromGitHub, ninja, nodejs, python3, ... }:
|
||||||
let
|
let
|
||||||
build-bs-platform = import ./build-bs-platform.nix;
|
build-bs-platform = import ./build-bs-platform.nix;
|
||||||
in
|
in
|
||||||
(build-bs-platform rec {
|
(build-bs-platform rec {
|
||||||
inherit stdenv runCommand fetchFromGitHub ninja nodejs python3;
|
inherit lib stdenv runCommand fetchFromGitHub ninja nodejs python3;
|
||||||
version = "8.2.0";
|
version = "8.2.0";
|
||||||
ocaml-version = "4.06.1";
|
ocaml-version = "4.06.1";
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ in
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
}).overrideAttrs (attrs: {
|
}).overrideAttrs (attrs: {
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "A JavaScript backend for OCaml focused on smooth integration and clean generated code";
|
description = "A JavaScript backend for OCaml focused on smooth integration and clean generated code";
|
||||||
homepage = "https://bucklescript.github.io";
|
homepage = "https://bucklescript.github.io";
|
||||||
license = licenses.lgpl3;
|
license = licenses.lgpl3;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, src, version }:
|
{ lib, stdenv, src, version }:
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
inherit src version;
|
inherit src version;
|
||||||
name = "ocaml-${version}+bs";
|
name = "ocaml-${version}+bs";
|
||||||
|
@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
|
||||||
make -j9 world.opt
|
make -j9 world.opt
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
branch = "4.06";
|
branch = "4.06";
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, perl, coreutils }:
|
{ lib, stdenv, fetchurl, perl, coreutils }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "berkeley_upc-2.22.0";
|
name = "berkeley_upc-2.22.0";
|
||||||
|
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
|
||||||
nativeBuildInputs = [ coreutils ];
|
nativeBuildInputs = [ coreutils ];
|
||||||
buildInputs = [ perl ];
|
buildInputs = [ perl ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "A compiler for the Berkely Unified Parallel C language";
|
description = "A compiler for the Berkely Unified Parallel C language";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
Unified Parallel C (UPC) is an extension of the C programming language
|
Unified Parallel C (UPC) is an extension of the C programming language
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchFromGitHub, gcc }:
|
{ lib, stdenv, fetchFromGitHub, gcc }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "cakelisp";
|
pname = "cakelisp";
|
||||||
|
@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
|
||||||
--replace '"/usr/bin/g++"' '"${gcc}/bin/g++"'
|
--replace '"/usr/bin/g++"' '"${gcc}/bin/g++"'
|
||||||
substituteInPlace src/ModuleManager.cpp \
|
substituteInPlace src/ModuleManager.cpp \
|
||||||
--replace '"/usr/bin/g++"' '"${gcc}/bin/g++"'
|
--replace '"/usr/bin/g++"' '"${gcc}/bin/g++"'
|
||||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
'' + lib.optionalString stdenv.isDarwin ''
|
||||||
substituteInPlace Build.sh --replace '--export-dynamic' '-export_dynamic'
|
substituteInPlace Build.sh --replace '--export-dynamic' '-export_dynamic'
|
||||||
substituteInPlace runtime/HotReloading.cake --replace '--export-dynamic' '-export_dynamic'
|
substituteInPlace runtime/HotReloading.cake --replace '--export-dynamic' '-export_dynamic'
|
||||||
substituteInPlace Bootstrap.cake --replace '--export-dynamic' '-export_dynamic'
|
substituteInPlace Bootstrap.cake --replace '--export-dynamic' '-export_dynamic'
|
||||||
|
@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
|
||||||
install -Dm755 bin/cakelisp -t $out/bin
|
install -Dm755 bin/cakelisp -t $out/bin
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "A performance-oriented Lisp-like language";
|
description = "A performance-oriented Lisp-like language";
|
||||||
homepage = "https://github.com/makuto/cakelisp";
|
homepage = "https://github.com/makuto/cakelisp";
|
||||||
license = licenses.gpl3Plus;
|
license = licenses.gpl3Plus;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchFromGitHub, makeWrapper, clang, haskellPackages }:
|
{ lib, stdenv, fetchFromGitHub, makeWrapper, clang, haskellPackages }:
|
||||||
|
|
||||||
haskellPackages.mkDerivation rec {
|
haskellPackages.mkDerivation rec {
|
||||||
|
|
||||||
|
@ -39,10 +39,10 @@ haskellPackages.mkDerivation rec {
|
||||||
|
|
||||||
description = "A statically typed lisp, without a GC, for real-time applications";
|
description = "A statically typed lisp, without a GC, for real-time applications";
|
||||||
homepage = "https://github.com/carp-lang/Carp";
|
homepage = "https://github.com/carp-lang/Carp";
|
||||||
license = stdenv.lib.licenses.asl20;
|
license = lib.licenses.asl20;
|
||||||
maintainers = with stdenv.lib.maintainers; [ jluttine ];
|
maintainers = with lib.maintainers; [ jluttine ];
|
||||||
|
|
||||||
# Windows not (yet) supported.
|
# Windows not (yet) supported.
|
||||||
platforms = with stdenv.lib.platforms; unix ++ darwin;
|
platforms = with lib.platforms; unix ++ darwin;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv
|
{ lib, stdenv
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
makeFlags = [ "PREFIX=${placeholder "out"}"];
|
makeFlags = [ "PREFIX=${placeholder "out"}"];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
homepage = "https://cc65.github.io/";
|
homepage = "https://cc65.github.io/";
|
||||||
description = "C compiler for processors of 6502 family";
|
description = "C compiler for processors of 6502 family";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, runCommand, bootstrap_cmds, coreutils, glibc, m4, runtimeShell }:
|
{ lib, stdenv, fetchurl, runCommand, bootstrap_cmds, coreutils, glibc, m4, runtimeShell }:
|
||||||
|
|
||||||
let
|
let
|
||||||
options = rec {
|
options = rec {
|
||||||
|
@ -101,7 +101,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
hardeningDisable = [ "format" ];
|
hardeningDisable = [ "format" ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Clozure Common Lisp";
|
description = "Clozure Common Lisp";
|
||||||
homepage = "https://ccl.clozure.com/";
|
homepage = "https://ccl.clozure.com/";
|
||||||
maintainers = with maintainers; [ raskin muflax tohl ];
|
maintainers = with maintainers; [ raskin muflax tohl ];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchFromGitHub
|
{ lib, stdenv, fetchFromGitHub
|
||||||
, coreutils, cctools
|
, coreutils, cctools
|
||||||
, ncurses, libiconv, libX11, libuuid
|
, ncurses, libiconv, libX11, libuuid
|
||||||
}:
|
}:
|
||||||
|
@ -15,12 +15,12 @@ stdenv.mkDerivation rec {
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ coreutils ] ++ stdenv.lib.optional stdenv.isDarwin cctools;
|
nativeBuildInputs = [ coreutils ] ++ lib.optional stdenv.isDarwin cctools;
|
||||||
buildInputs = [ ncurses libiconv libX11 libuuid ];
|
buildInputs = [ ncurses libiconv libX11 libuuid ];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isGNU "-Wno-error=format-truncation";
|
NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-Wno-error=format-truncation";
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** We patch out a very annoying 'feature' in ./configure, which
|
** We patch out a very annoying 'feature' in ./configure, which
|
||||||
|
@ -70,9 +70,9 @@ stdenv.mkDerivation rec {
|
||||||
meta = {
|
meta = {
|
||||||
description = "A powerful and incredibly fast R6RS Scheme compiler";
|
description = "A powerful and incredibly fast R6RS Scheme compiler";
|
||||||
homepage = "https://cisco.github.io/ChezScheme/";
|
homepage = "https://cisco.github.io/ChezScheme/";
|
||||||
license = stdenv.lib.licenses.asl20;
|
license = lib.licenses.asl20;
|
||||||
maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
|
maintainers = with lib.maintainers; [ thoughtpolice ];
|
||||||
platforms = stdenv.lib.platforms.unix;
|
platforms = lib.platforms.unix;
|
||||||
badPlatforms = [ "aarch64-linux" ];
|
badPlatforms = [ "aarch64-linux" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, makeWrapper, darwin, bootstrap-chicken ? null }:
|
{ lib, stdenv, fetchurl, makeWrapper, darwin, bootstrap-chicken ? null }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "4.13.0";
|
version = "4.13.0";
|
||||||
|
@ -8,7 +8,6 @@ let
|
||||||
else if (isFreeBSD || isOpenBSD) then "bsd"
|
else if (isFreeBSD || isOpenBSD) then "bsd"
|
||||||
else if isSunOS then "solaris"
|
else if isSunOS then "solaris"
|
||||||
else "linux"; # Should be a sane default
|
else "linux"; # Should be a sane default
|
||||||
lib = stdenv.lib;
|
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
pname = "chicken";
|
pname = "chicken";
|
||||||
|
@ -70,9 +69,9 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://www.call-cc.org/";
|
homepage = "http://www.call-cc.org/";
|
||||||
license = stdenv.lib.licenses.bsd3;
|
license = lib.licenses.bsd3;
|
||||||
maintainers = with stdenv.lib.maintainers; [ corngood ];
|
maintainers = with lib.maintainers; [ corngood ];
|
||||||
platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; # Maybe other Unix
|
platforms = lib.platforms.linux ++ lib.platforms.darwin; # Maybe other Unix
|
||||||
description = "A portable compiler for the Scheme programming language";
|
description = "A portable compiler for the Scheme programming language";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
CHICKEN is a compiler for the Scheme programming language.
|
CHICKEN is a compiler for the Scheme programming language.
|
||||||
|
|
|
@ -20,8 +20,8 @@ eggDerivation {
|
||||||
meta = {
|
meta = {
|
||||||
description = "Generate nix-expression from CHICKEN scheme eggs";
|
description = "Generate nix-expression from CHICKEN scheme eggs";
|
||||||
homepage = "https://github.com/the-kenny/egg2nix";
|
homepage = "https://github.com/the-kenny/egg2nix";
|
||||||
license = stdenv.lib.licenses.bsd3;
|
license = lib.licenses.bsd3;
|
||||||
platforms = stdenv.lib.platforms.unix;
|
platforms = lib.platforms.unix;
|
||||||
maintainers = with stdenv.lib.maintainers; [ corngood ];
|
maintainers = with lib.maintainers; [ corngood ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, chicken, makeWrapper }:
|
{ lib, stdenv, chicken, makeWrapper }:
|
||||||
{ name, src
|
{ name, src
|
||||||
, buildInputs ? []
|
, buildInputs ? []
|
||||||
, chickenInstallFlags ? []
|
, chickenInstallFlags ? []
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
let
|
let
|
||||||
libPath = "${chicken}/var/lib/chicken/${toString chicken.binaryVersion}/";
|
libPath = "${chicken}/var/lib/chicken/${toString chicken.binaryVersion}/";
|
||||||
overrides = import ./overrides.nix;
|
overrides = import ./overrides.nix;
|
||||||
baseName = stdenv.lib.getName name;
|
baseName = lib.getName name;
|
||||||
override = if builtins.hasAttr baseName overrides
|
override = if builtins.hasAttr baseName overrides
|
||||||
then
|
then
|
||||||
builtins.getAttr baseName overrides
|
builtins.getAttr baseName overrides
|
||||||
|
@ -20,7 +20,7 @@ stdenv.mkDerivation ({
|
||||||
propagatedBuildInputs = buildInputs;
|
propagatedBuildInputs = buildInputs;
|
||||||
buildInputs = [ makeWrapper chicken ];
|
buildInputs = [ makeWrapper chicken ];
|
||||||
|
|
||||||
CSC_OPTIONS = stdenv.lib.concatStringsSep " " cscOptions;
|
CSC_OPTIONS = lib.concatStringsSep " " cscOptions;
|
||||||
|
|
||||||
CHICKEN_REPOSITORY = libPath;
|
CHICKEN_REPOSITORY = libPath;
|
||||||
CHICKEN_INSTALL_PREFIX = "$out";
|
CHICKEN_INSTALL_PREFIX = "$out";
|
||||||
|
@ -28,7 +28,7 @@ stdenv.mkDerivation ({
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
runHook preInstall
|
runHook preInstall
|
||||||
|
|
||||||
chicken-install -p $out ${stdenv.lib.concatStringsSep " " chickenInstallFlags}
|
chicken-install -p $out ${lib.concatStringsSep " " chickenInstallFlags}
|
||||||
|
|
||||||
for f in $out/bin/*
|
for f in $out/bin/*
|
||||||
do
|
do
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, makeWrapper, darwin, bootstrap-chicken ? null }:
|
{ lib, stdenv, fetchurl, makeWrapper, darwin, bootstrap-chicken ? null }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "5.2.0";
|
version = "5.2.0";
|
||||||
|
@ -8,7 +8,6 @@ let
|
||||||
else if (isFreeBSD || isOpenBSD) then "bsd"
|
else if (isFreeBSD || isOpenBSD) then "bsd"
|
||||||
else if isSunOS then "solaris"
|
else if isSunOS then "solaris"
|
||||||
else "linux"; # Should be a sane default
|
else "linux"; # Should be a sane default
|
||||||
lib = stdenv.lib;
|
|
||||||
in
|
in
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
pname = "chicken";
|
pname = "chicken";
|
||||||
|
@ -51,9 +50,9 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://www.call-cc.org/";
|
homepage = "http://www.call-cc.org/";
|
||||||
license = stdenv.lib.licenses.bsd3;
|
license = lib.licenses.bsd3;
|
||||||
maintainers = with stdenv.lib.maintainers; [ corngood ];
|
maintainers = with lib.maintainers; [ corngood ];
|
||||||
platforms = stdenv.lib.platforms.linux ++ stdenv.lib.platforms.darwin; # Maybe other Unix
|
platforms = lib.platforms.linux ++ lib.platforms.darwin; # Maybe other Unix
|
||||||
description = "A portable compiler for the Scheme programming language";
|
description = "A portable compiler for the Scheme programming language";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
CHICKEN is a compiler for the Scheme programming language.
|
CHICKEN is a compiler for the Scheme programming language.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, eggDerivation, fetchFromGitHub, chickenEggs }:
|
{ lib, stdenv, eggDerivation, fetchFromGitHub, chickenEggs }:
|
||||||
|
|
||||||
# Note: This mostly reimplements the default.nix already contained in
|
# Note: This mostly reimplements the default.nix already contained in
|
||||||
# the tarball. Is there a nicer way than duplicating code?
|
# the tarball. Is there a nicer way than duplicating code?
|
||||||
|
@ -22,8 +22,8 @@ eggDerivation {
|
||||||
meta = {
|
meta = {
|
||||||
description = "Generate nix-expression from CHICKEN scheme eggs";
|
description = "Generate nix-expression from CHICKEN scheme eggs";
|
||||||
homepage = "https://github.com/the-kenny/egg2nix";
|
homepage = "https://github.com/the-kenny/egg2nix";
|
||||||
license = stdenv.lib.licenses.bsd3;
|
license = lib.licenses.bsd3;
|
||||||
platforms = stdenv.lib.platforms.unix;
|
platforms = lib.platforms.unix;
|
||||||
maintainers = with stdenv.lib.maintainers; [ corngood ];
|
maintainers = with lib.maintainers; [ corngood ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, chicken, makeWrapper }:
|
{ lib, stdenv, chicken, makeWrapper }:
|
||||||
{ name, src
|
{ name, src
|
||||||
, buildInputs ? []
|
, buildInputs ? []
|
||||||
, chickenInstallFlags ? []
|
, chickenInstallFlags ? []
|
||||||
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
let
|
let
|
||||||
overrides = import ./overrides.nix;
|
overrides = import ./overrides.nix;
|
||||||
baseName = stdenv.lib.getName name;
|
baseName = lib.getName name;
|
||||||
override = if builtins.hasAttr baseName overrides
|
override = if builtins.hasAttr baseName overrides
|
||||||
then
|
then
|
||||||
builtins.getAttr baseName overrides
|
builtins.getAttr baseName overrides
|
||||||
|
@ -19,14 +19,14 @@ stdenv.mkDerivation ({
|
||||||
propagatedBuildInputs = buildInputs;
|
propagatedBuildInputs = buildInputs;
|
||||||
buildInputs = [ makeWrapper chicken ];
|
buildInputs = [ makeWrapper chicken ];
|
||||||
|
|
||||||
CSC_OPTIONS = stdenv.lib.concatStringsSep " " cscOptions;
|
CSC_OPTIONS = lib.concatStringsSep " " cscOptions;
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
runHook preInstall
|
runHook preInstall
|
||||||
|
|
||||||
export CHICKEN_INSTALL_PREFIX=$out
|
export CHICKEN_INSTALL_PREFIX=$out
|
||||||
export CHICKEN_INSTALL_REPOSITORY=$out/lib/chicken/${toString chicken.binaryVersion}
|
export CHICKEN_INSTALL_REPOSITORY=$out/lib/chicken/${toString chicken.binaryVersion}
|
||||||
chicken-install ${stdenv.lib.concatStringsSep " " chickenInstallFlags}
|
chicken-install ${lib.concatStringsSep " " chickenInstallFlags}
|
||||||
|
|
||||||
for f in $out/bin/*
|
for f in $out/bin/*
|
||||||
do
|
do
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchFromGitHub }:
|
{ lib, stdenv, fetchFromGitHub }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "ciao";
|
pname = "ciao";
|
||||||
|
@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
|
||||||
./ciao-boot.sh install
|
./ciao-boot.sh install
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
homepage = "https://ciao-lang.org/";
|
homepage = "https://ciao-lang.org/";
|
||||||
description = "A general purpose, multi-paradigm programming language in the Prolog family";
|
description = "A general purpose, multi-paradigm programming language in the Prolog family";
|
||||||
license = licenses.lgpl21;
|
license = licenses.lgpl21;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchFromGitHub, fetchFromGitLab
|
{ lib, stdenv, fetchFromGitHub, fetchFromGitLab
|
||||||
, llvmPackages
|
, llvmPackages
|
||||||
, cmake, boehmgc, gmp, zlib, ncurses, boost, libelf
|
, cmake, boehmgc, gmp, zlib, ncurses, boost, libelf
|
||||||
, python, git, sbcl
|
, python, git, sbcl
|
||||||
|
@ -72,14 +72,14 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
buildInputs = with llvmPackages;
|
buildInputs = with llvmPackages;
|
||||||
(
|
(
|
||||||
builtins.map (x: stdenv.lib.overrideDerivation x
|
builtins.map (x: lib.overrideDerivation x
|
||||||
(x: {NIX_CFLAGS_COMPILE= (x.NIX_CFLAGS_COMPILE or "") + " -frtti"; }))
|
(x: {NIX_CFLAGS_COMPILE= (x.NIX_CFLAGS_COMPILE or "") + " -frtti"; }))
|
||||||
[ llvm clang clang-unwrapped clang ]) ++
|
[ llvm clang clang-unwrapped clang ]) ++
|
||||||
[
|
[
|
||||||
gmp zlib ncurses
|
gmp zlib ncurses
|
||||||
boost boehmgc libelf
|
boost boehmgc libelf
|
||||||
(boost.override {enableStatic = true; enableShared = false;})
|
(boost.override {enableStatic = true; enableShared = false;})
|
||||||
(stdenv.lib.overrideDerivation boehmgc
|
(lib.overrideDerivation boehmgc
|
||||||
(x: {configureFlags = (x.configureFlags or []) ++ ["--enable-static"];}))
|
(x: {configureFlags = (x.configureFlags or []) ++ ["--enable-static"];}))
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -120,9 +120,9 @@ stdenv.mkDerivation rec {
|
||||||
meta = {
|
meta = {
|
||||||
inherit version;
|
inherit version;
|
||||||
description = "A Common Lisp implementation based on LLVM with C++ integration";
|
description = "A Common Lisp implementation based on LLVM with C++ integration";
|
||||||
license = stdenv.lib.licenses.lgpl21Plus ;
|
license = lib.licenses.lgpl21Plus ;
|
||||||
maintainers = [stdenv.lib.maintainers.raskin];
|
maintainers = [lib.maintainers.raskin];
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = lib.platforms.linux;
|
||||||
# Large, long to build, a private build of clang is needed, a prerelease.
|
# Large, long to build, a private build of clang is needed, a prerelease.
|
||||||
hydraPlatforms = [];
|
hydraPlatforms = [];
|
||||||
homepage = "https://github.com/drmeister/clasp";
|
homepage = "https://github.com/drmeister/clasp";
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl }:
|
{ lib, stdenv, fetchurl }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "clean-3.0";
|
name = "clean-3.0";
|
||||||
|
@ -45,8 +45,8 @@ stdenv.mkDerivation {
|
||||||
'';
|
'';
|
||||||
|
|
||||||
homepage = "http://wiki.clean.cs.ru.nl/Clean";
|
homepage = "http://wiki.clean.cs.ru.nl/Clean";
|
||||||
license = stdenv.lib.licenses.lgpl21;
|
license = lib.licenses.lgpl21;
|
||||||
maintainers = [ stdenv.lib.maintainers.kkallio ];
|
maintainers = [ lib.maintainers.kkallio ];
|
||||||
platforms = [ "i686-linux" "x86_64-linux" ];
|
platforms = [ "i686-linux" "x86_64-linux" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, jre, makeWrapper }:
|
{ lib, stdenv, fetchurl, jre, makeWrapper }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "closure-compiler";
|
pname = "closure-compiler";
|
||||||
|
@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
|
||||||
--add-flags "-jar $out/share/java/closure-compiler-v${version}.jar"
|
--add-flags "-jar $out/share/java/closure-compiler-v${version}.jar"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "A tool for making JavaScript download and run faster";
|
description = "A tool for making JavaScript download and run faster";
|
||||||
homepage = "https://developers.google.com/closure/compiler/";
|
homepage = "https://developers.google.com/closure/compiler/";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, python, runtimeShell }:
|
{ lib, stdenv, fetchurl, python, runtimeShell }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
name = "cmdstan-2.17.1";
|
name = "cmdstan-2.17.1";
|
||||||
|
@ -36,7 +36,7 @@ stdenv.mkDerivation {
|
||||||
likelihood estimation with Optimization (L-BFGS).
|
likelihood estimation with Optimization (L-BFGS).
|
||||||
'';
|
'';
|
||||||
homepage = "https://mc-stan.org/interfaces/cmdstan.html";
|
homepage = "https://mc-stan.org/interfaces/cmdstan.html";
|
||||||
license = stdenv.lib.licenses.bsd3;
|
license = lib.licenses.bsd3;
|
||||||
platforms = stdenv.lib.platforms.all;
|
platforms = lib.platforms.all;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{stdenv, fetchurl}:
|
{lib, stdenv, fetchurl}:
|
||||||
|
|
||||||
let
|
let
|
||||||
inherit (stdenv.hostPlatform) system;
|
inherit (stdenv.hostPlatform) system;
|
||||||
|
@ -36,9 +36,9 @@ stdenv.mkDerivation {
|
||||||
which runs on most major Unix platforms. It mainly conforms to the
|
which runs on most major Unix platforms. It mainly conforms to the
|
||||||
ANSI Common Lisp standard.
|
ANSI Common Lisp standard.
|
||||||
'';
|
'';
|
||||||
license = stdenv.lib.licenses.free; # public domain
|
license = lib.licenses.free; # public domain
|
||||||
homepage = "http://www.cons.org/cmucl/";
|
homepage = "http://www.cons.org/cmucl/";
|
||||||
maintainers = [stdenv.lib.maintainers.tohl];
|
maintainers = [lib.maintainers.tohl];
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = lib.platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, makeWrapper, gcc, asciidoc, autoreconfHook }:
|
{ lib, stdenv, fetchurl, makeWrapper, gcc, asciidoc, autoreconfHook }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "colm";
|
pname = "colm";
|
||||||
|
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
|
||||||
--prefix PATH ":" ${gcc}/bin
|
--prefix PATH ":" ${gcc}/bin
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "A programming language for the analysis and transformation of computer languages";
|
description = "A programming language for the analysis and transformation of computer languages";
|
||||||
homepage = "http://www.colm.net/open-source/colm";
|
homepage = "http://www.colm.net/open-source/colm";
|
||||||
license = licenses.gpl2;
|
license = licenses.gpl2;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchFromGitHub, fetchpatch, makeWrapper
|
{ lib, stdenv, fetchFromGitHub, fetchpatch, makeWrapper
|
||||||
, coqPackages, ocamlPackages, coq2html
|
, coqPackages, ocamlPackages, coq2html
|
||||||
, tools ? stdenv.cc
|
, tools ? stdenv.cc
|
||||||
, version ? "3.8"
|
, version ? "3.8"
|
||||||
|
@ -8,7 +8,7 @@ let
|
||||||
ocaml-pkgs = with ocamlPackages; [ ocaml findlib menhir ];
|
ocaml-pkgs = with ocamlPackages; [ ocaml findlib menhir ];
|
||||||
ccomp-platform = if stdenv.isDarwin then "x86_64-macosx" else "x86_64-linux";
|
ccomp-platform = if stdenv.isDarwin then "x86_64-macosx" else "x86_64-linux";
|
||||||
inherit (coqPackages) coq flocq;
|
inherit (coqPackages) coq flocq;
|
||||||
inherit (stdenv.lib) optional optionalString;
|
inherit (lib) optional optionalString;
|
||||||
in
|
in
|
||||||
|
|
||||||
let param = {
|
let param = {
|
||||||
|
@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
outputs = [ "out" "lib" "doc" "man" ];
|
outputs = [ "out" "lib" "doc" "man" ];
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Formally verified C compiler";
|
description = "Formally verified C compiler";
|
||||||
homepage = "https://compcert.org";
|
homepage = "https://compcert.org";
|
||||||
license = licenses.inria-compcert;
|
license = licenses.inria-compcert;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv
|
{ lib, stdenv
|
||||||
, fetchzip
|
, fetchzip
|
||||||
, pkg-config
|
, pkg-config
|
||||||
, autoPatchelfHook
|
, autoPatchelfHook
|
||||||
|
@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
|
||||||
isClang = true;
|
isClang = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description =
|
description =
|
||||||
"Accelerate Complex C++ Applications on Heterogeneous Compute Systems using Open Standards";
|
"Accelerate Complex C++ Applications on Heterogeneous Compute Systems using Open Standards";
|
||||||
homepage = "https://www.codeplay.com/products/computesuite/computecpp";
|
homepage = "https://www.codeplay.com/products/computesuite/computecpp";
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv
|
{ lib, stdenv
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, libffi
|
, libffi
|
||||||
}:
|
}:
|
||||||
|
@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
make BACKEND=elf64 install prefix=$out
|
make BACKEND=elf64 install prefix=$out
|
||||||
'';
|
'';
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Simple imperative language, statically typed with type inference and genericity";
|
description = "Simple imperative language, statically typed with type inference and genericity";
|
||||||
homepage = "https://tibleiz.net/copper/";
|
homepage = "https://tibleiz.net/copper/";
|
||||||
license = licenses.bsd2;
|
license = licenses.bsd2;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ config, stdenv
|
{ config, lib, stdenv
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, fetchpatch
|
, fetchpatch
|
||||||
, which
|
, which
|
||||||
|
@ -90,7 +90,7 @@ stdenv.mkDerivation rec {
|
||||||
runHook postInstall
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
homepage = "https://github.com/dotnet/core/";
|
homepage = "https://github.com/dotnet/core/";
|
||||||
description = ".NET is a general purpose development platform";
|
description = ".NET is a general purpose development platform";
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
|
|
|
@ -63,7 +63,7 @@ let
|
||||||
commonBuildInputs = extraBuildInputs: [
|
commonBuildInputs = extraBuildInputs: [
|
||||||
boehmgc libatomic_ops pcre libevent libyaml zlib libxml2 openssl
|
boehmgc libatomic_ops pcre libevent libyaml zlib libxml2 openssl
|
||||||
] ++ extraBuildInputs
|
] ++ extraBuildInputs
|
||||||
++ stdenv.lib.optionals stdenv.isDarwin [ libiconv ];
|
++ lib.optionals stdenv.isDarwin [ libiconv ];
|
||||||
|
|
||||||
generic = (
|
generic = (
|
||||||
{ version
|
{ version
|
||||||
|
|
|
@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
|
||||||
gtk2 glib fontconfig freetype unixODBC alsaLib
|
gtk2 glib fontconfig freetype unixODBC alsaLib
|
||||||
];
|
];
|
||||||
|
|
||||||
rpath = "${stdenv.lib.makeLibraryPath runtimeDependencies}:${stdenv.cc.cc.lib}/lib64";
|
rpath = "${lib.makeLibraryPath runtimeDependencies}:${stdenv.cc.cc.lib}/lib64";
|
||||||
|
|
||||||
unpackPhase = ''
|
unpackPhase = ''
|
||||||
sh $src --keep --noexec
|
sh $src --keep --noexec
|
||||||
|
@ -232,7 +232,7 @@ stdenv.mkDerivation rec {
|
||||||
majorVersion = lib.versions.majorMinor version;
|
majorVersion = lib.versions.majorMinor version;
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "A compiler for NVIDIA GPUs, math libraries, and tools";
|
description = "A compiler for NVIDIA GPUs, math libraries, and tools";
|
||||||
homepage = "https://developer.nvidia.com/cuda-toolkit";
|
homepage = "https://developer.nvidia.com/cuda-toolkit";
|
||||||
platforms = [ "x86_64-linux" ];
|
platforms = [ "x86_64-linux" ];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv
|
{ lib, stdenv
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, cmake
|
, cmake
|
||||||
, pkg-config
|
, pkg-config
|
||||||
|
@ -27,7 +27,7 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
checkTarget = "tests";
|
checkTarget = "tests";
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Lisp-flavoured C";
|
description = "Lisp-flavoured C";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
Dale is a system (no GC) programming language that uses
|
Dale is a system (no GC) programming language that uses
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchFromGitHub }:
|
{ lib, stdenv, fetchFromGitHub }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "dasm";
|
pname = "dasm";
|
||||||
|
@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
|
||||||
checkTarget = "test";
|
checkTarget = "test";
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Assembler for 6502 and other 8-bit microprocessors";
|
description = "Assembler for 6502 and other 8-bit microprocessors";
|
||||||
homepage = "https://dasm-assembler.github.io";
|
homepage = "https://dasm-assembler.github.io";
|
||||||
license = licenses.gpl2;
|
license = licenses.gpl2;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl }:
|
{ lib, stdenv, fetchurl }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "dev86";
|
pname = "dev86";
|
||||||
|
@ -16,6 +16,6 @@ stdenv.mkDerivation rec {
|
||||||
meta = {
|
meta = {
|
||||||
description = "Linux 8086 development environment";
|
description = "Linux 8086 development environment";
|
||||||
homepage = "http://v3.sk/~lkundrak/dev86/";
|
homepage = "http://v3.sk/~lkundrak/dev86/";
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = lib.platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ let
|
||||||
name = "dmd.conf";
|
name = "dmd.conf";
|
||||||
text = (lib.generators.toINI {} {
|
text = (lib.generators.toINI {} {
|
||||||
Environment = {
|
Environment = {
|
||||||
DFLAGS = ''-I@out@/include/dmd -L-L@out@/lib -fPIC ${stdenv.lib.optionalString (!targetPackages.stdenv.cc.isClang) "-L--export-dynamic"}'';
|
DFLAGS = ''-I@out@/include/dmd -L-L@out@/lib -fPIC ${lib.optionalString (!targetPackages.stdenv.cc.isClang) "-L--export-dynamic"}'';
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@ -77,16 +77,16 @@ stdenv.mkDerivation rec {
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
substituteInPlace dmd/test/dshell/test6952.d --replace "/usr/bin/env bash" "${bash}/bin/bash"
|
substituteInPlace dmd/test/dshell/test6952.d --replace "/usr/bin/env bash" "${bash}/bin/bash"
|
||||||
''
|
''
|
||||||
+ stdenv.lib.optionalString stdenv.hostPlatform.isLinux ''
|
+ lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||||
substituteInPlace phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
|
substituteInPlace phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
|
||||||
''
|
''
|
||||||
+ stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
|
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||||
substituteInPlace phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)"
|
substituteInPlace phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
nativeBuildInputs = [ makeWrapper unzip which gdb git ]
|
nativeBuildInputs = [ makeWrapper unzip which gdb git ]
|
||||||
|
|
||||||
++ stdenv.lib.optional stdenv.hostPlatform.isDarwin (with darwin.apple_sdk.frameworks; [
|
++ lib.optional stdenv.hostPlatform.isDarwin (with darwin.apple_sdk.frameworks; [
|
||||||
Foundation
|
Foundation
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
@ -163,7 +163,7 @@ stdenv.mkDerivation rec {
|
||||||
substitute ${dmdConfFile} "$out/bin/dmd.conf" --subst-var out
|
substitute ${dmdConfFile} "$out/bin/dmd.conf" --subst-var out
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Official reference compiler for the D language";
|
description = "Official reference compiler for the D language";
|
||||||
homepage = "http://dlang.org/";
|
homepage = "http://dlang.org/";
|
||||||
# Everything is now Boost licensed, even the backend.
|
# Everything is now Boost licensed, even the backend.
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert builtins.elem type [ "aspnetcore" "netcore" "sdk"];
|
assert builtins.elem type [ "aspnetcore" "netcore" "sdk"];
|
||||||
{ stdenv
|
{ lib, stdenv
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, libunwind
|
, libunwind
|
||||||
, openssl
|
, openssl
|
||||||
|
@ -41,7 +41,7 @@ let
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
inherit pname version;
|
inherit pname version;
|
||||||
|
|
||||||
rpath = stdenv.lib.makeLibraryPath [
|
rpath = lib.makeLibraryPath [
|
||||||
curl
|
curl
|
||||||
icu
|
icu
|
||||||
libunwind
|
libunwind
|
||||||
|
@ -70,7 +70,7 @@ in stdenv.mkDerivation rec {
|
||||||
runHook postInstall
|
runHook postInstall
|
||||||
'';
|
'';
|
||||||
|
|
||||||
postFixup = stdenv.lib.optionalString stdenv.isLinux ''
|
postFixup = lib.optionalString stdenv.isLinux ''
|
||||||
patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $out/dotnet
|
patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $out/dotnet
|
||||||
patchelf --set-rpath "${rpath}" $out/dotnet
|
patchelf --set-rpath "${rpath}" $out/dotnet
|
||||||
find $out -type f -name "*.so" -exec patchelf --set-rpath '$ORIGIN:${rpath}' {} \;
|
find $out -type f -name "*.so" -exec patchelf --set-rpath '$ORIGIN:${rpath}' {} \;
|
||||||
|
@ -82,7 +82,7 @@ in stdenv.mkDerivation rec {
|
||||||
$out/bin/dotnet --info
|
$out/bin/dotnet --info
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
homepage = "https://dotnet.github.io/";
|
homepage = "https://dotnet.github.io/";
|
||||||
description = builtins.getAttr type descriptions;
|
description = builtins.getAttr type descriptions;
|
||||||
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
|
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, fetchpatch
|
{ lib, stdenv, fetchurl, fetchpatch
|
||||||
, libtool, autoconf, automake
|
, libtool, autoconf, automake
|
||||||
, gmp, mpfr, libffi, makeWrapper
|
, gmp, mpfr, libffi, makeWrapper
|
||||||
, noUnicode ? false
|
, noUnicode ? false
|
||||||
|
@ -23,7 +23,7 @@ let
|
||||||
];
|
];
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
libffi gmp mpfr gcc
|
libffi gmp mpfr gcc
|
||||||
] ++ stdenv.lib.optionals useBoehmgc [
|
] ++ lib.optionals useBoehmgc [
|
||||||
# replaces ecl's own gc which other packages can depend on, thus propagated
|
# replaces ecl's own gc which other packages can depend on, thus propagated
|
||||||
boehmgc
|
boehmgc
|
||||||
];
|
];
|
||||||
|
@ -42,7 +42,7 @@ stdenv.mkDerivation {
|
||||||
"--with-libffi-prefix=${libffi.dev}"
|
"--with-libffi-prefix=${libffi.dev}"
|
||||||
]
|
]
|
||||||
++
|
++
|
||||||
(stdenv.lib.optional (! noUnicode)
|
(lib.optional (! noUnicode)
|
||||||
"--enable-unicode")
|
"--enable-unicode")
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -77,8 +77,8 @@ stdenv.mkDerivation {
|
||||||
meta = {
|
meta = {
|
||||||
inherit (s) version;
|
inherit (s) version;
|
||||||
description = "Lisp implementation aiming to be small, fast and easy to embed";
|
description = "Lisp implementation aiming to be small, fast and easy to embed";
|
||||||
license = stdenv.lib.licenses.mit ;
|
license = lib.licenses.mit ;
|
||||||
maintainers = [stdenv.lib.maintainers.raskin];
|
maintainers = [lib.maintainers.raskin];
|
||||||
platforms = stdenv.lib.platforms.unix;
|
platforms = lib.platforms.unix;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{stdenv, fetchurl
|
{lib, stdenv, fetchurl
|
||||||
, libtool, autoconf, automake
|
, libtool, autoconf, automake
|
||||||
, texinfo
|
, texinfo
|
||||||
, gmp, mpfr, libffi, makeWrapper
|
, gmp, mpfr, libffi, makeWrapper
|
||||||
|
@ -22,7 +22,7 @@ let
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
libffi gmp mpfr gcc
|
libffi gmp mpfr gcc
|
||||||
# replaces ecl's own gc which other packages can depend on, thus propagated
|
# replaces ecl's own gc which other packages can depend on, thus propagated
|
||||||
] ++ stdenv.lib.optionals useBoehmgc [
|
] ++ lib.optionals useBoehmgc [
|
||||||
# replaces ecl's own gc which other packages can depend on, thus propagated
|
# replaces ecl's own gc which other packages can depend on, thus propagated
|
||||||
boehmgc
|
boehmgc
|
||||||
];
|
];
|
||||||
|
@ -76,7 +76,7 @@ stdenv.mkDerivation {
|
||||||
"--with-libffi-prefix=${libffi.dev}"
|
"--with-libffi-prefix=${libffi.dev}"
|
||||||
]
|
]
|
||||||
++
|
++
|
||||||
(stdenv.lib.optional (! noUnicode)
|
(lib.optional (! noUnicode)
|
||||||
"--enable-unicode")
|
"--enable-unicode")
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -94,8 +94,8 @@ stdenv.mkDerivation {
|
||||||
inherit (s) version;
|
inherit (s) version;
|
||||||
description = "Lisp implementation aiming to be small, fast and easy to embed";
|
description = "Lisp implementation aiming to be small, fast and easy to embed";
|
||||||
homepage = "https://common-lisp.net/project/ecl/";
|
homepage = "https://common-lisp.net/project/ecl/";
|
||||||
license = stdenv.lib.licenses.mit ;
|
license = lib.licenses.mit ;
|
||||||
maintainers = [stdenv.lib.maintainers.raskin];
|
maintainers = [lib.maintainers.raskin];
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = lib.platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv
|
{ lib, stdenv
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, symlinkJoin
|
, symlinkJoin
|
||||||
, makeWrapper
|
, makeWrapper
|
||||||
|
@ -84,8 +84,8 @@ stdenv.mkDerivation rec {
|
||||||
arbitrary special cases. Output is the C subset of C++.
|
arbitrary special cases. Output is the C subset of C++.
|
||||||
'';
|
'';
|
||||||
homepage = "http://eli-project.sourceforge.net/";
|
homepage = "http://eli-project.sourceforge.net/";
|
||||||
license = stdenv.lib.licenses.gpl2;
|
license = lib.licenses.gpl2;
|
||||||
maintainers = with stdenv.lib.maintainers; [ timokau ];
|
maintainers = with lib.maintainers; [ timokau ];
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = lib.platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -118,7 +118,7 @@ let
|
||||||
|
|
||||||
elm-test = patchBinwrap [elmi-to-json]
|
elm-test = patchBinwrap [elmi-to-json]
|
||||||
nodePkgs.elm-test // {
|
nodePkgs.elm-test // {
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Runs elm-test suites from Node.js";
|
description = "Runs elm-test suites from Node.js";
|
||||||
homepage = "https://github.com/rtfeldman/node-test-runner";
|
homepage = "https://github.com/rtfeldman/node-test-runner";
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
|
@ -128,7 +128,7 @@ let
|
||||||
|
|
||||||
elm-verify-examples = patchBinwrap [elmi-to-json]
|
elm-verify-examples = patchBinwrap [elmi-to-json]
|
||||||
nodePkgs.elm-verify-examples // {
|
nodePkgs.elm-verify-examples // {
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Verify examples in your docs";
|
description = "Verify examples in your docs";
|
||||||
homepage = "https://github.com/stoeffel/elm-verify-examples";
|
homepage = "https://github.com/stoeffel/elm-verify-examples";
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
|
@ -153,7 +153,7 @@ let
|
||||||
mkdir -p unpacked_bin
|
mkdir -p unpacked_bin
|
||||||
ln -sf ${elm-instrument}/bin/elm-instrument unpacked_bin/elm-instrument
|
ln -sf ${elm-instrument}/bin/elm-instrument unpacked_bin/elm-instrument
|
||||||
'';
|
'';
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Work in progress - Code coverage tooling for Elm";
|
description = "Work in progress - Code coverage tooling for Elm";
|
||||||
homepage = "https://github.com/zwilias/elm-coverage";
|
homepage = "https://github.com/zwilias/elm-coverage";
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
|
@ -163,7 +163,7 @@ let
|
||||||
|
|
||||||
create-elm-app = patchNpmElm (patchBinwrap [elmi-to-json]
|
create-elm-app = patchNpmElm (patchBinwrap [elmi-to-json]
|
||||||
nodePkgs.create-elm-app) // {
|
nodePkgs.create-elm-app) // {
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Create Elm apps with no build configuration";
|
description = "Create Elm apps with no build configuration";
|
||||||
homepage = "https://github.com/halfzebra/create-elm-app";
|
homepage = "https://github.com/halfzebra/create-elm-app";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
|
@ -173,7 +173,7 @@ let
|
||||||
|
|
||||||
elm-review = patchBinwrap [elmRustPackages.elm-json]
|
elm-review = patchBinwrap [elmRustPackages.elm-json]
|
||||||
nodePkgs.elm-review // {
|
nodePkgs.elm-review // {
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Analyzes Elm projects, to help find mistakes before your users find them";
|
description = "Analyzes Elm projects, to help find mistakes before your users find them";
|
||||||
homepage = "https://package.elm-lang.org/packages/jfmengels/elm-review/${nodePkgs.elm-review.version}";
|
homepage = "https://package.elm-lang.org/packages/jfmengels/elm-review/${nodePkgs.elm-review.version}";
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
|
@ -182,7 +182,7 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
elm-language-server = nodePkgs."@elm-tooling/elm-language-server" // {
|
elm-language-server = nodePkgs."@elm-tooling/elm-language-server" // {
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Language server implementation for Elm";
|
description = "Language server implementation for Elm";
|
||||||
homepage = "https://github.com/elm-tooling/elm-language-server";
|
homepage = "https://github.com/elm-tooling/elm-language-server";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
|
@ -191,7 +191,7 @@ let
|
||||||
};
|
};
|
||||||
|
|
||||||
elm-optimize-level-2 = nodePkgs."elm-optimize-level-2" // {
|
elm-optimize-level-2 = nodePkgs."elm-optimize-level-2" // {
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "A second level of optimization for the Javascript that the Elm Compiler produces";
|
description = "A second level of optimization for the Javascript that the Elm Compiler produces";
|
||||||
homepage = "https://github.com/mdgriffith/elm-optimize-level-2";
|
homepage = "https://github.com/mdgriffith/elm-optimize-level-2";
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ mkDerivation, fetchgit, ansi-terminal, ansi-wl-pprint, array, base, binary
|
{ mkDerivation, fetchgit, ansi-terminal, ansi-wl-pprint, array, base, binary
|
||||||
, bytestring, cmark, containers, directory, filepath, free, HUnit
|
, bytestring, cmark, containers, directory, filepath, free, HUnit
|
||||||
, indents, json, mtl, optparse-applicative, parsec, process
|
, indents, json, mtl, optparse-applicative, parsec, process
|
||||||
, QuickCheck, quickcheck-io, split, stdenv, tasty, tasty-golden
|
, QuickCheck, quickcheck-io, split, lib, stdenv, tasty, tasty-golden
|
||||||
, tasty-hunit, tasty-quickcheck, text
|
, tasty-hunit, tasty-quickcheck, text
|
||||||
}:
|
}:
|
||||||
mkDerivation {
|
mkDerivation {
|
||||||
|
@ -36,5 +36,5 @@ mkDerivation {
|
||||||
doHaddock = false;
|
doHaddock = false;
|
||||||
homepage = "https://elm-lang.org";
|
homepage = "https://elm-lang.org";
|
||||||
description = "A source code formatter for Elm";
|
description = "A source code formatter for Elm";
|
||||||
license = stdenv.lib.licenses.bsd3;
|
license = lib.licenses.bsd3;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
, bytestring, Cabal, cmark, containers, directory, elm-format
|
, bytestring, Cabal, cmark, containers, directory, elm-format
|
||||||
, fetchgit, filepath, free, HUnit, indents, json, mtl
|
, fetchgit, filepath, free, HUnit, indents, json, mtl
|
||||||
, optparse-applicative, parsec, process, QuickCheck, quickcheck-io
|
, optparse-applicative, parsec, process, QuickCheck, quickcheck-io
|
||||||
, split, stdenv, tasty, tasty-golden, tasty-hunit, tasty-quickcheck
|
, split, lib, stdenv, tasty, tasty-golden, tasty-hunit, tasty-quickcheck
|
||||||
, text
|
, text
|
||||||
}:
|
}:
|
||||||
mkDerivation {
|
mkDerivation {
|
||||||
|
@ -30,5 +30,5 @@ mkDerivation {
|
||||||
];
|
];
|
||||||
homepage = "https://elm-lang.org";
|
homepage = "https://elm-lang.org";
|
||||||
description = "Instrumentation library for Elm";
|
description = "Instrumentation library for Elm";
|
||||||
license = stdenv.lib.licenses.bsd3;
|
license = lib.licenses.bsd3;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
, file-embed, filelock, filepath, ghc-prim, haskeline, HTTP
|
, file-embed, filelock, filepath, ghc-prim, haskeline, HTTP
|
||||||
, http-client, http-client-tls, http-types, language-glsl, mtl
|
, http-client, http-client-tls, http-types, language-glsl, mtl
|
||||||
, network, parsec, process, raw-strings-qq, scientific, SHA
|
, network, parsec, process, raw-strings-qq, scientific, SHA
|
||||||
, snap-core, snap-server, stdenv, template-haskell, time
|
, snap-core, snap-server, lib, stdenv, template-haskell, time
|
||||||
, unordered-containers, utf8-string, vector, zip-archive
|
, unordered-containers, utf8-string, vector, zip-archive
|
||||||
}:
|
}:
|
||||||
mkDerivation {
|
mkDerivation {
|
||||||
|
@ -27,5 +27,5 @@ mkDerivation {
|
||||||
];
|
];
|
||||||
homepage = "https://elm-lang.org";
|
homepage = "https://elm-lang.org";
|
||||||
description = "The `elm` command line interface";
|
description = "The `elm` command line interface";
|
||||||
license = stdenv.lib.licenses.bsd3;
|
license = lib.licenses.bsd3;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{ mkDerivation, aeson, base, binary, bytestring, containers
|
{ mkDerivation, aeson, base, binary, bytestring, containers
|
||||||
, directory, fetchgit, filepath, ghc-prim, hpack
|
, directory, fetchgit, filepath, ghc-prim, hpack
|
||||||
, optparse-applicative, stdenv, text, unliftio
|
, optparse-applicative, lib, stdenv, text, unliftio
|
||||||
, unordered-containers
|
, unordered-containers
|
||||||
}:
|
}:
|
||||||
mkDerivation {
|
mkDerivation {
|
||||||
|
@ -23,5 +23,5 @@ mkDerivation {
|
||||||
testHaskellDepends = [ base ];
|
testHaskellDepends = [ base ];
|
||||||
prePatch = "hpack";
|
prePatch = "hpack";
|
||||||
homepage = "https://github.com/stoeffel/elmi-to-json#readme";
|
homepage = "https://github.com/stoeffel/elmi-to-json#readme";
|
||||||
license = stdenv.lib.licenses.bsd3;
|
license = lib.licenses.bsd3;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ mkDerivation, base, concatenative, mtl, parsec, stdenv }:
|
{ mkDerivation, base, concatenative, mtl, parsec, lib, stdenv }:
|
||||||
mkDerivation {
|
mkDerivation {
|
||||||
pname = "indents";
|
pname = "indents";
|
||||||
version = "0.3.3";
|
version = "0.3.3";
|
||||||
|
@ -7,5 +7,5 @@ mkDerivation {
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
homepage = "http://patch-tag.com/r/salazar/indents";
|
homepage = "http://patch-tag.com/r/salazar/indents";
|
||||||
description = "indentation sensitive parser-combinators for parsec";
|
description = "indentation sensitive parser-combinators for parsec";
|
||||||
license = stdenv.lib.licenses.bsd3;
|
license = lib.licenses.bsd3;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchFromGitHub, python3, nodejs, closurecompiler
|
{ lib, stdenv, fetchFromGitHub, python3, nodejs, closurecompiler
|
||||||
, jre, binaryen
|
, jre, binaryen
|
||||||
, llvmPackages_11
|
, llvmPackages_11
|
||||||
, symlinkJoin, makeWrapper
|
, symlinkJoin, makeWrapper
|
||||||
|
@ -101,7 +101,7 @@ stdenv.mkDerivation rec {
|
||||||
popd
|
popd
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
homepage = "https://github.com/emscripten-core/emscripten";
|
homepage = "https://github.com/emscripten-core/emscripten";
|
||||||
description = "An LLVM-to-JavaScript Compiler";
|
description = "An LLVM-to-JavaScript Compiler";
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchgit, qt4, ecl, xorgserver, xkbcomp, xkeyboard_config }:
|
{ lib, stdenv, fetchgit, qt4, ecl, xorgserver, xkbcomp, xkeyboard_config }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = src.rev;
|
version = src.rev;
|
||||||
|
@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
|
||||||
ln -s $out/lib/eql/build-dir/libeql*.so* $out/lib
|
ln -s $out/lib/eql/build-dir/libeql*.so* $out/lib
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Embedded Qt Lisp (ECL+Qt)";
|
description = "Embedded Qt Lisp (ECL+Qt)";
|
||||||
maintainers = with maintainers; [ raskin ];
|
maintainers = with maintainers; [ raskin ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, glib, git,
|
{ lib, stdenv, fetchurl, glib, git,
|
||||||
rlwrap, curl, pkg-config, perl, makeWrapper, tzdata, ncurses,
|
rlwrap, curl, pkg-config, perl, makeWrapper, tzdata, ncurses,
|
||||||
pango, cairo, gtk2, gdk-pixbuf, gtkglext,
|
pango, cairo, gtk2, gdk-pixbuf, gtkglext,
|
||||||
mesa, xorg, openssl, unzip }:
|
mesa, xorg, openssl, unzip }:
|
||||||
|
@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
|
||||||
# out of known libraries. The side effect is that find-lib
|
# out of known libraries. The side effect is that find-lib
|
||||||
# will work only on the known libraries. There does not seem
|
# will work only on the known libraries. There does not seem
|
||||||
# to be a generic solution here.
|
# to be a generic solution here.
|
||||||
find $(echo ${stdenv.lib.makeLibraryPath (with xorg; [
|
find $(echo ${lib.makeLibraryPath (with xorg; [
|
||||||
glib libX11 pango cairo gtk2 gdk-pixbuf gtkglext
|
glib libX11 pango cairo gtk2 gdk-pixbuf gtkglext
|
||||||
mesa libXmu libXt libICE libSM ])} | sed -e 's#:# #g') -name \*.so.\* > $TMPDIR/so.lst
|
mesa libXmu libXt libICE libSM ])} | sed -e 's#:# #g') -name \*.so.\* > $TMPDIR/so.lst
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
cp ./factor $out/bin
|
cp ./factor $out/bin
|
||||||
wrapProgram $out/bin/factor --prefix LD_LIBRARY_PATH : \
|
wrapProgram $out/bin/factor --prefix LD_LIBRARY_PATH : \
|
||||||
"${stdenv.lib.makeLibraryPath (with xorg; [ glib
|
"${lib.makeLibraryPath (with xorg; [ glib
|
||||||
libX11 pango cairo gtk2 gdk-pixbuf gtkglext
|
libX11 pango cairo gtk2 gdk-pixbuf gtkglext
|
||||||
mesa libXmu libXt libICE libSM openssl])}"
|
mesa libXmu libXt libICE libSM openssl])}"
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ stdenv.mkDerivation rec {
|
||||||
cp misc/fuel/*.el $out/share/emacs/site-lisp/
|
cp misc/fuel/*.el $out/share/emacs/site-lisp/
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
homepage = "https://factorcode.org";
|
homepage = "https://factorcode.org";
|
||||||
license = licenses.bsd2;
|
license = licenses.bsd2;
|
||||||
description = "A concatenative, stack-based programming language";
|
description = "A concatenative, stack-based programming language";
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv
|
{ lib, stdenv
|
||||||
, fetchzip
|
, fetchzip
|
||||||
}:
|
}:
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
|
||||||
cp docs/*.txt $doc/share/doc/fasmg
|
cp docs/*.txt $doc/share/doc/fasmg
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "x86(-64) macro assembler to binary, MZ, PE, COFF, and ELF";
|
description = "x86(-64) macro assembler to binary, MZ, PE, COFF, and ELF";
|
||||||
homepage = "https://flatassembler.net";
|
homepage = "https://flatassembler.net";
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchzip, unzip, bison, flex, gperf, zlib }:
|
{ lib, stdenv, fetchzip, unzip, bison, flex, gperf, zlib }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "flasm";
|
pname = "flasm";
|
||||||
|
@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
|
||||||
install -Dm755 flasm -t $out/bin
|
install -Dm755 flasm -t $out/bin
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Assembler and disassembler for Flash (SWF) bytecode";
|
description = "Assembler and disassembler for Flash (SWF) bytecode";
|
||||||
homepage = "http://flasm.sourceforge.net/";
|
homepage = "http://flasm.sourceforge.net/";
|
||||||
license = licenses.bsd2;
|
license = licenses.bsd2;
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
, coreutils
|
, coreutils
|
||||||
, git
|
, git
|
||||||
, runCommand
|
, runCommand
|
||||||
, stdenv
|
, lib, stdenv
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, alsaLib
|
, alsaLib
|
||||||
, dbus
|
, dbus
|
||||||
|
@ -137,7 +137,7 @@ runCommand drvName
|
||||||
preferLocalBuild = true;
|
preferLocalBuild = true;
|
||||||
allowSubstitutes = false;
|
allowSubstitutes = false;
|
||||||
passthru = { unwrapped = flutter; };
|
passthru = { unwrapped = flutter; };
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Flutter is Google's SDK for building mobile, web and desktop with Dart";
|
description = "Flutter is Google's SDK for building mobile, web and desktop with Dart";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
Flutter is Google’s UI toolkit for building beautiful,
|
Flutter is Google’s UI toolkit for building beautiful,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, gawk }:
|
{ lib, stdenv, fetchurl, gawk }:
|
||||||
|
|
||||||
let startFPC = import ./binary.nix { inherit stdenv fetchurl; }; in
|
let startFPC = import ./binary.nix { inherit stdenv fetchurl; }; in
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
|
||||||
bootstrap = startFPC;
|
bootstrap = startFPC;
|
||||||
};
|
};
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Free Pascal Compiler from a source distribution";
|
description = "Free Pascal Compiler from a source distribution";
|
||||||
homepage = "https://www.freepascal.org";
|
homepage = "https://www.freepascal.org";
|
||||||
maintainers = [ maintainers.raskin ];
|
maintainers = [ maintainers.raskin ];
|
||||||
|
|
|
@ -97,7 +97,7 @@ stdenv.mkDerivation rec {
|
||||||
--prefix PATH ':' "${lib.makeBinPath [ fpc gdb gnumake binutils ]}"
|
--prefix PATH ':' "${lib.makeBinPath [ fpc gdb gnumake binutils ]}"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Graphical IDE for the FreePascal language";
|
description = "Graphical IDE for the FreePascal language";
|
||||||
homepage = "https://www.lazarus.freepascal.org";
|
homepage = "https://www.lazarus.freepascal.org";
|
||||||
license = licenses.gpl2Plus ;
|
license = licenses.gpl2Plus ;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Temporarily avoid dependency on dotnetbuildhelpers to avoid rebuilding many times while working on it
|
# Temporarily avoid dependency on dotnetbuildhelpers to avoid rebuilding many times while working on it
|
||||||
|
|
||||||
{ stdenv, fetchurl, mono, pkg-config, dotnetbuildhelpers, autoconf, automake, which }:
|
{ lib, stdenv, fetchurl, mono, pkg-config, dotnetbuildhelpers, autoconf, automake, which }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "fsharp";
|
pname = "fsharp";
|
||||||
|
@ -41,8 +41,8 @@ stdenv.mkDerivation rec {
|
||||||
meta = {
|
meta = {
|
||||||
description = "A functional CLI language";
|
description = "A functional CLI language";
|
||||||
homepage = "https://fsharp.org/";
|
homepage = "https://fsharp.org/";
|
||||||
license = stdenv.lib.licenses.asl20;
|
license = lib.licenses.asl20;
|
||||||
maintainers = with stdenv.lib.maintainers; [ thoughtpolice raskin ];
|
maintainers = with lib.maintainers; [ thoughtpolice raskin ];
|
||||||
platforms = with stdenv.lib.platforms; unix;
|
platforms = with lib.platforms; unix;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Temporaririly avoid dependency on dotnetbuildhelpers to avoid rebuilding many times while working on it
|
# Temporaririly avoid dependency on dotnetbuildhelpers to avoid rebuilding many times while working on it
|
||||||
|
|
||||||
{ stdenv, fetchurl, pkg-config, autoconf, automake, which, mono, msbuild, dotnetbuildhelpers, dotnetPackages }:
|
{ lib, stdenv, fetchurl, pkg-config, autoconf, automake, which, mono, msbuild, dotnetbuildhelpers, dotnetPackages }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "fsharp";
|
pname = "fsharp";
|
||||||
|
@ -119,8 +119,8 @@ EOF
|
||||||
meta = {
|
meta = {
|
||||||
description = "A functional CLI language";
|
description = "A functional CLI language";
|
||||||
homepage = "https://fsharp.org/";
|
homepage = "https://fsharp.org/";
|
||||||
license = stdenv.lib.licenses.asl20;
|
license = lib.licenses.asl20;
|
||||||
maintainers = with stdenv.lib.maintainers; [ thoughtpolice raskin ];
|
maintainers = with lib.maintainers; [ thoughtpolice raskin ];
|
||||||
platforms = with stdenv.lib.platforms; unix;
|
platforms = with lib.platforms; unix;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchFromGitHub, z3, ocamlPackages, makeWrapper, installShellFiles }:
|
{ lib, stdenv, fetchFromGitHub, z3, ocamlPackages, makeWrapper, installShellFiles }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "fstar";
|
pname = "fstar";
|
||||||
|
@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
|
||||||
installShellCompletion --zsh --name _fstar.exe .completion/zsh/__fstar.exe
|
installShellCompletion --zsh --name _fstar.exe .completion/zsh/__fstar.exe
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "ML-like functional programming language aimed at program verification";
|
description = "ML-like functional programming language aimed at program verification";
|
||||||
homepage = "https://www.fstar-lang.org";
|
homepage = "https://www.fstar-lang.org";
|
||||||
license = licenses.asl20;
|
license = licenses.asl20;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{ stdenv, fetchzip, fpc , lang ? "en" } :
|
{ lib, stdenv, fetchzip, fpc , lang ? "en" } :
|
||||||
assert stdenv.lib.assertOneOf "lang" lang ["cn" "de" "en" "fr" "tr"];
|
assert lib.assertOneOf "lang" lang ["cn" "de" "en" "fr" "tr"];
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "gavrasm";
|
pname = "gavrasm";
|
||||||
version = "4.5";
|
version = "4.5";
|
||||||
|
@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
|
||||||
cp LiesMich.Txt $out/doc
|
cp LiesMich.Txt $out/doc
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
homepage = "http://www.avr-asm-tutorial.net/gavrasm";
|
homepage = "http://www.avr-asm-tutorial.net/gavrasm";
|
||||||
description = "AVR Assembler for ATMEL AVR-Processors";
|
description = "AVR Assembler for ATMEL AVR-Processors";
|
||||||
license = licenses.unfree;
|
license = licenses.unfree;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv
|
{ lib, stdenv
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, ncurses5
|
, ncurses5
|
||||||
, python27
|
, python27
|
||||||
|
@ -39,11 +39,11 @@ stdenv.mkDerivation rec {
|
||||||
find $out -type f | while read f; do
|
find $out -type f | while read f; do
|
||||||
patchelf "$f" > /dev/null 2>&1 || continue
|
patchelf "$f" > /dev/null 2>&1 || continue
|
||||||
patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true
|
patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true
|
||||||
patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true
|
patchelf --set-rpath ${lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors";
|
description = "Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors";
|
||||||
homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm";
|
homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm";
|
||||||
license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
|
license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv
|
{ lib, stdenv
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, ncurses5
|
, ncurses5
|
||||||
, python27
|
, python27
|
||||||
|
@ -37,11 +37,11 @@ stdenv.mkDerivation rec {
|
||||||
find $out -type f | while read f; do
|
find $out -type f | while read f; do
|
||||||
patchelf "$f" > /dev/null 2>&1 || continue
|
patchelf "$f" > /dev/null 2>&1 || continue
|
||||||
patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true
|
patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true
|
||||||
patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true
|
patchelf --set-rpath ${lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors";
|
description = "Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors";
|
||||||
homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm";
|
homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm";
|
||||||
license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
|
license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv
|
{ lib, stdenv
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, ncurses5
|
, ncurses5
|
||||||
, python27
|
, python27
|
||||||
|
@ -37,11 +37,11 @@ stdenv.mkDerivation rec {
|
||||||
find $out -type f | while read f; do
|
find $out -type f | while read f; do
|
||||||
patchelf "$f" > /dev/null 2>&1 || continue
|
patchelf "$f" > /dev/null 2>&1 || continue
|
||||||
patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true
|
patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true
|
||||||
patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true
|
patchelf --set-rpath ${lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors";
|
description = "Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors";
|
||||||
homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm";
|
homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm";
|
||||||
license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
|
license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv
|
{ lib, stdenv
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, ncurses5
|
, ncurses5
|
||||||
, python27
|
, python27
|
||||||
|
@ -37,11 +37,11 @@ stdenv.mkDerivation rec {
|
||||||
find $out -type f | while read f; do
|
find $out -type f | while read f; do
|
||||||
patchelf "$f" > /dev/null 2>&1 || continue
|
patchelf "$f" > /dev/null 2>&1 || continue
|
||||||
patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true
|
patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true
|
||||||
patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true
|
patchelf --set-rpath ${lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors";
|
description = "Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors";
|
||||||
homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm";
|
homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm";
|
||||||
license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
|
license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv
|
{ lib, stdenv
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, ncurses5
|
, ncurses5
|
||||||
, python27
|
, python27
|
||||||
|
@ -39,11 +39,11 @@ stdenv.mkDerivation rec {
|
||||||
find $out -type f | while read f; do
|
find $out -type f | while read f; do
|
||||||
patchelf "$f" > /dev/null 2>&1 || continue
|
patchelf "$f" > /dev/null 2>&1 || continue
|
||||||
patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true
|
patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) "$f" || true
|
||||||
patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true
|
patchelf --set-rpath ${lib.makeLibraryPath [ "$out" stdenv.cc.cc ncurses5 python27 ]} "$f" || true
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors";
|
description = "Pre-built GNU toolchain from ARM Cortex-M & Cortex-R processors";
|
||||||
homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm";
|
homepage = "https://developer.arm.com/open-source/gnu-toolchain/gnu-rm";
|
||||||
license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
|
license = with licenses; [ bsd2 gpl2 gpl3 lgpl21 lgpl3 mit ];
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
|
{ lib, stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
|
||||||
, langC ? true, langCC ? true, langFortran ? false
|
, langC ? true, langCC ? true, langFortran ? false
|
||||||
, langAda ? false
|
, langAda ? false
|
||||||
, langObjC ? stdenv.targetPlatform.isDarwin
|
, langObjC ? stdenv.targetPlatform.isDarwin
|
||||||
|
@ -48,7 +48,7 @@ assert langAda -> gnatboot != null;
|
||||||
# threadsCross is just for MinGW
|
# threadsCross is just for MinGW
|
||||||
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
|
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
|
||||||
|
|
||||||
with stdenv.lib;
|
with lib;
|
||||||
with builtins;
|
with builtins;
|
||||||
|
|
||||||
let majorVersion = "10";
|
let majorVersion = "10";
|
||||||
|
@ -90,7 +90,7 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
inherit patches;
|
inherit patches;
|
||||||
|
|
||||||
outputs = [ "out" "man" "info" ] ++ stdenv.lib.optional (!langJit) "lib";
|
outputs = [ "out" "man" "info" ] ++ lib.optional (!langJit) "lib";
|
||||||
setOutputFlags = false;
|
setOutputFlags = false;
|
||||||
NIX_NO_SELF_RPATH = true;
|
NIX_NO_SELF_RPATH = true;
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
# This should kill all the stdinc frameworks that gcc and friends like to
|
# This should kill all the stdinc frameworks that gcc and friends like to
|
||||||
# insert into default search paths.
|
# insert into default search paths.
|
||||||
prePatch = stdenv.lib.optionalString hostPlatform.isDarwin ''
|
prePatch = lib.optionalString hostPlatform.isDarwin ''
|
||||||
substituteInPlace gcc/config/darwin-c.c \
|
substituteInPlace gcc/config/darwin-c.c \
|
||||||
--replace 'if (stdinc)' 'if (0)'
|
--replace 'if (stdinc)' 'if (0)'
|
||||||
|
|
||||||
|
@ -134,13 +134,13 @@ stdenv.mkDerivation ({
|
||||||
-e 's|define[[:blank:]]*MUSL_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define MUSL_DYNAMIC_LINKER\1 "${libc.out}\2"|g'
|
-e 's|define[[:blank:]]*MUSL_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define MUSL_DYNAMIC_LINKER\1 "${libc.out}\2"|g'
|
||||||
done
|
done
|
||||||
''
|
''
|
||||||
+ stdenv.lib.optionalString (targetPlatform.libc == "musl")
|
+ lib.optionalString (targetPlatform.libc == "musl")
|
||||||
''
|
''
|
||||||
sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR'
|
sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR'
|
||||||
''
|
''
|
||||||
)
|
)
|
||||||
else "")
|
else "")
|
||||||
+ stdenv.lib.optionalString targetPlatform.isAvr ''
|
+ lib.optionalString targetPlatform.isAvr ''
|
||||||
makeFlagsArray+=(
|
makeFlagsArray+=(
|
||||||
'LIMITS_H_TEST=false'
|
'LIMITS_H_TEST=false'
|
||||||
)
|
)
|
||||||
|
@ -177,20 +177,21 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
|
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
|
||||||
|
|
||||||
NIX_LDFLAGS = stdenv.lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
||||||
|
|
||||||
preConfigure = import ../common/pre-configure.nix {
|
preConfigure = import ../common/pre-configure.nix {
|
||||||
inherit (stdenv) lib;
|
inherit lib;
|
||||||
inherit version hostPlatform gnatboot langAda langGo;
|
inherit version hostPlatform gnatboot langAda langGo;
|
||||||
};
|
};
|
||||||
|
|
||||||
dontDisableStatic = true;
|
dontDisableStatic = true;
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
||||||
configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
|
configurePlatforms = [ "build" "host" ] ++ lib.optional (targetPlatform != hostPlatform) "target";
|
||||||
|
|
||||||
configureFlags = import ../common/configure-flags.nix {
|
configureFlags = import ../common/configure-flags.nix {
|
||||||
inherit
|
inherit
|
||||||
|
lib
|
||||||
stdenv
|
stdenv
|
||||||
targetPackages
|
targetPackages
|
||||||
crossStageStatic libcCross
|
crossStageStatic libcCross
|
||||||
|
@ -262,7 +263,7 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://gcc.gnu.org/";
|
homepage = "https://gcc.gnu.org/";
|
||||||
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
||||||
description = "GNU Compiler Collection, version ${version}"
|
description = "GNU Compiler Collection, version ${version}"
|
||||||
+ (if stripped then "" else " (with debugging info)");
|
+ (if stripped then "" else " (with debugging info)");
|
||||||
|
|
||||||
|
@ -275,13 +276,13 @@ stdenv.mkDerivation ({
|
||||||
compiler used in the GNU system including the GNU/Linux variant.
|
compiler used in the GNU system including the GNU/Linux variant.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
maintainers = with stdenv.lib.maintainers; [ synthetica ];
|
maintainers = with lib.maintainers; [ synthetica ];
|
||||||
|
|
||||||
platforms =
|
platforms =
|
||||||
stdenv.lib.platforms.linux ++
|
lib.platforms.linux ++
|
||||||
stdenv.lib.platforms.freebsd ++
|
lib.platforms.freebsd ++
|
||||||
stdenv.lib.platforms.illumos ++
|
lib.platforms.illumos ++
|
||||||
stdenv.lib.platforms.darwin;
|
lib.platforms.darwin;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
|
{ lib, stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
|
||||||
, langC ? true, langCC ? true, langFortran ? false
|
, langC ? true, langCC ? true, langFortran ? false
|
||||||
, langObjC ? stdenv.targetPlatform.isDarwin
|
, langObjC ? stdenv.targetPlatform.isDarwin
|
||||||
, langObjCpp ? stdenv.targetPlatform.isDarwin
|
, langObjCpp ? stdenv.targetPlatform.isDarwin
|
||||||
|
@ -58,7 +58,7 @@ assert langGo -> langCC;
|
||||||
# threadsCross is just for MinGW
|
# threadsCross is just for MinGW
|
||||||
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
|
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
|
||||||
|
|
||||||
with stdenv.lib;
|
with lib;
|
||||||
with builtins;
|
with builtins;
|
||||||
|
|
||||||
let majorVersion = "4";
|
let majorVersion = "4";
|
||||||
|
@ -190,17 +190,18 @@ stdenv.mkDerivation ({
|
||||||
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
|
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
|
||||||
|
|
||||||
preConfigure = import ../common/pre-configure.nix {
|
preConfigure = import ../common/pre-configure.nix {
|
||||||
inherit (stdenv) lib;
|
inherit lib;
|
||||||
inherit version hostPlatform langJava langGo;
|
inherit version hostPlatform langJava langGo;
|
||||||
};
|
};
|
||||||
|
|
||||||
dontDisableStatic = true;
|
dontDisableStatic = true;
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
||||||
configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
|
configurePlatforms = [ "build" "host" ] ++ lib.optional (targetPlatform != hostPlatform) "target";
|
||||||
|
|
||||||
configureFlags = import ../common/configure-flags.nix {
|
configureFlags = import ../common/configure-flags.nix {
|
||||||
inherit
|
inherit
|
||||||
|
lib
|
||||||
stdenv
|
stdenv
|
||||||
targetPackages
|
targetPackages
|
||||||
crossStageStatic libcCross
|
crossStageStatic libcCross
|
||||||
|
@ -289,7 +290,7 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://gcc.gnu.org/";
|
homepage = "https://gcc.gnu.org/";
|
||||||
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
||||||
description = "GNU Compiler Collection, version ${version}"
|
description = "GNU Compiler Collection, version ${version}"
|
||||||
+ (if stripped then "" else " (with debugging info)");
|
+ (if stripped then "" else " (with debugging info)");
|
||||||
|
|
||||||
|
@ -302,13 +303,13 @@ stdenv.mkDerivation ({
|
||||||
compiler used in the GNU system including the GNU/Linux variant.
|
compiler used in the GNU system including the GNU/Linux variant.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
maintainers = with stdenv.lib.maintainers; [ peti veprbl ];
|
maintainers = with lib.maintainers; [ peti veprbl ];
|
||||||
|
|
||||||
platforms =
|
platforms =
|
||||||
stdenv.lib.platforms.linux ++
|
lib.platforms.linux ++
|
||||||
stdenv.lib.platforms.freebsd ++
|
lib.platforms.freebsd ++
|
||||||
stdenv.lib.platforms.illumos ++
|
lib.platforms.illumos ++
|
||||||
stdenv.lib.platforms.darwin;
|
lib.platforms.darwin;
|
||||||
badPlatforms = [ "x86_64-darwin" ];
|
badPlatforms = [ "x86_64-darwin" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
|
{ lib, stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
|
||||||
, langC ? true, langCC ? true, langFortran ? false
|
, langC ? true, langCC ? true, langFortran ? false
|
||||||
, langObjC ? stdenv.targetPlatform.isDarwin
|
, langObjC ? stdenv.targetPlatform.isDarwin
|
||||||
, langObjCpp ? stdenv.targetPlatform.isDarwin
|
, langObjCpp ? stdenv.targetPlatform.isDarwin
|
||||||
|
@ -58,7 +58,7 @@ assert langGo -> langCC;
|
||||||
# threadsCross is just for MinGW
|
# threadsCross is just for MinGW
|
||||||
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
|
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
|
||||||
|
|
||||||
with stdenv.lib;
|
with lib;
|
||||||
with builtins;
|
with builtins;
|
||||||
|
|
||||||
let majorVersion = "4";
|
let majorVersion = "4";
|
||||||
|
@ -203,17 +203,18 @@ stdenv.mkDerivation ({
|
||||||
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
|
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
|
||||||
|
|
||||||
preConfigure = import ../common/pre-configure.nix {
|
preConfigure = import ../common/pre-configure.nix {
|
||||||
inherit (stdenv) lib;
|
inherit lib;
|
||||||
inherit version hostPlatform langJava langGo;
|
inherit version hostPlatform langJava langGo;
|
||||||
};
|
};
|
||||||
|
|
||||||
dontDisableStatic = true;
|
dontDisableStatic = true;
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
||||||
configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
|
configurePlatforms = [ "build" "host" ] ++ lib.optional (targetPlatform != hostPlatform) "target";
|
||||||
|
|
||||||
configureFlags = import ../common/configure-flags.nix {
|
configureFlags = import ../common/configure-flags.nix {
|
||||||
inherit
|
inherit
|
||||||
|
lib
|
||||||
stdenv
|
stdenv
|
||||||
targetPackages
|
targetPackages
|
||||||
crossStageStatic libcCross
|
crossStageStatic libcCross
|
||||||
|
@ -301,7 +302,7 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://gcc.gnu.org/";
|
homepage = "https://gcc.gnu.org/";
|
||||||
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
||||||
description = "GNU Compiler Collection, version ${version}"
|
description = "GNU Compiler Collection, version ${version}"
|
||||||
+ (if stripped then "" else " (with debugging info)");
|
+ (if stripped then "" else " (with debugging info)");
|
||||||
|
|
||||||
|
@ -314,13 +315,13 @@ stdenv.mkDerivation ({
|
||||||
compiler used in the GNU system including the GNU/Linux variant.
|
compiler used in the GNU system including the GNU/Linux variant.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
maintainers = with stdenv.lib.maintainers; [ peti veprbl ];
|
maintainers = with lib.maintainers; [ peti veprbl ];
|
||||||
|
|
||||||
platforms =
|
platforms =
|
||||||
stdenv.lib.platforms.linux ++
|
lib.platforms.linux ++
|
||||||
stdenv.lib.platforms.freebsd ++
|
lib.platforms.freebsd ++
|
||||||
stdenv.lib.platforms.illumos ++
|
lib.platforms.illumos ++
|
||||||
stdenv.lib.platforms.darwin;
|
lib.platforms.darwin;
|
||||||
badPlatforms = [ "x86_64-darwin" ];
|
badPlatforms = [ "x86_64-darwin" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, targetPackages, fetchurl, fetchpatch, fetchFromGitHub, noSysDirs
|
{ lib, stdenv, targetPackages, fetchurl, fetchpatch, fetchFromGitHub, noSysDirs
|
||||||
, langC ? true, langCC ? true, langFortran ? false
|
, langC ? true, langCC ? true, langFortran ? false
|
||||||
, langAda ? false
|
, langAda ? false
|
||||||
, langObjC ? stdenv.targetPlatform.isDarwin
|
, langObjC ? stdenv.targetPlatform.isDarwin
|
||||||
|
@ -61,7 +61,7 @@ assert langAda -> gnatboot != null;
|
||||||
# threadsCross is just for MinGW
|
# threadsCross is just for MinGW
|
||||||
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
|
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
|
||||||
|
|
||||||
with stdenv.lib;
|
with lib;
|
||||||
with builtins;
|
with builtins;
|
||||||
|
|
||||||
let majorVersion = "6";
|
let majorVersion = "6";
|
||||||
|
@ -148,7 +148,7 @@ stdenv.mkDerivation ({
|
||||||
prePatch =
|
prePatch =
|
||||||
# This should kill all the stdinc frameworks that gcc and friends like to
|
# This should kill all the stdinc frameworks that gcc and friends like to
|
||||||
# insert into default search paths.
|
# insert into default search paths.
|
||||||
stdenv.lib.optionalString hostPlatform.isDarwin ''
|
lib.optionalString hostPlatform.isDarwin ''
|
||||||
substituteInPlace gcc/config/darwin-c.c \
|
substituteInPlace gcc/config/darwin-c.c \
|
||||||
--replace 'if (stdinc)' 'if (0)'
|
--replace 'if (stdinc)' 'if (0)'
|
||||||
|
|
||||||
|
@ -177,7 +177,7 @@ stdenv.mkDerivation ({
|
||||||
-e 's|define[[:blank:]]*MUSL_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define MUSL_DYNAMIC_LINKER\1 "${libc.out}\2"|g'
|
-e 's|define[[:blank:]]*MUSL_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define MUSL_DYNAMIC_LINKER\1 "${libc.out}\2"|g'
|
||||||
done
|
done
|
||||||
''
|
''
|
||||||
+ stdenv.lib.optionalString (targetPlatform.libc == "musl")
|
+ lib.optionalString (targetPlatform.libc == "musl")
|
||||||
''
|
''
|
||||||
sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR'
|
sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR'
|
||||||
''
|
''
|
||||||
|
@ -219,20 +219,21 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
|
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
|
||||||
|
|
||||||
NIX_LDFLAGS = stdenv.lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
||||||
|
|
||||||
preConfigure = import ../common/pre-configure.nix {
|
preConfigure = import ../common/pre-configure.nix {
|
||||||
inherit (stdenv) lib;
|
inherit lib;
|
||||||
inherit version hostPlatform gnatboot langJava langAda langGo;
|
inherit version hostPlatform gnatboot langJava langAda langGo;
|
||||||
};
|
};
|
||||||
|
|
||||||
dontDisableStatic = true;
|
dontDisableStatic = true;
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
||||||
configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
|
configurePlatforms = [ "build" "host" ] ++ lib.optional (targetPlatform != hostPlatform) "target";
|
||||||
|
|
||||||
configureFlags = import ../common/configure-flags.nix {
|
configureFlags = import ../common/configure-flags.nix {
|
||||||
inherit
|
inherit
|
||||||
|
lib
|
||||||
stdenv
|
stdenv
|
||||||
targetPackages
|
targetPackages
|
||||||
crossStageStatic libcCross
|
crossStageStatic libcCross
|
||||||
|
@ -320,7 +321,7 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://gcc.gnu.org/";
|
homepage = "https://gcc.gnu.org/";
|
||||||
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
||||||
description = "GNU Compiler Collection, version ${version}"
|
description = "GNU Compiler Collection, version ${version}"
|
||||||
+ (if stripped then "" else " (with debugging info)");
|
+ (if stripped then "" else " (with debugging info)");
|
||||||
|
|
||||||
|
@ -333,13 +334,13 @@ stdenv.mkDerivation ({
|
||||||
compiler used in the GNU system including the GNU/Linux variant.
|
compiler used in the GNU system including the GNU/Linux variant.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
maintainers = with stdenv.lib.maintainers; [ peti ];
|
maintainers = with lib.maintainers; [ peti ];
|
||||||
|
|
||||||
platforms =
|
platforms =
|
||||||
stdenv.lib.platforms.linux ++
|
lib.platforms.linux ++
|
||||||
stdenv.lib.platforms.freebsd ++
|
lib.platforms.freebsd ++
|
||||||
stdenv.lib.platforms.illumos ++
|
lib.platforms.illumos ++
|
||||||
stdenv.lib.platforms.darwin;
|
lib.platforms.darwin;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
|
{ lib, stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
|
||||||
, langC ? true, langCC ? true, langFortran ? false
|
, langC ? true, langCC ? true, langFortran ? false
|
||||||
, langObjC ? stdenv.targetPlatform.isDarwin
|
, langObjC ? stdenv.targetPlatform.isDarwin
|
||||||
, langObjCpp ? stdenv.targetPlatform.isDarwin
|
, langObjCpp ? stdenv.targetPlatform.isDarwin
|
||||||
|
@ -45,7 +45,7 @@ assert langGo -> langCC;
|
||||||
# threadsCross is just for MinGW
|
# threadsCross is just for MinGW
|
||||||
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
|
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
|
||||||
|
|
||||||
with stdenv.lib;
|
with lib;
|
||||||
with builtins;
|
with builtins;
|
||||||
|
|
||||||
let majorVersion = "7";
|
let majorVersion = "7";
|
||||||
|
@ -97,7 +97,7 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
inherit patches;
|
inherit patches;
|
||||||
|
|
||||||
outputs = [ "out" "man" "info" ] ++ stdenv.lib.optional (!langJit) "lib";
|
outputs = [ "out" "man" "info" ] ++ lib.optional (!langJit) "lib";
|
||||||
setOutputFlags = false;
|
setOutputFlags = false;
|
||||||
NIX_NO_SELF_RPATH = true;
|
NIX_NO_SELF_RPATH = true;
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
# This should kill all the stdinc frameworks that gcc and friends like to
|
# This should kill all the stdinc frameworks that gcc and friends like to
|
||||||
# insert into default search paths.
|
# insert into default search paths.
|
||||||
prePatch = stdenv.lib.optionalString hostPlatform.isDarwin ''
|
prePatch = lib.optionalString hostPlatform.isDarwin ''
|
||||||
substituteInPlace gcc/config/darwin-c.c \
|
substituteInPlace gcc/config/darwin-c.c \
|
||||||
--replace 'if (stdinc)' 'if (0)'
|
--replace 'if (stdinc)' 'if (0)'
|
||||||
|
|
||||||
|
@ -141,13 +141,13 @@ stdenv.mkDerivation ({
|
||||||
-e 's|define[[:blank:]]*MUSL_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define MUSL_DYNAMIC_LINKER\1 "${libc.out}\2"|g'
|
-e 's|define[[:blank:]]*MUSL_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define MUSL_DYNAMIC_LINKER\1 "${libc.out}\2"|g'
|
||||||
done
|
done
|
||||||
''
|
''
|
||||||
+ stdenv.lib.optionalString (targetPlatform.libc == "musl")
|
+ lib.optionalString (targetPlatform.libc == "musl")
|
||||||
''
|
''
|
||||||
sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR'
|
sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR'
|
||||||
''
|
''
|
||||||
)
|
)
|
||||||
else "")
|
else "")
|
||||||
+ stdenv.lib.optionalString targetPlatform.isAvr ''
|
+ lib.optionalString targetPlatform.isAvr ''
|
||||||
makeFlagsArray+=(
|
makeFlagsArray+=(
|
||||||
'LIMITS_H_TEST=false'
|
'LIMITS_H_TEST=false'
|
||||||
)
|
)
|
||||||
|
@ -183,21 +183,22 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
|
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = stdenv.lib.optionalString (stdenv.cc.isClang && langFortran) "-Wno-unused-command-line-argument";
|
NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.cc.isClang && langFortran) "-Wno-unused-command-line-argument";
|
||||||
NIX_LDFLAGS = stdenv.lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
||||||
|
|
||||||
preConfigure = import ../common/pre-configure.nix {
|
preConfigure = import ../common/pre-configure.nix {
|
||||||
inherit (stdenv) lib;
|
inherit lib;
|
||||||
inherit version hostPlatform langGo;
|
inherit version hostPlatform langGo;
|
||||||
};
|
};
|
||||||
|
|
||||||
dontDisableStatic = true;
|
dontDisableStatic = true;
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
||||||
configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
|
configurePlatforms = [ "build" "host" ] ++ lib.optional (targetPlatform != hostPlatform) "target";
|
||||||
|
|
||||||
configureFlags = import ../common/configure-flags.nix {
|
configureFlags = import ../common/configure-flags.nix {
|
||||||
inherit
|
inherit
|
||||||
|
lib
|
||||||
stdenv
|
stdenv
|
||||||
targetPackages
|
targetPackages
|
||||||
crossStageStatic libcCross
|
crossStageStatic libcCross
|
||||||
|
@ -272,7 +273,7 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://gcc.gnu.org/";
|
homepage = "https://gcc.gnu.org/";
|
||||||
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
||||||
description = "GNU Compiler Collection, version ${version}"
|
description = "GNU Compiler Collection, version ${version}"
|
||||||
+ (if stripped then "" else " (with debugging info)");
|
+ (if stripped then "" else " (with debugging info)");
|
||||||
|
|
||||||
|
@ -285,13 +286,13 @@ stdenv.mkDerivation ({
|
||||||
compiler used in the GNU system including the GNU/Linux variant.
|
compiler used in the GNU system including the GNU/Linux variant.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
maintainers = with stdenv.lib.maintainers; [ ];
|
maintainers = with lib.maintainers; [ ];
|
||||||
|
|
||||||
platforms =
|
platforms =
|
||||||
stdenv.lib.platforms.linux ++
|
lib.platforms.linux ++
|
||||||
stdenv.lib.platforms.freebsd ++
|
lib.platforms.freebsd ++
|
||||||
stdenv.lib.platforms.illumos ++
|
lib.platforms.illumos ++
|
||||||
stdenv.lib.platforms.darwin;
|
lib.platforms.darwin;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
|
{ lib, stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
|
||||||
, langC ? true, langCC ? true, langFortran ? false
|
, langC ? true, langCC ? true, langFortran ? false
|
||||||
, langObjC ? stdenv.targetPlatform.isDarwin
|
, langObjC ? stdenv.targetPlatform.isDarwin
|
||||||
, langObjCpp ? stdenv.targetPlatform.isDarwin
|
, langObjCpp ? stdenv.targetPlatform.isDarwin
|
||||||
|
@ -45,7 +45,7 @@ assert langGo -> langCC;
|
||||||
# threadsCross is just for MinGW
|
# threadsCross is just for MinGW
|
||||||
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
|
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
|
||||||
|
|
||||||
with stdenv.lib;
|
with lib;
|
||||||
with builtins;
|
with builtins;
|
||||||
|
|
||||||
let majorVersion = "8";
|
let majorVersion = "8";
|
||||||
|
@ -87,7 +87,7 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
inherit patches;
|
inherit patches;
|
||||||
|
|
||||||
outputs = [ "out" "man" "info" ] ++ stdenv.lib.optional (!langJit) "lib";
|
outputs = [ "out" "man" "info" ] ++ lib.optional (!langJit) "lib";
|
||||||
setOutputFlags = false;
|
setOutputFlags = false;
|
||||||
NIX_NO_SELF_RPATH = true;
|
NIX_NO_SELF_RPATH = true;
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
# This should kill all the stdinc frameworks that gcc and friends like to
|
# This should kill all the stdinc frameworks that gcc and friends like to
|
||||||
# insert into default search paths.
|
# insert into default search paths.
|
||||||
prePatch = stdenv.lib.optionalString hostPlatform.isDarwin ''
|
prePatch = lib.optionalString hostPlatform.isDarwin ''
|
||||||
substituteInPlace gcc/config/darwin-c.c \
|
substituteInPlace gcc/config/darwin-c.c \
|
||||||
--replace 'if (stdinc)' 'if (0)'
|
--replace 'if (stdinc)' 'if (0)'
|
||||||
|
|
||||||
|
@ -131,13 +131,13 @@ stdenv.mkDerivation ({
|
||||||
-e 's|define[[:blank:]]*MUSL_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define MUSL_DYNAMIC_LINKER\1 "${libc.out}\2"|g'
|
-e 's|define[[:blank:]]*MUSL_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define MUSL_DYNAMIC_LINKER\1 "${libc.out}\2"|g'
|
||||||
done
|
done
|
||||||
''
|
''
|
||||||
+ stdenv.lib.optionalString (targetPlatform.libc == "musl")
|
+ lib.optionalString (targetPlatform.libc == "musl")
|
||||||
''
|
''
|
||||||
sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR'
|
sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR'
|
||||||
''
|
''
|
||||||
)
|
)
|
||||||
else "")
|
else "")
|
||||||
+ stdenv.lib.optionalString targetPlatform.isAvr ''
|
+ lib.optionalString targetPlatform.isAvr ''
|
||||||
makeFlagsArray+=(
|
makeFlagsArray+=(
|
||||||
'LIMITS_H_TEST=false'
|
'LIMITS_H_TEST=false'
|
||||||
)
|
)
|
||||||
|
@ -173,20 +173,21 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
|
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
|
||||||
|
|
||||||
NIX_LDFLAGS = stdenv.lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
||||||
|
|
||||||
preConfigure = import ../common/pre-configure.nix {
|
preConfigure = import ../common/pre-configure.nix {
|
||||||
inherit (stdenv) lib;
|
inherit lib;
|
||||||
inherit version hostPlatform langGo;
|
inherit version hostPlatform langGo;
|
||||||
};
|
};
|
||||||
|
|
||||||
dontDisableStatic = true;
|
dontDisableStatic = true;
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
||||||
configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
|
configurePlatforms = [ "build" "host" ] ++ lib.optional (targetPlatform != hostPlatform) "target";
|
||||||
|
|
||||||
configureFlags = import ../common/configure-flags.nix {
|
configureFlags = import ../common/configure-flags.nix {
|
||||||
inherit
|
inherit
|
||||||
|
lib
|
||||||
stdenv
|
stdenv
|
||||||
targetPackages
|
targetPackages
|
||||||
crossStageStatic libcCross
|
crossStageStatic libcCross
|
||||||
|
@ -257,7 +258,7 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://gcc.gnu.org/";
|
homepage = "https://gcc.gnu.org/";
|
||||||
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
||||||
description = "GNU Compiler Collection, version ${version}"
|
description = "GNU Compiler Collection, version ${version}"
|
||||||
+ (if stripped then "" else " (with debugging info)");
|
+ (if stripped then "" else " (with debugging info)");
|
||||||
|
|
||||||
|
@ -270,13 +271,13 @@ stdenv.mkDerivation ({
|
||||||
compiler used in the GNU system including the GNU/Linux variant.
|
compiler used in the GNU system including the GNU/Linux variant.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
maintainers = with stdenv.lib.maintainers; [ synthetica ];
|
maintainers = with lib.maintainers; [ synthetica ];
|
||||||
|
|
||||||
platforms =
|
platforms =
|
||||||
stdenv.lib.platforms.linux ++
|
lib.platforms.linux ++
|
||||||
stdenv.lib.platforms.freebsd ++
|
lib.platforms.freebsd ++
|
||||||
stdenv.lib.platforms.illumos ++
|
lib.platforms.illumos ++
|
||||||
stdenv.lib.platforms.darwin;
|
lib.platforms.darwin;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
|
{ lib, stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
|
||||||
, langC ? true, langCC ? true, langFortran ? false
|
, langC ? true, langCC ? true, langFortran ? false
|
||||||
, langAda ? false
|
, langAda ? false
|
||||||
, langObjC ? stdenv.targetPlatform.isDarwin
|
, langObjC ? stdenv.targetPlatform.isDarwin
|
||||||
|
@ -54,7 +54,7 @@ assert langAda -> gnatboot != null;
|
||||||
# threadsCross is just for MinGW
|
# threadsCross is just for MinGW
|
||||||
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
|
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
|
||||||
|
|
||||||
with stdenv.lib;
|
with lib;
|
||||||
with builtins;
|
with builtins;
|
||||||
|
|
||||||
let majorVersion = "9";
|
let majorVersion = "9";
|
||||||
|
@ -103,7 +103,7 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
inherit patches;
|
inherit patches;
|
||||||
|
|
||||||
outputs = [ "out" "man" "info" ] ++ stdenv.lib.optional (!langJit) "lib";
|
outputs = [ "out" "man" "info" ] ++ lib.optional (!langJit) "lib";
|
||||||
setOutputFlags = false;
|
setOutputFlags = false;
|
||||||
NIX_NO_SELF_RPATH = true;
|
NIX_NO_SELF_RPATH = true;
|
||||||
|
|
||||||
|
@ -113,7 +113,7 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
# This should kill all the stdinc frameworks that gcc and friends like to
|
# This should kill all the stdinc frameworks that gcc and friends like to
|
||||||
# insert into default search paths.
|
# insert into default search paths.
|
||||||
prePatch = stdenv.lib.optionalString hostPlatform.isDarwin ''
|
prePatch = lib.optionalString hostPlatform.isDarwin ''
|
||||||
substituteInPlace gcc/config/darwin-c.c \
|
substituteInPlace gcc/config/darwin-c.c \
|
||||||
--replace 'if (stdinc)' 'if (0)'
|
--replace 'if (stdinc)' 'if (0)'
|
||||||
|
|
||||||
|
@ -147,13 +147,13 @@ stdenv.mkDerivation ({
|
||||||
-e 's|define[[:blank:]]*MUSL_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define MUSL_DYNAMIC_LINKER\1 "${libc.out}\2"|g'
|
-e 's|define[[:blank:]]*MUSL_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define MUSL_DYNAMIC_LINKER\1 "${libc.out}\2"|g'
|
||||||
done
|
done
|
||||||
''
|
''
|
||||||
+ stdenv.lib.optionalString (targetPlatform.libc == "musl")
|
+ lib.optionalString (targetPlatform.libc == "musl")
|
||||||
''
|
''
|
||||||
sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR'
|
sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR'
|
||||||
''
|
''
|
||||||
)
|
)
|
||||||
else "")
|
else "")
|
||||||
+ stdenv.lib.optionalString targetPlatform.isAvr ''
|
+ lib.optionalString targetPlatform.isAvr ''
|
||||||
makeFlagsArray+=(
|
makeFlagsArray+=(
|
||||||
'LIMITS_H_TEST=false'
|
'LIMITS_H_TEST=false'
|
||||||
)
|
)
|
||||||
|
@ -190,20 +190,21 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
|
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
|
||||||
|
|
||||||
NIX_LDFLAGS = stdenv.lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
NIX_LDFLAGS = lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
||||||
|
|
||||||
preConfigure = import ../common/pre-configure.nix {
|
preConfigure = import ../common/pre-configure.nix {
|
||||||
inherit (stdenv) lib;
|
inherit lib;
|
||||||
inherit version hostPlatform gnatboot langAda langGo langJit;
|
inherit version hostPlatform gnatboot langAda langGo langJit;
|
||||||
};
|
};
|
||||||
|
|
||||||
dontDisableStatic = true;
|
dontDisableStatic = true;
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
||||||
configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
|
configurePlatforms = [ "build" "host" ] ++ lib.optional (targetPlatform != hostPlatform) "target";
|
||||||
|
|
||||||
configureFlags = import ../common/configure-flags.nix {
|
configureFlags = import ../common/configure-flags.nix {
|
||||||
inherit
|
inherit
|
||||||
|
lib
|
||||||
stdenv
|
stdenv
|
||||||
targetPackages
|
targetPackages
|
||||||
crossStageStatic libcCross
|
crossStageStatic libcCross
|
||||||
|
@ -276,7 +277,7 @@ stdenv.mkDerivation ({
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "https://gcc.gnu.org/";
|
homepage = "https://gcc.gnu.org/";
|
||||||
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
license = lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
|
||||||
description = "GNU Compiler Collection, version ${version}"
|
description = "GNU Compiler Collection, version ${version}"
|
||||||
+ (if stripped then "" else " (with debugging info)");
|
+ (if stripped then "" else " (with debugging info)");
|
||||||
|
|
||||||
|
@ -289,13 +290,13 @@ stdenv.mkDerivation ({
|
||||||
compiler used in the GNU system including the GNU/Linux variant.
|
compiler used in the GNU system including the GNU/Linux variant.
|
||||||
'';
|
'';
|
||||||
|
|
||||||
maintainers = with stdenv.lib.maintainers; [ synthetica ];
|
maintainers = with lib.maintainers; [ synthetica ];
|
||||||
|
|
||||||
platforms =
|
platforms =
|
||||||
stdenv.lib.platforms.linux ++
|
lib.platforms.linux ++
|
||||||
stdenv.lib.platforms.freebsd ++
|
lib.platforms.freebsd ++
|
||||||
stdenv.lib.platforms.illumos ++
|
lib.platforms.illumos ++
|
||||||
stdenv.lib.platforms.darwin;
|
lib.platforms.darwin;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv
|
{ lib, stdenv
|
||||||
, targetPackages
|
, targetPackages
|
||||||
|
|
||||||
, crossStageStatic, libcCross
|
, crossStageStatic, libcCross
|
||||||
|
@ -24,8 +24,8 @@
|
||||||
, langJit
|
, langJit
|
||||||
}:
|
}:
|
||||||
|
|
||||||
assert cloog != null -> stdenv.lib.versionOlder version "5";
|
assert cloog != null -> lib.versionOlder version "5";
|
||||||
assert langJava -> stdenv.lib.versionOlder version "7";
|
assert langJava -> lib.versionOlder version "7";
|
||||||
|
|
||||||
# Note [Windows Exception Handling]
|
# Note [Windows Exception Handling]
|
||||||
# sjlj (short jump long jump) exception handling makes no sense on x86_64,
|
# sjlj (short jump long jump) exception handling makes no sense on x86_64,
|
||||||
|
@ -171,7 +171,7 @@ let
|
||||||
++ lib.optional javaAwtGtk "--enable-java-awt=gtk"
|
++ lib.optional javaAwtGtk "--enable-java-awt=gtk"
|
||||||
++ lib.optional (langJava && javaAntlr != null) "--with-antlr-jar=${javaAntlr}"
|
++ lib.optional (langJava && javaAntlr != null) "--with-antlr-jar=${javaAntlr}"
|
||||||
|
|
||||||
++ (import ../common/platform-flags.nix { inherit (stdenv) lib targetPlatform; })
|
++ (import ../common/platform-flags.nix { inherit (stdenv) targetPlatform; inherit lib; })
|
||||||
++ lib.optionals (targetPlatform != hostPlatform) crossConfigureFlags
|
++ lib.optionals (targetPlatform != hostPlatform) crossConfigureFlags
|
||||||
++ lib.optional (targetPlatform != hostPlatform) "--disable-bootstrap"
|
++ lib.optional (targetPlatform != hostPlatform) "--disable-bootstrap"
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ in
|
||||||
EXTRA_FLAGS_FOR_TARGET = let
|
EXTRA_FLAGS_FOR_TARGET = let
|
||||||
mkFlags = dep: langD: lib.optionals (targetPlatform != hostPlatform && dep != null && !langD) ([
|
mkFlags = dep: langD: lib.optionals (targetPlatform != hostPlatform && dep != null && !langD) ([
|
||||||
"-O2 -idirafter ${lib.getDev dep}${dep.incdir or "/include"}"
|
"-O2 -idirafter ${lib.getDev dep}${dep.incdir or "/include"}"
|
||||||
] ++ stdenv.lib.optionals (! crossStageStatic) [
|
] ++ lib.optionals (! crossStageStatic) [
|
||||||
"-B${lib.getLib dep}${dep.libdir or "/lib"}"
|
"-B${lib.getLib dep}${dep.libdir or "/lib"}"
|
||||||
]);
|
]);
|
||||||
in mkFlags libcCross langD
|
in mkFlags libcCross langD
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchgit, mpfr, m4, binutils, emacs, zlib, which
|
{ lib, stdenv, fetchgit, mpfr, m4, binutils, emacs, zlib, which
|
||||||
, texinfo, libX11, xorgproto, libXi, gmp, readline, strace
|
, texinfo, libX11, xorgproto, libXi, gmp, readline, strace
|
||||||
, libXext, libXt, libXaw, libXmu } :
|
, libXext, libXt, libXaw, libXmu } :
|
||||||
|
|
||||||
|
@ -45,7 +45,7 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "GNU Common Lisp compiler working via GCC";
|
description = "GNU Common Lisp compiler working via GCC";
|
||||||
maintainers = [ stdenv.lib.maintainers.raskin ];
|
maintainers = [ lib.maintainers.raskin ];
|
||||||
platforms = stdenv.lib.platforms.linux;
|
platforms = lib.platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, mpfr, m4, binutils, emacs, zlib, which
|
{ lib, stdenv, fetchurl, mpfr, m4, binutils, emacs, zlib, which
|
||||||
, texinfo, libX11, xorgproto, libXi, gmp
|
, texinfo, libX11, xorgproto, libXi, gmp
|
||||||
, libXext, libXt, libXaw, libXmu } :
|
, libXext, libXt, libXaw, libXmu } :
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = "-fgnu89-inline";
|
NIX_CFLAGS_COMPILE = "-fgnu89-inline";
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with lib; {
|
||||||
description = "GNU Common Lisp compiler working via GCC";
|
description = "GNU Common Lisp compiler working via GCC";
|
||||||
maintainers = [ maintainers.raskin ];
|
maintainers = [ maintainers.raskin ];
|
||||||
license = licenses.gpl2;
|
license = licenses.gpl2;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, fetchurl, m4 }:
|
{ lib, stdenv, fetchurl, m4 }:
|
||||||
|
|
||||||
let
|
let
|
||||||
version = "0.7.3";
|
version = "0.7.3";
|
||||||
|
@ -13,7 +13,7 @@ stdenv.mkDerivation {
|
||||||
|
|
||||||
buildInputs = [ m4 ];
|
buildInputs = [ m4 ];
|
||||||
|
|
||||||
configureFlags = stdenv.lib.optional stdenv.isDarwin [ "--build=x86_64-apple-darwin" ];
|
configureFlags = lib.optional stdenv.isDarwin [ "--build=x86_64-apple-darwin" ];
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
mkdir -p $out/share/emacs/site-lisp
|
mkdir -p $out/share/emacs/site-lisp
|
||||||
|
@ -23,7 +23,7 @@ stdenv.mkDerivation {
|
||||||
meta = {
|
meta = {
|
||||||
description = "The Forth implementation of the GNU project";
|
description = "The Forth implementation of the GNU project";
|
||||||
homepage = "https://www.gnu.org/software/gforth/";
|
homepage = "https://www.gnu.org/software/gforth/";
|
||||||
license = stdenv.lib.licenses.gpl3;
|
license = lib.licenses.gpl3;
|
||||||
platforms = stdenv.lib.platforms.all;
|
platforms = lib.platforms.all;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, pkgsBuildTarget, targetPackages
|
{ lib, stdenv, pkgsBuildTarget, targetPackages
|
||||||
|
|
||||||
# build-tools
|
# build-tools
|
||||||
, bootPkgs
|
, bootPkgs
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
||||||
# library instead of the faster but GPLed integer-gmp library.
|
# 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 ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
|
||||||
|
|
||||||
, # If enabled, use -fPIC when compiling static libs.
|
, # If enabled, use -fPIC when compiling static libs.
|
||||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
, # What flavour to build. An empty string indicates no
|
, # What flavour to build. An empty string indicates no
|
||||||
# specific flavour and falls back to ghc default values.
|
# specific flavour and falls back to ghc default values.
|
||||||
ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
||||||
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
||||||
|
|
||||||
, # Whether to disable the large address space allocator
|
, # Whether to disable the large address space allocator
|
||||||
|
@ -51,7 +51,7 @@ let
|
||||||
inherit (bootPkgs) ghc;
|
inherit (bootPkgs) ghc;
|
||||||
|
|
||||||
# TODO(@Ericson2314) Make unconditional
|
# TODO(@Ericson2314) Make unconditional
|
||||||
targetPrefix = stdenv.lib.optionalString
|
targetPrefix = lib.optionalString
|
||||||
(targetPlatform != hostPlatform)
|
(targetPlatform != hostPlatform)
|
||||||
"${targetPlatform.config}-";
|
"${targetPlatform.config}-";
|
||||||
|
|
||||||
|
@ -69,32 +69,32 @@ let
|
||||||
# to actually link to our new Libc. The iOS simulator is a special
|
# to actually link to our new Libc. The iOS simulator is a special
|
||||||
# exception because we can’t actually run simulators binaries
|
# exception because we can’t actually run simulators binaries
|
||||||
# ourselves.
|
# ourselves.
|
||||||
+ stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
|
+ lib.optionalString (targetPlatform != hostPlatform) ''
|
||||||
Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
|
Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
|
||||||
CrossCompilePrefix = ${targetPrefix}
|
CrossCompilePrefix = ${targetPrefix}
|
||||||
HADDOCK_DOCS = NO
|
HADDOCK_DOCS = NO
|
||||||
BUILD_SPHINX_HTML = NO
|
BUILD_SPHINX_HTML = NO
|
||||||
BUILD_SPHINX_PDF = NO
|
BUILD_SPHINX_PDF = NO
|
||||||
'' + stdenv.lib.optionalString dontStrip ''
|
'' + lib.optionalString dontStrip ''
|
||||||
STRIP_CMD = :
|
STRIP_CMD = :
|
||||||
'' + stdenv.lib.optionalString (!enableProfiledLibs) ''
|
'' + lib.optionalString (!enableProfiledLibs) ''
|
||||||
GhcLibWays = "v dyn"
|
GhcLibWays = "v dyn"
|
||||||
'' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
|
'' + lib.optionalString enableRelocatedStaticLibs ''
|
||||||
GhcLibHcOpts += -fPIC
|
GhcLibHcOpts += -fPIC
|
||||||
GhcRtsHcOpts += -fPIC
|
GhcRtsHcOpts += -fPIC
|
||||||
'' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||||
EXTRA_CC_OPTS += -std=gnu99
|
EXTRA_CC_OPTS += -std=gnu99
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Splicer will pull out correct variations
|
# Splicer will pull out correct variations
|
||||||
libDeps = platform: stdenv.lib.optional enableTerminfo ncurses
|
libDeps = platform: lib.optional enableTerminfo ncurses
|
||||||
++ [libffi]
|
++ [libffi]
|
||||||
++ stdenv.lib.optional (!enableIntegerSimple) gmp
|
++ lib.optional (!enableIntegerSimple) gmp
|
||||||
++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||||
|
|
||||||
toolsForTarget = [
|
toolsForTarget = [
|
||||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
pkgsBuildTarget.targetPackages.stdenv.cc
|
||||||
] ++ stdenv.lib.optional useLLVM buildLlvmPackages.llvm;
|
] ++ lib.optional useLLVM buildLlvmPackages.llvm;
|
||||||
|
|
||||||
targetCC = builtins.head toolsForTarget;
|
targetCC = builtins.head toolsForTarget;
|
||||||
|
|
||||||
|
@ -128,7 +128,7 @@ stdenv.mkDerivation (rec {
|
||||||
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
||||||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
||||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
||||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString useLdGold ".gold"}"
|
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
|
||||||
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
||||||
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
||||||
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
||||||
|
@ -138,13 +138,13 @@ stdenv.mkDerivation (rec {
|
||||||
|
|
||||||
echo -n "${buildMK dontStrip}" > mk/build.mk
|
echo -n "${buildMK dontStrip}" > mk/build.mk
|
||||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
||||||
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
|
'' + lib.optionalString (!stdenv.isDarwin) ''
|
||||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
||||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
'' + lib.optionalString stdenv.isDarwin ''
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||||
'' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||||
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
||||||
'' + stdenv.lib.optionalString targetPlatform.isMusl ''
|
'' + lib.optionalString targetPlatform.isMusl ''
|
||||||
echo "patching llvm-targets for musl targets..."
|
echo "patching llvm-targets for musl targets..."
|
||||||
echo "Cloning these existing '*-linux-gnu*' targets:"
|
echo "Cloning these existing '*-linux-gnu*' targets:"
|
||||||
grep linux-gnu llvm-targets | sed 's/^/ /'
|
grep linux-gnu llvm-targets | sed 's/^/ /'
|
||||||
|
@ -164,29 +164,29 @@ stdenv.mkDerivation (rec {
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
||||||
configurePlatforms = [ "build" "host" ]
|
configurePlatforms = [ "build" "host" ]
|
||||||
++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
|
++ lib.optional (targetPlatform != hostPlatform) "target";
|
||||||
|
|
||||||
# `--with` flags for libraries needed for RTS linker
|
# `--with` flags for libraries needed for RTS linker
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--datadir=$doc/share/doc/ghc"
|
"--datadir=$doc/share/doc/ghc"
|
||||||
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
||||||
] ++ stdenv.lib.optionals (libffi != null) [
|
] ++ lib.optionals (libffi != null) [
|
||||||
"--with-system-libffi"
|
"--with-system-libffi"
|
||||||
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
||||||
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
||||||
] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
||||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
||||||
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
||||||
] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
||||||
"--with-iconv-includes=${libiconv}/include"
|
"--with-iconv-includes=${libiconv}/include"
|
||||||
"--with-iconv-libraries=${libiconv}/lib"
|
"--with-iconv-libraries=${libiconv}/lib"
|
||||||
] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
|
] ++ lib.optionals (targetPlatform != hostPlatform) [
|
||||||
"--enable-bootstrap-with-devel-snapshot"
|
"--enable-bootstrap-with-devel-snapshot"
|
||||||
] ++ stdenv.lib.optionals useLdGold [
|
] ++ lib.optionals useLdGold [
|
||||||
"CFLAGS=-fuse-ld=gold"
|
"CFLAGS=-fuse-ld=gold"
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
||||||
] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
|
] ++ lib.optionals (disableLargeAddressSpace) [
|
||||||
"--disable-large-address-space"
|
"--disable-large-address-space"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -207,18 +207,18 @@ stdenv.mkDerivation (rec {
|
||||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
||||||
|
|
||||||
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
||||||
++ stdenv.lib.optional useLLVM llvmPackages.llvm;
|
++ lib.optional useLLVM llvmPackages.llvm;
|
||||||
|
|
||||||
depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform);
|
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
|
||||||
depsTargetTargetPropagated = map (stdenv.lib.getOutput "out") (libDeps targetPlatform);
|
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
|
||||||
|
|
||||||
# required, because otherwise all symbols from HSffi.o are stripped, and
|
# required, because otherwise all symbols from HSffi.o are stripped, and
|
||||||
# that in turn causes GHCi to abort
|
# that in turn causes GHCi to abort
|
||||||
stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
||||||
|
|
||||||
checkTarget = "test";
|
checkTarget = "test";
|
||||||
|
|
||||||
hardeningDisable = [ "format" ] ++ stdenv.lib.optional stdenv.targetPlatform.isMusl "pie";
|
hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
# Install the bash completion file.
|
# Install the bash completion file.
|
||||||
|
@ -228,7 +228,7 @@ stdenv.mkDerivation (rec {
|
||||||
for i in "$out/bin/"*; do
|
for i in "$out/bin/"*; do
|
||||||
test ! -h $i || continue
|
test ! -h $i || continue
|
||||||
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
||||||
sed -i -e '2i export PATH="$PATH:${stdenv.lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -245,14 +245,14 @@ stdenv.mkDerivation (rec {
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://haskell.org/ghc";
|
homepage = "http://haskell.org/ghc";
|
||||||
description = "The Glasgow Haskell Compiler";
|
description = "The Glasgow Haskell Compiler";
|
||||||
maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ];
|
maintainers = with lib.maintainers; [ marcweber andres peti ];
|
||||||
timeout = 24 * 3600;
|
timeout = 24 * 3600;
|
||||||
inherit (ghc.meta) license platforms;
|
inherit (ghc.meta) license platforms;
|
||||||
};
|
};
|
||||||
|
|
||||||
dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
|
dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
|
||||||
|
|
||||||
} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
|
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
|
||||||
dontPatchELF = true;
|
dontPatchELF = true;
|
||||||
noAuditTmpdir = true;
|
noAuditTmpdir = true;
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv
|
{ lib, stdenv
|
||||||
, fetchurl, perl, gcc
|
, fetchurl, perl, gcc
|
||||||
, ncurses6, gmp, glibc, libiconv, numactl
|
, ncurses6, gmp, glibc, libiconv, numactl
|
||||||
, llvmPackages
|
, llvmPackages
|
||||||
|
@ -16,12 +16,12 @@ assert stdenv.targetPlatform == stdenv.hostPlatform;
|
||||||
let
|
let
|
||||||
useLLVM = !stdenv.targetPlatform.isx86;
|
useLLVM = !stdenv.targetPlatform.isx86;
|
||||||
|
|
||||||
libPath = stdenv.lib.makeLibraryPath ([
|
libPath = lib.makeLibraryPath ([
|
||||||
ncurses6 gmp
|
ncurses6 gmp
|
||||||
] ++ stdenv.lib.optional (stdenv.hostPlatform.isDarwin) libiconv
|
] ++ lib.optional (stdenv.hostPlatform.isDarwin) libiconv
|
||||||
++ stdenv.lib.optional (stdenv.hostPlatform.isAarch64) numactl);
|
++ lib.optional (stdenv.hostPlatform.isAarch64) numactl);
|
||||||
|
|
||||||
libEnvVar = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin "DY"
|
libEnvVar = lib.optionalString stdenv.hostPlatform.isDarwin "DY"
|
||||||
+ "LD_LIBRARY_PATH";
|
+ "LD_LIBRARY_PATH";
|
||||||
|
|
||||||
glibcDynLinker = assert stdenv.isLinux;
|
glibcDynLinker = assert stdenv.isLinux;
|
||||||
|
@ -29,7 +29,7 @@ let
|
||||||
# Could be stdenv.cc.bintools.dynamicLinker, keeping as-is to avoid rebuild.
|
# Could be stdenv.cc.bintools.dynamicLinker, keeping as-is to avoid rebuild.
|
||||||
''"$(cat $NIX_CC/nix-support/dynamic-linker)"''
|
''"$(cat $NIX_CC/nix-support/dynamic-linker)"''
|
||||||
else
|
else
|
||||||
"${stdenv.lib.getLib glibc}/lib/ld-linux*";
|
"${lib.getLib glibc}/lib/ld-linux*";
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
|
||||||
or (throw "cannot bootstrap GHC on this platform"));
|
or (throw "cannot bootstrap GHC on this platform"));
|
||||||
|
|
||||||
nativeBuildInputs = [ perl ];
|
nativeBuildInputs = [ perl ];
|
||||||
propagatedBuildInputs = stdenv.lib.optionals useLLVM [ llvmPackages.llvm ];
|
propagatedBuildInputs = lib.optionals useLLVM [ llvmPackages.llvm ];
|
||||||
|
|
||||||
# Cannot patchelf beforehand due to relative RPATHs that anticipate
|
# Cannot patchelf beforehand due to relative RPATHs that anticipate
|
||||||
# the final install location/
|
# the final install location/
|
||||||
|
@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
|
||||||
postUnpack =
|
postUnpack =
|
||||||
# GHC has dtrace probes, which causes ld to try to open /usr/lib/libdtrace.dylib
|
# GHC has dtrace probes, which causes ld to try to open /usr/lib/libdtrace.dylib
|
||||||
# during linking
|
# during linking
|
||||||
stdenv.lib.optionalString stdenv.isDarwin ''
|
lib.optionalString stdenv.isDarwin ''
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||||
# not enough room in the object files for the full path to libiconv :(
|
# not enough room in the object files for the full path to libiconv :(
|
||||||
for exe in $(find . -type f -executable); do
|
for exe in $(find . -type f -executable); do
|
||||||
|
@ -92,20 +92,20 @@ stdenv.mkDerivation rec {
|
||||||
''
|
''
|
||||||
find . -name integer-gmp.buildinfo \
|
find . -name integer-gmp.buildinfo \
|
||||||
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp.out}/lib@" {} \;
|
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp.out}/lib@" {} \;
|
||||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
'' + lib.optionalString stdenv.isDarwin ''
|
||||||
find . -name base.buildinfo \
|
find . -name base.buildinfo \
|
||||||
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${libiconv}/lib@" {} \;
|
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${libiconv}/lib@" {} \;
|
||||||
'' +
|
'' +
|
||||||
# aarch64 does HAVE_NUMA so -lnuma requires it in library-dirs in rts/package.conf.in
|
# aarch64 does HAVE_NUMA so -lnuma requires it in library-dirs in rts/package.conf.in
|
||||||
# FFI_LIB_DIR is a good indication of places it must be needed.
|
# FFI_LIB_DIR is a good indication of places it must be needed.
|
||||||
stdenv.lib.optionalString stdenv.hostPlatform.isAarch64 ''
|
lib.optionalString stdenv.hostPlatform.isAarch64 ''
|
||||||
find . -name package.conf.in \
|
find . -name package.conf.in \
|
||||||
-exec sed -i "s@FFI_LIB_DIR@FFI_LIB_DIR ${numactl.out}/lib@g" {} \;
|
-exec sed -i "s@FFI_LIB_DIR@FFI_LIB_DIR ${numactl.out}/lib@g" {} \;
|
||||||
'' +
|
'' +
|
||||||
# Rename needed libraries and binaries, fix interpreter
|
# Rename needed libraries and binaries, fix interpreter
|
||||||
stdenv.lib.optionalString stdenv.isLinux ''
|
lib.optionalString stdenv.isLinux ''
|
||||||
find . -type f -perm -0100 -exec patchelf \
|
find . -type f -perm -0100 -exec patchelf \
|
||||||
--replace-needed libncurses${stdenv.lib.optionalString stdenv.is64bit "w"}.so.6 libncurses.so \
|
--replace-needed libncurses${lib.optionalString stdenv.is64bit "w"}.so.6 libncurses.so \
|
||||||
--interpreter ${glibcDynLinker} {} \;
|
--interpreter ${glibcDynLinker} {} \;
|
||||||
|
|
||||||
sed -i "s|/usr/bin/perl|perl\x00 |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
|
sed -i "s|/usr/bin/perl|perl\x00 |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
|
||||||
|
@ -117,21 +117,21 @@ stdenv.mkDerivation rec {
|
||||||
# (`__strdup` is defined to be an alias of `strdup` anyway[1]).
|
# (`__strdup` is defined to be an alias of `strdup` anyway[1]).
|
||||||
# [1] http://refspecs.linuxbase.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/baselib---strdup-1.html
|
# [1] http://refspecs.linuxbase.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/baselib---strdup-1.html
|
||||||
# Use objcopy magic to make the change:
|
# Use objcopy magic to make the change:
|
||||||
stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
|
lib.optionalString stdenv.hostPlatform.isMusl ''
|
||||||
find ./ghc-${version}/rts -name "libHSrts*.a" -exec ''${OBJCOPY:-objcopy} --redefine-sym __strdup=strdup {} \;
|
find ./ghc-${version}/rts -name "libHSrts*.a" -exec ''${OBJCOPY:-objcopy} --redefine-sym __strdup=strdup {} \;
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# fix for `configure: error: Your linker is affected by binutils #16177`
|
# fix for `configure: error: Your linker is affected by binutils #16177`
|
||||||
preConfigure = stdenv.lib.optionalString
|
preConfigure = lib.optionalString
|
||||||
stdenv.targetPlatform.isAarch32
|
stdenv.targetPlatform.isAarch32
|
||||||
"LD=ld.gold";
|
"LD=ld.gold";
|
||||||
|
|
||||||
configurePlatforms = [ ];
|
configurePlatforms = [ ];
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--with-gmp-libraries=${stdenv.lib.getLib gmp}/lib"
|
"--with-gmp-libraries=${lib.getLib gmp}/lib"
|
||||||
"--with-gmp-includes=${stdenv.lib.getDev gmp}/include"
|
"--with-gmp-includes=${lib.getDev gmp}/include"
|
||||||
] ++ stdenv.lib.optional stdenv.isDarwin "--with-gcc=${./gcc-clang-wrapper.sh}"
|
] ++ lib.optional stdenv.isDarwin "--with-gcc=${./gcc-clang-wrapper.sh}"
|
||||||
++ stdenv.lib.optional stdenv.hostPlatform.isMusl "--disable-ld-override";
|
++ lib.optional stdenv.hostPlatform.isMusl "--disable-ld-override";
|
||||||
|
|
||||||
# No building is necessary, but calling make without flags ironically
|
# No building is necessary, but calling make without flags ironically
|
||||||
# calls install-strip ...
|
# calls install-strip ...
|
||||||
|
@ -139,7 +139,7 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
# On Linux, use patchelf to modify the executables so that they can
|
# On Linux, use patchelf to modify the executables so that they can
|
||||||
# find editline/gmp.
|
# find editline/gmp.
|
||||||
postFixup = stdenv.lib.optionalString stdenv.isLinux
|
postFixup = lib.optionalString stdenv.isLinux
|
||||||
(if stdenv.hostPlatform.isAarch64 then
|
(if stdenv.hostPlatform.isAarch64 then
|
||||||
# Keep rpath as small as possible on aarch64 for patchelf#244. All Elfs
|
# Keep rpath as small as possible on aarch64 for patchelf#244. All Elfs
|
||||||
# are 2 directories deep from $out/lib, so pooling symlinks there makes
|
# are 2 directories deep from $out/lib, so pooling symlinks there makes
|
||||||
|
@ -167,7 +167,7 @@ stdenv.mkDerivation rec {
|
||||||
patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
|
patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
'') + stdenv.lib.optionalString stdenv.isDarwin ''
|
'') + lib.optionalString stdenv.isDarwin ''
|
||||||
# not enough room in the object files for the full path to libiconv :(
|
# not enough room in the object files for the full path to libiconv :(
|
||||||
for exe in $(find "$out" -type f -executable); do
|
for exe in $(find "$out" -type f -executable); do
|
||||||
isScript $exe && continue
|
isScript $exe && continue
|
||||||
|
@ -179,7 +179,7 @@ stdenv.mkDerivation rec {
|
||||||
substituteInPlace $file --replace /usr/bin/ranlib "$(type -P ranlib)"
|
substituteInPlace $file --replace /usr/bin/ranlib "$(type -P ranlib)"
|
||||||
done
|
done
|
||||||
'' +
|
'' +
|
||||||
stdenv.lib.optionalString minimal ''
|
lib.optionalString minimal ''
|
||||||
# Remove profiling files
|
# Remove profiling files
|
||||||
find $out -type f -name '*.p_o' -delete
|
find $out -type f -name '*.p_o' -delete
|
||||||
find $out -type f -name '*.p_hi' -delete
|
find $out -type f -name '*.p_hi' -delete
|
||||||
|
@ -215,8 +215,8 @@ stdenv.mkDerivation rec {
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://haskell.org/ghc";
|
homepage = "http://haskell.org/ghc";
|
||||||
description = "The Glasgow Haskell Compiler";
|
description = "The Glasgow Haskell Compiler";
|
||||||
license = stdenv.lib.licenses.bsd3;
|
license = lib.licenses.bsd3;
|
||||||
platforms = ["x86_64-linux" "armv7l-linux" "aarch64-linux" "i686-linux" "x86_64-darwin"];
|
platforms = ["x86_64-linux" "armv7l-linux" "aarch64-linux" "i686-linux" "x86_64-darwin"];
|
||||||
maintainers = with stdenv.lib.maintainers; [ lostnet ];
|
maintainers = with lib.maintainers; [ lostnet ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, pkgsBuildTarget, targetPackages
|
{ lib, stdenv, pkgsBuildTarget, targetPackages
|
||||||
|
|
||||||
# build-tools
|
# build-tools
|
||||||
, bootPkgs
|
, bootPkgs
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
||||||
# library instead of the faster but GPLed integer-gmp library.
|
# 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 ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
|
||||||
|
|
||||||
, # If enabled, use -fPIC when compiling static libs.
|
, # If enabled, use -fPIC when compiling static libs.
|
||||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
, # What flavour to build. An empty string indicates no
|
, # What flavour to build. An empty string indicates no
|
||||||
# specific flavour and falls back to ghc default values.
|
# specific flavour and falls back to ghc default values.
|
||||||
ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
||||||
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
||||||
|
|
||||||
, # Whether to disable the large address space allocator
|
, # Whether to disable the large address space allocator
|
||||||
|
@ -51,7 +51,7 @@ let
|
||||||
inherit (bootPkgs) ghc;
|
inherit (bootPkgs) ghc;
|
||||||
|
|
||||||
# TODO(@Ericson2314) Make unconditional
|
# TODO(@Ericson2314) Make unconditional
|
||||||
targetPrefix = stdenv.lib.optionalString
|
targetPrefix = lib.optionalString
|
||||||
(targetPlatform != hostPlatform)
|
(targetPlatform != hostPlatform)
|
||||||
"${targetPlatform.config}-";
|
"${targetPlatform.config}-";
|
||||||
|
|
||||||
|
@ -62,30 +62,30 @@ let
|
||||||
endif
|
endif
|
||||||
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
||||||
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
|
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
|
||||||
'' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
|
'' + lib.optionalString (targetPlatform != hostPlatform) ''
|
||||||
Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
|
Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
|
||||||
CrossCompilePrefix = ${targetPrefix}
|
CrossCompilePrefix = ${targetPrefix}
|
||||||
HADDOCK_DOCS = NO
|
HADDOCK_DOCS = NO
|
||||||
BUILD_SPHINX_HTML = NO
|
BUILD_SPHINX_HTML = NO
|
||||||
BUILD_SPHINX_PDF = NO
|
BUILD_SPHINX_PDF = NO
|
||||||
'' + stdenv.lib.optionalString (!enableProfiledLibs) ''
|
'' + lib.optionalString (!enableProfiledLibs) ''
|
||||||
GhcLibWays = "v dyn"
|
GhcLibWays = "v dyn"
|
||||||
'' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
|
'' + lib.optionalString enableRelocatedStaticLibs ''
|
||||||
GhcLibHcOpts += -fPIC
|
GhcLibHcOpts += -fPIC
|
||||||
GhcRtsHcOpts += -fPIC
|
GhcRtsHcOpts += -fPIC
|
||||||
'' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||||
EXTRA_CC_OPTS += -std=gnu99
|
EXTRA_CC_OPTS += -std=gnu99
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Splicer will pull out correct variations
|
# Splicer will pull out correct variations
|
||||||
libDeps = platform: stdenv.lib.optional enableTerminfo ncurses
|
libDeps = platform: lib.optional enableTerminfo ncurses
|
||||||
++ [libffi]
|
++ [libffi]
|
||||||
++ stdenv.lib.optional (!enableIntegerSimple) gmp
|
++ lib.optional (!enableIntegerSimple) gmp
|
||||||
++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||||
|
|
||||||
toolsForTarget = [
|
toolsForTarget = [
|
||||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
pkgsBuildTarget.targetPackages.stdenv.cc
|
||||||
] ++ stdenv.lib.optional useLLVM buildLlvmPackages.llvm;
|
] ++ lib.optional useLLVM buildLlvmPackages.llvm;
|
||||||
|
|
||||||
targetCC = builtins.head toolsForTarget;
|
targetCC = builtins.head toolsForTarget;
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ stdenv.mkDerivation (rec {
|
||||||
# https://gitlab.haskell.org/ghc/ghc/-/issues/18549
|
# https://gitlab.haskell.org/ghc/ghc/-/issues/18549
|
||||||
patches = [
|
patches = [
|
||||||
./issue-18549.patch
|
./issue-18549.patch
|
||||||
] ++ stdenv.lib.optionals stdenv.isDarwin [
|
] ++ lib.optionals stdenv.isDarwin [
|
||||||
# Make Block.h compile with c++ compilers. Remove with the next release
|
# Make Block.h compile with c++ compilers. Remove with the next release
|
||||||
(fetchpatch {
|
(fetchpatch {
|
||||||
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/97d0b0a367e4c6a52a17c3299439ac7de129da24.patch";
|
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/97d0b0a367e4c6a52a17c3299439ac7de129da24.patch";
|
||||||
|
@ -130,7 +130,7 @@ stdenv.mkDerivation (rec {
|
||||||
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
||||||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
||||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
||||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString useLdGold ".gold"}"
|
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
|
||||||
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
||||||
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
||||||
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
||||||
|
@ -140,13 +140,13 @@ stdenv.mkDerivation (rec {
|
||||||
|
|
||||||
echo -n "${buildMK}" > mk/build.mk
|
echo -n "${buildMK}" > mk/build.mk
|
||||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
||||||
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
|
'' + lib.optionalString (!stdenv.isDarwin) ''
|
||||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
||||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
'' + lib.optionalString stdenv.isDarwin ''
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||||
'' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||||
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
||||||
'' + stdenv.lib.optionalString targetPlatform.isMusl ''
|
'' + lib.optionalString targetPlatform.isMusl ''
|
||||||
echo "patching llvm-targets for musl targets..."
|
echo "patching llvm-targets for musl targets..."
|
||||||
echo "Cloning these existing '*-linux-gnu*' targets:"
|
echo "Cloning these existing '*-linux-gnu*' targets:"
|
||||||
grep linux-gnu llvm-targets | sed 's/^/ /'
|
grep linux-gnu llvm-targets | sed 's/^/ /'
|
||||||
|
@ -166,29 +166,29 @@ stdenv.mkDerivation (rec {
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
||||||
configurePlatforms = [ "build" "host" ]
|
configurePlatforms = [ "build" "host" ]
|
||||||
++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
|
++ lib.optional (targetPlatform != hostPlatform) "target";
|
||||||
|
|
||||||
# `--with` flags for libraries needed for RTS linker
|
# `--with` flags for libraries needed for RTS linker
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--datadir=$doc/share/doc/ghc"
|
"--datadir=$doc/share/doc/ghc"
|
||||||
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
||||||
] ++ stdenv.lib.optionals (libffi != null) [
|
] ++ lib.optionals (libffi != null) [
|
||||||
"--with-system-libffi"
|
"--with-system-libffi"
|
||||||
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
||||||
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
||||||
] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
||||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
||||||
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
||||||
] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
||||||
"--with-iconv-includes=${libiconv}/include"
|
"--with-iconv-includes=${libiconv}/include"
|
||||||
"--with-iconv-libraries=${libiconv}/lib"
|
"--with-iconv-libraries=${libiconv}/lib"
|
||||||
] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
|
] ++ lib.optionals (targetPlatform != hostPlatform) [
|
||||||
"--enable-bootstrap-with-devel-snapshot"
|
"--enable-bootstrap-with-devel-snapshot"
|
||||||
] ++ stdenv.lib.optionals useLdGold [
|
] ++ lib.optionals useLdGold [
|
||||||
"CFLAGS=-fuse-ld=gold"
|
"CFLAGS=-fuse-ld=gold"
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
||||||
] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
|
] ++ lib.optionals (disableLargeAddressSpace) [
|
||||||
"--disable-large-address-space"
|
"--disable-large-address-space"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -209,18 +209,18 @@ stdenv.mkDerivation (rec {
|
||||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
||||||
|
|
||||||
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
||||||
++ stdenv.lib.optional useLLVM llvmPackages.llvm;
|
++ lib.optional useLLVM llvmPackages.llvm;
|
||||||
|
|
||||||
depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform);
|
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
|
||||||
depsTargetTargetPropagated = map (stdenv.lib.getOutput "out") (libDeps targetPlatform);
|
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
|
||||||
|
|
||||||
# required, because otherwise all symbols from HSffi.o are stripped, and
|
# required, because otherwise all symbols from HSffi.o are stripped, and
|
||||||
# that in turn causes GHCi to abort
|
# that in turn causes GHCi to abort
|
||||||
stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
||||||
|
|
||||||
checkTarget = "test";
|
checkTarget = "test";
|
||||||
|
|
||||||
hardeningDisable = [ "format" ] ++ stdenv.lib.optional stdenv.targetPlatform.isMusl "pie";
|
hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
# Install the bash completion file.
|
# Install the bash completion file.
|
||||||
|
@ -230,7 +230,7 @@ stdenv.mkDerivation (rec {
|
||||||
for i in "$out/bin/"*; do
|
for i in "$out/bin/"*; do
|
||||||
test ! -h $i || continue
|
test ! -h $i || continue
|
||||||
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
||||||
sed -i -e '2i export PATH="$PATH:${stdenv.lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -247,12 +247,12 @@ stdenv.mkDerivation (rec {
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://haskell.org/ghc";
|
homepage = "http://haskell.org/ghc";
|
||||||
description = "The Glasgow Haskell Compiler";
|
description = "The Glasgow Haskell Compiler";
|
||||||
maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ];
|
maintainers = with lib.maintainers; [ marcweber andres peti ];
|
||||||
timeout = 24 * 3600;
|
timeout = 24 * 3600;
|
||||||
inherit (ghc.meta) license platforms;
|
inherit (ghc.meta) license platforms;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
|
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
dontPatchELF = true;
|
dontPatchELF = true;
|
||||||
noAuditTmpdir = true;
|
noAuditTmpdir = true;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, pkgsBuildTarget, targetPackages
|
{ lib, stdenv, pkgsBuildTarget, targetPackages
|
||||||
|
|
||||||
# build-tools
|
# build-tools
|
||||||
, bootPkgs
|
, bootPkgs
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
||||||
# library instead of the faster but GPLed integer-gmp library.
|
# 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 ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
|
||||||
|
|
||||||
, # If enabled, use -fPIC when compiling static libs.
|
, # If enabled, use -fPIC when compiling static libs.
|
||||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
, # What flavour to build. An empty string indicates no
|
, # What flavour to build. An empty string indicates no
|
||||||
# specific flavour and falls back to ghc default values.
|
# specific flavour and falls back to ghc default values.
|
||||||
ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
||||||
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
||||||
|
|
||||||
, # Whether to disable the large address space allocator
|
, # Whether to disable the large address space allocator
|
||||||
|
@ -51,7 +51,7 @@ let
|
||||||
inherit (bootPkgs) ghc;
|
inherit (bootPkgs) ghc;
|
||||||
|
|
||||||
# TODO(@Ericson2314) Make unconditional
|
# TODO(@Ericson2314) Make unconditional
|
||||||
targetPrefix = stdenv.lib.optionalString
|
targetPrefix = lib.optionalString
|
||||||
(targetPlatform != hostPlatform)
|
(targetPlatform != hostPlatform)
|
||||||
"${targetPlatform.config}-";
|
"${targetPlatform.config}-";
|
||||||
|
|
||||||
|
@ -62,30 +62,30 @@ let
|
||||||
endif
|
endif
|
||||||
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
|
||||||
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
|
INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
|
||||||
'' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
|
'' + lib.optionalString (targetPlatform != hostPlatform) ''
|
||||||
Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
|
Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
|
||||||
CrossCompilePrefix = ${targetPrefix}
|
CrossCompilePrefix = ${targetPrefix}
|
||||||
HADDOCK_DOCS = NO
|
HADDOCK_DOCS = NO
|
||||||
BUILD_SPHINX_HTML = NO
|
BUILD_SPHINX_HTML = NO
|
||||||
BUILD_SPHINX_PDF = NO
|
BUILD_SPHINX_PDF = NO
|
||||||
'' + stdenv.lib.optionalString (!enableProfiledLibs) ''
|
'' + lib.optionalString (!enableProfiledLibs) ''
|
||||||
GhcLibWays = "v dyn"
|
GhcLibWays = "v dyn"
|
||||||
'' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
|
'' + lib.optionalString enableRelocatedStaticLibs ''
|
||||||
GhcLibHcOpts += -fPIC
|
GhcLibHcOpts += -fPIC
|
||||||
GhcRtsHcOpts += -fPIC
|
GhcRtsHcOpts += -fPIC
|
||||||
'' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||||
EXTRA_CC_OPTS += -std=gnu99
|
EXTRA_CC_OPTS += -std=gnu99
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Splicer will pull out correct variations
|
# Splicer will pull out correct variations
|
||||||
libDeps = platform: stdenv.lib.optional enableTerminfo ncurses
|
libDeps = platform: lib.optional enableTerminfo ncurses
|
||||||
++ [libffi]
|
++ [libffi]
|
||||||
++ stdenv.lib.optional (!enableIntegerSimple) gmp
|
++ lib.optional (!enableIntegerSimple) gmp
|
||||||
++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||||
|
|
||||||
toolsForTarget = [
|
toolsForTarget = [
|
||||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
pkgsBuildTarget.targetPackages.stdenv.cc
|
||||||
] ++ stdenv.lib.optional useLLVM buildLlvmPackages.llvm;
|
] ++ lib.optional useLLVM buildLlvmPackages.llvm;
|
||||||
|
|
||||||
targetCC = builtins.head toolsForTarget;
|
targetCC = builtins.head toolsForTarget;
|
||||||
|
|
||||||
|
@ -107,7 +107,7 @@ stdenv.mkDerivation (rec {
|
||||||
|
|
||||||
outputs = [ "out" "doc" ];
|
outputs = [ "out" "doc" ];
|
||||||
|
|
||||||
patches = stdenv.lib.optionals stdenv.isDarwin [
|
patches = lib.optionals stdenv.isDarwin [
|
||||||
# Make Block.h compile with c++ compilers. Remove with the next release
|
# Make Block.h compile with c++ compilers. Remove with the next release
|
||||||
(fetchpatch {
|
(fetchpatch {
|
||||||
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/97d0b0a367e4c6a52a17c3299439ac7de129da24.patch";
|
url = "https://gitlab.haskell.org/ghc/ghc/-/commit/97d0b0a367e4c6a52a17c3299439ac7de129da24.patch";
|
||||||
|
@ -127,7 +127,7 @@ stdenv.mkDerivation (rec {
|
||||||
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
||||||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
||||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
||||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString useLdGold ".gold"}"
|
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
|
||||||
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
||||||
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
||||||
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
||||||
|
@ -137,13 +137,13 @@ stdenv.mkDerivation (rec {
|
||||||
|
|
||||||
echo -n "${buildMK}" > mk/build.mk
|
echo -n "${buildMK}" > mk/build.mk
|
||||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
||||||
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
|
'' + lib.optionalString (!stdenv.isDarwin) ''
|
||||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
||||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
'' + lib.optionalString stdenv.isDarwin ''
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||||
'' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||||
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
||||||
'' + stdenv.lib.optionalString targetPlatform.isMusl ''
|
'' + lib.optionalString targetPlatform.isMusl ''
|
||||||
echo "patching llvm-targets for musl targets..."
|
echo "patching llvm-targets for musl targets..."
|
||||||
echo "Cloning these existing '*-linux-gnu*' targets:"
|
echo "Cloning these existing '*-linux-gnu*' targets:"
|
||||||
grep linux-gnu llvm-targets | sed 's/^/ /'
|
grep linux-gnu llvm-targets | sed 's/^/ /'
|
||||||
|
@ -163,29 +163,29 @@ stdenv.mkDerivation (rec {
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
||||||
configurePlatforms = [ "build" "host" ]
|
configurePlatforms = [ "build" "host" ]
|
||||||
++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
|
++ lib.optional (targetPlatform != hostPlatform) "target";
|
||||||
|
|
||||||
# `--with` flags for libraries needed for RTS linker
|
# `--with` flags for libraries needed for RTS linker
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--datadir=$doc/share/doc/ghc"
|
"--datadir=$doc/share/doc/ghc"
|
||||||
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
||||||
] ++ stdenv.lib.optionals (libffi != null) [
|
] ++ lib.optionals (libffi != null) [
|
||||||
"--with-system-libffi"
|
"--with-system-libffi"
|
||||||
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
||||||
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
||||||
] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
||||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
||||||
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
||||||
] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
||||||
"--with-iconv-includes=${libiconv}/include"
|
"--with-iconv-includes=${libiconv}/include"
|
||||||
"--with-iconv-libraries=${libiconv}/lib"
|
"--with-iconv-libraries=${libiconv}/lib"
|
||||||
] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
|
] ++ lib.optionals (targetPlatform != hostPlatform) [
|
||||||
"--enable-bootstrap-with-devel-snapshot"
|
"--enable-bootstrap-with-devel-snapshot"
|
||||||
] ++ stdenv.lib.optionals useLdGold [
|
] ++ lib.optionals useLdGold [
|
||||||
"CFLAGS=-fuse-ld=gold"
|
"CFLAGS=-fuse-ld=gold"
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
||||||
] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
|
] ++ lib.optionals (disableLargeAddressSpace) [
|
||||||
"--disable-large-address-space"
|
"--disable-large-address-space"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -206,18 +206,18 @@ stdenv.mkDerivation (rec {
|
||||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
||||||
|
|
||||||
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
||||||
++ stdenv.lib.optional useLLVM llvmPackages.llvm;
|
++ lib.optional useLLVM llvmPackages.llvm;
|
||||||
|
|
||||||
depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform);
|
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
|
||||||
depsTargetTargetPropagated = map (stdenv.lib.getOutput "out") (libDeps targetPlatform);
|
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
|
||||||
|
|
||||||
# required, because otherwise all symbols from HSffi.o are stripped, and
|
# required, because otherwise all symbols from HSffi.o are stripped, and
|
||||||
# that in turn causes GHCi to abort
|
# that in turn causes GHCi to abort
|
||||||
stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
||||||
|
|
||||||
checkTarget = "test";
|
checkTarget = "test";
|
||||||
|
|
||||||
hardeningDisable = [ "format" ] ++ stdenv.lib.optional stdenv.targetPlatform.isMusl "pie";
|
hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
# Install the bash completion file.
|
# Install the bash completion file.
|
||||||
|
@ -227,7 +227,7 @@ stdenv.mkDerivation (rec {
|
||||||
for i in "$out/bin/"*; do
|
for i in "$out/bin/"*; do
|
||||||
test ! -h $i || continue
|
test ! -h $i || continue
|
||||||
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
||||||
sed -i -e '2i export PATH="$PATH:${stdenv.lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -244,12 +244,12 @@ stdenv.mkDerivation (rec {
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://haskell.org/ghc";
|
homepage = "http://haskell.org/ghc";
|
||||||
description = "The Glasgow Haskell Compiler";
|
description = "The Glasgow Haskell Compiler";
|
||||||
maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ];
|
maintainers = with lib.maintainers; [ marcweber andres peti ];
|
||||||
timeout = 24 * 3600;
|
timeout = 24 * 3600;
|
||||||
inherit (ghc.meta) license platforms;
|
inherit (ghc.meta) license platforms;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
|
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
dontPatchELF = true;
|
dontPatchELF = true;
|
||||||
noAuditTmpdir = true;
|
noAuditTmpdir = true;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, substituteAll
|
{ lib, stdenv, substituteAll
|
||||||
, fetchurl, perl, gcc, llvm
|
, fetchurl, perl, gcc, llvm
|
||||||
, ncurses5, gmp, glibc, libiconv
|
, ncurses5, gmp, glibc, libiconv
|
||||||
, llvmPackages
|
, llvmPackages
|
||||||
|
@ -10,11 +10,11 @@ assert stdenv.targetPlatform == stdenv.hostPlatform;
|
||||||
let
|
let
|
||||||
useLLVM = !stdenv.targetPlatform.isx86;
|
useLLVM = !stdenv.targetPlatform.isx86;
|
||||||
|
|
||||||
libPath = stdenv.lib.makeLibraryPath ([
|
libPath = lib.makeLibraryPath ([
|
||||||
ncurses5 gmp
|
ncurses5 gmp
|
||||||
] ++ stdenv.lib.optional (stdenv.hostPlatform.isDarwin) libiconv);
|
] ++ lib.optional (stdenv.hostPlatform.isDarwin) libiconv);
|
||||||
|
|
||||||
libEnvVar = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin "DY"
|
libEnvVar = lib.optionalString stdenv.hostPlatform.isDarwin "DY"
|
||||||
+ "LD_LIBRARY_PATH";
|
+ "LD_LIBRARY_PATH";
|
||||||
|
|
||||||
glibcDynLinker = assert stdenv.isLinux;
|
glibcDynLinker = assert stdenv.isLinux;
|
||||||
|
@ -22,7 +22,7 @@ let
|
||||||
# Could be stdenv.cc.bintools.dynamicLinker, keeping as-is to avoid rebuild.
|
# Could be stdenv.cc.bintools.dynamicLinker, keeping as-is to avoid rebuild.
|
||||||
''"$(cat $NIX_CC/nix-support/dynamic-linker)"''
|
''"$(cat $NIX_CC/nix-support/dynamic-linker)"''
|
||||||
else
|
else
|
||||||
"${stdenv.lib.getLib glibc}/lib/ld-linux*";
|
"${lib.getLib glibc}/lib/ld-linux*";
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
|
||||||
or (throw "cannot bootstrap GHC on this platform"));
|
or (throw "cannot bootstrap GHC on this platform"));
|
||||||
|
|
||||||
nativeBuildInputs = [ perl ];
|
nativeBuildInputs = [ perl ];
|
||||||
propagatedBuildInputs = stdenv.lib.optionals useLLVM [ llvmPackages.llvm ];
|
propagatedBuildInputs = lib.optionals useLLVM [ llvmPackages.llvm ];
|
||||||
|
|
||||||
# Cannot patchelf beforehand due to relative RPATHs that anticipate
|
# Cannot patchelf beforehand due to relative RPATHs that anticipate
|
||||||
# the final install location/
|
# the final install location/
|
||||||
|
@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
|
||||||
postUnpack =
|
postUnpack =
|
||||||
# GHC has dtrace probes, which causes ld to try to open /usr/lib/libdtrace.dylib
|
# GHC has dtrace probes, which causes ld to try to open /usr/lib/libdtrace.dylib
|
||||||
# during linking
|
# during linking
|
||||||
stdenv.lib.optionalString stdenv.isDarwin ''
|
lib.optionalString stdenv.isDarwin ''
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||||
# not enough room in the object files for the full path to libiconv :(
|
# not enough room in the object files for the full path to libiconv :(
|
||||||
for exe in $(find . -type f -executable); do
|
for exe in $(find . -type f -executable); do
|
||||||
|
@ -97,14 +97,14 @@ stdenv.mkDerivation rec {
|
||||||
''
|
''
|
||||||
find . -name integer-gmp.buildinfo \
|
find . -name integer-gmp.buildinfo \
|
||||||
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp.out}/lib@" {} \;
|
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp.out}/lib@" {} \;
|
||||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
'' + lib.optionalString stdenv.isDarwin ''
|
||||||
find . -name base.buildinfo \
|
find . -name base.buildinfo \
|
||||||
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${libiconv}/lib@" {} \;
|
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${libiconv}/lib@" {} \;
|
||||||
'' +
|
'' +
|
||||||
# Rename needed libraries and binaries, fix interpreter
|
# Rename needed libraries and binaries, fix interpreter
|
||||||
stdenv.lib.optionalString stdenv.isLinux ''
|
lib.optionalString stdenv.isLinux ''
|
||||||
find . -type f -perm -0100 -exec patchelf \
|
find . -type f -perm -0100 -exec patchelf \
|
||||||
--replace-needed libncurses${stdenv.lib.optionalString stdenv.is64bit "w"}.so.5 libncurses.so \
|
--replace-needed libncurses${lib.optionalString stdenv.is64bit "w"}.so.5 libncurses.so \
|
||||||
--replace-needed libtinfo.so libtinfo.so.5 \
|
--replace-needed libtinfo.so libtinfo.so.5 \
|
||||||
--interpreter ${glibcDynLinker} {} \;
|
--interpreter ${glibcDynLinker} {} \;
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ stdenv.mkDerivation rec {
|
||||||
# (`__strdup` is defined to be an alias of `strdup` anyway[1]).
|
# (`__strdup` is defined to be an alias of `strdup` anyway[1]).
|
||||||
# [1] http://refspecs.linuxbase.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/baselib---strdup-1.html
|
# [1] http://refspecs.linuxbase.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/baselib---strdup-1.html
|
||||||
# Use objcopy magic to make the change:
|
# Use objcopy magic to make the change:
|
||||||
stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
|
lib.optionalString stdenv.hostPlatform.isMusl ''
|
||||||
find ./ghc-${version}/rts -name "libHSrts*.a" -exec ''${OBJCOPY:-objcopy} --redefine-sym __strdup=strdup {} \;
|
find ./ghc-${version}/rts -name "libHSrts*.a" -exec ''${OBJCOPY:-objcopy} --redefine-sym __strdup=strdup {} \;
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -130,10 +130,10 @@ stdenv.mkDerivation rec {
|
||||||
src = ./gcc-clang-wrapper.sh;
|
src = ./gcc-clang-wrapper.sh;
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
[ "--with-gmp-libraries=${stdenv.lib.getLib gmp}/lib"
|
[ "--with-gmp-libraries=${lib.getLib gmp}/lib"
|
||||||
"--with-gmp-includes=${stdenv.lib.getDev gmp}/include"
|
"--with-gmp-includes=${lib.getDev gmp}/include"
|
||||||
] ++ stdenv.lib.optional stdenv.isDarwin "--with-gcc=${gcc-clang-wrapper}"
|
] ++ lib.optional stdenv.isDarwin "--with-gcc=${gcc-clang-wrapper}"
|
||||||
++ stdenv.lib.optional stdenv.hostPlatform.isMusl "--disable-ld-override";
|
++ lib.optional stdenv.hostPlatform.isMusl "--disable-ld-override";
|
||||||
|
|
||||||
# Stripping combined with patchelf breaks the executables (they die
|
# Stripping combined with patchelf breaks the executables (they die
|
||||||
# with a segfault or the kernel even refuses the execve). (NIXPKGS-85)
|
# with a segfault or the kernel even refuses the execve). (NIXPKGS-85)
|
||||||
|
@ -145,14 +145,14 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
# On Linux, use patchelf to modify the executables so that they can
|
# On Linux, use patchelf to modify the executables so that they can
|
||||||
# find editline/gmp.
|
# find editline/gmp.
|
||||||
preFixup = stdenv.lib.optionalString stdenv.isLinux ''
|
preFixup = lib.optionalString stdenv.isLinux ''
|
||||||
for p in $(find "$out" -type f -executable); do
|
for p in $(find "$out" -type f -executable); do
|
||||||
if isELF "$p"; then
|
if isELF "$p"; then
|
||||||
echo "Patchelfing $p"
|
echo "Patchelfing $p"
|
||||||
patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
|
patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
'' + lib.optionalString stdenv.isDarwin ''
|
||||||
# not enough room in the object files for the full path to libiconv :(
|
# not enough room in the object files for the full path to libiconv :(
|
||||||
for exe in $(find "$out" -type f -executable); do
|
for exe in $(find "$out" -type f -executable); do
|
||||||
isScript $exe && continue
|
isScript $exe && continue
|
||||||
|
@ -186,6 +186,6 @@ stdenv.mkDerivation rec {
|
||||||
enableShared = true;
|
enableShared = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
meta.license = stdenv.lib.licenses.bsd3;
|
meta.license = lib.licenses.bsd3;
|
||||||
meta.platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin" "armv7l-linux" "aarch64-linux"];
|
meta.platforms = ["x86_64-linux" "i686-linux" "x86_64-darwin" "armv7l-linux" "aarch64-linux"];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv
|
{ lib, stdenv
|
||||||
, fetchurl, perl, gcc
|
, fetchurl, perl, gcc
|
||||||
, ncurses5, ncurses6, gmp, glibc, libiconv
|
, ncurses5, ncurses6, gmp, glibc, libiconv
|
||||||
, llvmPackages
|
, llvmPackages
|
||||||
|
@ -14,11 +14,11 @@ let
|
||||||
|
|
||||||
ourNcurses = if useNcurses6 then ncurses6 else ncurses5;
|
ourNcurses = if useNcurses6 then ncurses6 else ncurses5;
|
||||||
|
|
||||||
libPath = stdenv.lib.makeLibraryPath ([
|
libPath = lib.makeLibraryPath ([
|
||||||
ourNcurses gmp
|
ourNcurses gmp
|
||||||
] ++ stdenv.lib.optional (stdenv.hostPlatform.isDarwin) libiconv);
|
] ++ lib.optional (stdenv.hostPlatform.isDarwin) libiconv);
|
||||||
|
|
||||||
libEnvVar = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin "DY"
|
libEnvVar = lib.optionalString stdenv.hostPlatform.isDarwin "DY"
|
||||||
+ "LD_LIBRARY_PATH";
|
+ "LD_LIBRARY_PATH";
|
||||||
|
|
||||||
glibcDynLinker = assert stdenv.isLinux;
|
glibcDynLinker = assert stdenv.isLinux;
|
||||||
|
@ -26,7 +26,7 @@ let
|
||||||
# Could be stdenv.cc.bintools.dynamicLinker, keeping as-is to avoid rebuild.
|
# Could be stdenv.cc.bintools.dynamicLinker, keeping as-is to avoid rebuild.
|
||||||
''"$(cat $NIX_CC/nix-support/dynamic-linker)"''
|
''"$(cat $NIX_CC/nix-support/dynamic-linker)"''
|
||||||
else
|
else
|
||||||
"${stdenv.lib.getLib glibc}/lib/ld-linux*";
|
"${lib.getLib glibc}/lib/ld-linux*";
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
|
||||||
or (throw "cannot bootstrap GHC on this platform"));
|
or (throw "cannot bootstrap GHC on this platform"));
|
||||||
|
|
||||||
nativeBuildInputs = [ perl ];
|
nativeBuildInputs = [ perl ];
|
||||||
propagatedBuildInputs = stdenv.lib.optionals useLLVM [ llvmPackages.llvm ];
|
propagatedBuildInputs = lib.optionals useLLVM [ llvmPackages.llvm ];
|
||||||
|
|
||||||
# Cannot patchelf beforehand due to relative RPATHs that anticipate
|
# Cannot patchelf beforehand due to relative RPATHs that anticipate
|
||||||
# the final install location/
|
# the final install location/
|
||||||
|
@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
|
||||||
postUnpack =
|
postUnpack =
|
||||||
# GHC has dtrace probes, which causes ld to try to open /usr/lib/libdtrace.dylib
|
# GHC has dtrace probes, which causes ld to try to open /usr/lib/libdtrace.dylib
|
||||||
# during linking
|
# during linking
|
||||||
stdenv.lib.optionalString stdenv.isDarwin ''
|
lib.optionalString stdenv.isDarwin ''
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||||
# not enough room in the object files for the full path to libiconv :(
|
# not enough room in the object files for the full path to libiconv :(
|
||||||
for exe in $(find . -type f -executable); do
|
for exe in $(find . -type f -executable); do
|
||||||
|
@ -90,17 +90,17 @@ stdenv.mkDerivation rec {
|
||||||
''
|
''
|
||||||
find . -name integer-gmp.buildinfo \
|
find . -name integer-gmp.buildinfo \
|
||||||
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp.out}/lib@" {} \;
|
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp.out}/lib@" {} \;
|
||||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
'' + lib.optionalString stdenv.isDarwin ''
|
||||||
find . -name base.buildinfo \
|
find . -name base.buildinfo \
|
||||||
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${libiconv}/lib@" {} \;
|
-exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${libiconv}/lib@" {} \;
|
||||||
'' +
|
'' +
|
||||||
# Rename needed libraries and binaries, fix interpreter
|
# Rename needed libraries and binaries, fix interpreter
|
||||||
stdenv.lib.optionalString stdenv.isLinux ''
|
lib.optionalString stdenv.isLinux ''
|
||||||
find . -type f -perm -0100 \
|
find . -type f -perm -0100 \
|
||||||
-exec patchelf \
|
-exec patchelf \
|
||||||
--replace-needed libncurses${stdenv.lib.optionalString stdenv.is64bit "w"}.so.5 libncurses.so \
|
--replace-needed libncurses${lib.optionalString stdenv.is64bit "w"}.so.5 libncurses.so \
|
||||||
${ # This isn't required for x86_64-linux where we use ncurses6
|
${ # This isn't required for x86_64-linux where we use ncurses6
|
||||||
stdenv.lib.optionalString (!useNcurses6) "--replace-needed libtinfo.so libtinfo.so.5"
|
lib.optionalString (!useNcurses6) "--replace-needed libtinfo.so libtinfo.so.5"
|
||||||
} \
|
} \
|
||||||
--interpreter ${glibcDynLinker} {} \;
|
--interpreter ${glibcDynLinker} {} \;
|
||||||
|
|
||||||
|
@ -113,16 +113,16 @@ stdenv.mkDerivation rec {
|
||||||
# (`__strdup` is defined to be an alias of `strdup` anyway[1]).
|
# (`__strdup` is defined to be an alias of `strdup` anyway[1]).
|
||||||
# [1] http://refspecs.linuxbase.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/baselib---strdup-1.html
|
# [1] http://refspecs.linuxbase.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/baselib---strdup-1.html
|
||||||
# Use objcopy magic to make the change:
|
# Use objcopy magic to make the change:
|
||||||
stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
|
lib.optionalString stdenv.hostPlatform.isMusl ''
|
||||||
find ./ghc-${version}/rts -name "libHSrts*.a" -exec ''${OBJCOPY:-objcopy} --redefine-sym __strdup=strdup {} \;
|
find ./ghc-${version}/rts -name "libHSrts*.a" -exec ''${OBJCOPY:-objcopy} --redefine-sym __strdup=strdup {} \;
|
||||||
'';
|
'';
|
||||||
|
|
||||||
configurePlatforms = [ ];
|
configurePlatforms = [ ];
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--with-gmp-libraries=${stdenv.lib.getLib gmp}/lib"
|
"--with-gmp-libraries=${lib.getLib gmp}/lib"
|
||||||
"--with-gmp-includes=${stdenv.lib.getDev gmp}/include"
|
"--with-gmp-includes=${lib.getDev gmp}/include"
|
||||||
] ++ stdenv.lib.optional stdenv.isDarwin "--with-gcc=${./gcc-clang-wrapper.sh}"
|
] ++ lib.optional stdenv.isDarwin "--with-gcc=${./gcc-clang-wrapper.sh}"
|
||||||
++ stdenv.lib.optional stdenv.hostPlatform.isMusl "--disable-ld-override";
|
++ lib.optional stdenv.hostPlatform.isMusl "--disable-ld-override";
|
||||||
|
|
||||||
# No building is necessary, but calling make without flags ironically
|
# No building is necessary, but calling make without flags ironically
|
||||||
# calls install-strip ...
|
# calls install-strip ...
|
||||||
|
@ -130,14 +130,14 @@ stdenv.mkDerivation rec {
|
||||||
|
|
||||||
# On Linux, use patchelf to modify the executables so that they can
|
# On Linux, use patchelf to modify the executables so that they can
|
||||||
# find editline/gmp.
|
# find editline/gmp.
|
||||||
postFixup = stdenv.lib.optionalString stdenv.isLinux ''
|
postFixup = lib.optionalString stdenv.isLinux ''
|
||||||
for p in $(find "$out" -type f -executable); do
|
for p in $(find "$out" -type f -executable); do
|
||||||
if isELF "$p"; then
|
if isELF "$p"; then
|
||||||
echo "Patchelfing $p"
|
echo "Patchelfing $p"
|
||||||
patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
|
patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
'' + lib.optionalString stdenv.isDarwin ''
|
||||||
# not enough room in the object files for the full path to libiconv :(
|
# not enough room in the object files for the full path to libiconv :(
|
||||||
for exe in $(find "$out" -type f -executable); do
|
for exe in $(find "$out" -type f -executable); do
|
||||||
isScript $exe && continue
|
isScript $exe && continue
|
||||||
|
@ -171,6 +171,6 @@ stdenv.mkDerivation rec {
|
||||||
enableShared = true;
|
enableShared = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
meta.license = stdenv.lib.licenses.bsd3;
|
meta.license = lib.licenses.bsd3;
|
||||||
meta.platforms = ["x86_64-linux" "aarch64-linux" "i686-linux" "x86_64-darwin"];
|
meta.platforms = ["x86_64-linux" "aarch64-linux" "i686-linux" "x86_64-darwin"];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, pkgsBuildTarget, targetPackages
|
{ lib, stdenv, pkgsBuildTarget, targetPackages
|
||||||
|
|
||||||
# build-tools
|
# build-tools
|
||||||
, bootPkgs
|
, bootPkgs
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
||||||
# library instead of the faster but GPLed integer-gmp library.
|
# 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 ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
|
||||||
|
|
||||||
, # If enabled, use -fPIC when compiling static libs.
|
, # If enabled, use -fPIC when compiling static libs.
|
||||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
|
|
||||||
, # What flavour to build. An empty string indicates no
|
, # What flavour to build. An empty string indicates no
|
||||||
# specific flavour and falls back to ghc default values.
|
# specific flavour and falls back to ghc default values.
|
||||||
ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
||||||
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
||||||
|
|
||||||
, # Whether to disable the large address space allocator
|
, # Whether to disable the large address space allocator
|
||||||
|
@ -48,7 +48,7 @@ let
|
||||||
inherit (bootPkgs) ghc;
|
inherit (bootPkgs) ghc;
|
||||||
|
|
||||||
# TODO(@Ericson2314) Make unconditional
|
# TODO(@Ericson2314) Make unconditional
|
||||||
targetPrefix = stdenv.lib.optionalString
|
targetPrefix = lib.optionalString
|
||||||
(targetPlatform != hostPlatform)
|
(targetPlatform != hostPlatform)
|
||||||
"${targetPlatform.config}-";
|
"${targetPlatform.config}-";
|
||||||
|
|
||||||
|
@ -66,28 +66,28 @@ let
|
||||||
# to actually link to our new Libc. The iOS simulator is a special
|
# to actually link to our new Libc. The iOS simulator is a special
|
||||||
# exception because we can’t actually run simulators binaries
|
# exception because we can’t actually run simulators binaries
|
||||||
# ourselves.
|
# ourselves.
|
||||||
+ stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
|
+ lib.optionalString (targetPlatform != hostPlatform) ''
|
||||||
Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
|
Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
|
||||||
CrossCompilePrefix = ${targetPrefix}
|
CrossCompilePrefix = ${targetPrefix}
|
||||||
HADDOCK_DOCS = NO
|
HADDOCK_DOCS = NO
|
||||||
BUILD_SPHINX_HTML = NO
|
BUILD_SPHINX_HTML = NO
|
||||||
BUILD_SPHINX_PDF = NO
|
BUILD_SPHINX_PDF = NO
|
||||||
'' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
|
'' + lib.optionalString enableRelocatedStaticLibs ''
|
||||||
GhcLibHcOpts += -fPIC
|
GhcLibHcOpts += -fPIC
|
||||||
GhcRtsHcOpts += -fPIC
|
GhcRtsHcOpts += -fPIC
|
||||||
'' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||||
EXTRA_CC_OPTS += -std=gnu99
|
EXTRA_CC_OPTS += -std=gnu99
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Splicer will pull out correct variations
|
# Splicer will pull out correct variations
|
||||||
libDeps = platform: stdenv.lib.optional enableTerminfo ncurses
|
libDeps = platform: lib.optional enableTerminfo ncurses
|
||||||
++ [libffi]
|
++ [libffi]
|
||||||
++ stdenv.lib.optional (!enableIntegerSimple) gmp
|
++ lib.optional (!enableIntegerSimple) gmp
|
||||||
++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||||
|
|
||||||
toolsForTarget = [
|
toolsForTarget = [
|
||||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
pkgsBuildTarget.targetPackages.stdenv.cc
|
||||||
] ++ stdenv.lib.optional useLLVM buildLlvmPackages.llvm;
|
] ++ lib.optional useLLVM buildLlvmPackages.llvm;
|
||||||
|
|
||||||
targetCC = builtins.head toolsForTarget;
|
targetCC = builtins.head toolsForTarget;
|
||||||
|
|
||||||
|
@ -136,7 +136,7 @@ stdenv.mkDerivation (rec {
|
||||||
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
||||||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
||||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
||||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString useLdGold ".gold"}"
|
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
|
||||||
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
||||||
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
||||||
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
||||||
|
@ -146,13 +146,13 @@ stdenv.mkDerivation (rec {
|
||||||
|
|
||||||
echo -n "${buildMK}" > mk/build.mk
|
echo -n "${buildMK}" > mk/build.mk
|
||||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
||||||
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
|
'' + lib.optionalString (!stdenv.isDarwin) ''
|
||||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
||||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
'' + lib.optionalString stdenv.isDarwin ''
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||||
'' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||||
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
||||||
'' + stdenv.lib.optionalString targetPlatform.isMusl ''
|
'' + lib.optionalString targetPlatform.isMusl ''
|
||||||
echo "patching llvm-targets for musl targets..."
|
echo "patching llvm-targets for musl targets..."
|
||||||
echo "Cloning these existing '*-linux-gnu*' targets:"
|
echo "Cloning these existing '*-linux-gnu*' targets:"
|
||||||
grep linux-gnu llvm-targets | sed 's/^/ /'
|
grep linux-gnu llvm-targets | sed 's/^/ /'
|
||||||
|
@ -172,23 +172,23 @@ stdenv.mkDerivation (rec {
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
||||||
configurePlatforms = [ "build" "host" ]
|
configurePlatforms = [ "build" "host" ]
|
||||||
++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
|
++ lib.optional (targetPlatform != hostPlatform) "target";
|
||||||
# `--with` flags for libraries needed for RTS linker
|
# `--with` flags for libraries needed for RTS linker
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--datadir=$doc/share/doc/ghc"
|
"--datadir=$doc/share/doc/ghc"
|
||||||
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
"--with-curses-includes=${ncurses.dev}/include" "--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"
|
] ++ 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) [
|
] ++ 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) [
|
] ++ 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) [
|
] ++ lib.optionals (targetPlatform != hostPlatform) [
|
||||||
"--enable-bootstrap-with-devel-snapshot"
|
"--enable-bootstrap-with-devel-snapshot"
|
||||||
] ++ stdenv.lib.optionals useLdGold [
|
] ++ lib.optionals useLdGold [
|
||||||
"CFLAGS=-fuse-ld=gold"
|
"CFLAGS=-fuse-ld=gold"
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
||||||
] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
|
] ++ lib.optionals (disableLargeAddressSpace) [
|
||||||
"--disable-large-address-space"
|
"--disable-large-address-space"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -209,14 +209,14 @@ stdenv.mkDerivation (rec {
|
||||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
||||||
|
|
||||||
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
||||||
++ stdenv.lib.optional useLLVM llvmPackages.llvm;
|
++ lib.optional useLLVM llvmPackages.llvm;
|
||||||
|
|
||||||
depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform);
|
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
|
||||||
depsTargetTargetPropagated = map (stdenv.lib.getOutput "out") (libDeps targetPlatform);
|
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
|
||||||
|
|
||||||
# required, because otherwise all symbols from HSffi.o are stripped, and
|
# required, because otherwise all symbols from HSffi.o are stripped, and
|
||||||
# that in turn causes GHCi to abort
|
# that in turn causes GHCi to abort
|
||||||
stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
||||||
|
|
||||||
# See #63511 - the only unstripped file is the debug rts which isn't meant to
|
# See #63511 - the only unstripped file is the debug rts which isn't meant to
|
||||||
# be stripped.
|
# be stripped.
|
||||||
|
@ -224,7 +224,7 @@ stdenv.mkDerivation (rec {
|
||||||
|
|
||||||
checkTarget = "test";
|
checkTarget = "test";
|
||||||
|
|
||||||
hardeningDisable = [ "format" ] ++ stdenv.lib.optional stdenv.targetPlatform.isMusl "pie";
|
hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
# Install the bash completion file.
|
# Install the bash completion file.
|
||||||
|
@ -234,11 +234,11 @@ stdenv.mkDerivation (rec {
|
||||||
for i in "$out/bin/"*; do
|
for i in "$out/bin/"*; do
|
||||||
test ! -h $i || continue
|
test ! -h $i || continue
|
||||||
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
||||||
sed -i -e '2i export PATH="$PATH:${stdenv.lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
||||||
done
|
done
|
||||||
''
|
''
|
||||||
# Temporary work-around for https://github.com/NixOS/nixpkgs/issues/66277
|
# Temporary work-around for https://github.com/NixOS/nixpkgs/issues/66277
|
||||||
+ stdenv.lib.optionalString hostPlatform.isAarch64 ''
|
+ lib.optionalString hostPlatform.isAarch64 ''
|
||||||
rm -rf "$doc/share/doc/ghc/html/libraries"
|
rm -rf "$doc/share/doc/ghc/html/libraries"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -255,12 +255,12 @@ stdenv.mkDerivation (rec {
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://haskell.org/ghc";
|
homepage = "http://haskell.org/ghc";
|
||||||
description = "The Glasgow Haskell Compiler";
|
description = "The Glasgow Haskell Compiler";
|
||||||
maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ];
|
maintainers = with lib.maintainers; [ marcweber andres peti ];
|
||||||
timeout = 24 * 3600;
|
timeout = 24 * 3600;
|
||||||
inherit (ghc.meta) license platforms;
|
inherit (ghc.meta) license platforms;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
|
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
dontPatchELF = true;
|
dontPatchELF = true;
|
||||||
noAuditTmpdir = true;
|
noAuditTmpdir = true;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, pkgsBuildTarget, targetPackages
|
{ lib, stdenv, pkgsBuildTarget, targetPackages
|
||||||
|
|
||||||
# build-tools
|
# build-tools
|
||||||
, bootPkgs
|
, bootPkgs
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
||||||
# library instead of the faster but GPLed integer-gmp library.
|
# 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 ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
|
||||||
|
|
||||||
, # If enabled, use -fPIC when compiling static libs.
|
, # If enabled, use -fPIC when compiling static libs.
|
||||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
|
|
||||||
, # What flavour to build. An empty string indicates no
|
, # What flavour to build. An empty string indicates no
|
||||||
# specific flavour and falls back to ghc default values.
|
# specific flavour and falls back to ghc default values.
|
||||||
ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
||||||
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
||||||
|
|
||||||
, # Whether to disable the large address space allocator
|
, # Whether to disable the large address space allocator
|
||||||
|
@ -48,7 +48,7 @@ let
|
||||||
inherit (bootPkgs) ghc;
|
inherit (bootPkgs) ghc;
|
||||||
|
|
||||||
# TODO(@Ericson2314) Make unconditional
|
# TODO(@Ericson2314) Make unconditional
|
||||||
targetPrefix = stdenv.lib.optionalString
|
targetPrefix = lib.optionalString
|
||||||
(targetPlatform != hostPlatform)
|
(targetPlatform != hostPlatform)
|
||||||
"${targetPlatform.config}-";
|
"${targetPlatform.config}-";
|
||||||
|
|
||||||
|
@ -66,30 +66,30 @@ let
|
||||||
# to actually link to our new Libc. The iOS simulator is a special
|
# to actually link to our new Libc. The iOS simulator is a special
|
||||||
# exception because we can’t actually run simulators binaries
|
# exception because we can’t actually run simulators binaries
|
||||||
# ourselves.
|
# ourselves.
|
||||||
+ stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
|
+ lib.optionalString (targetPlatform != hostPlatform) ''
|
||||||
Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
|
Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
|
||||||
CrossCompilePrefix = ${targetPrefix}
|
CrossCompilePrefix = ${targetPrefix}
|
||||||
HADDOCK_DOCS = NO
|
HADDOCK_DOCS = NO
|
||||||
BUILD_SPHINX_HTML = NO
|
BUILD_SPHINX_HTML = NO
|
||||||
BUILD_SPHINX_PDF = NO
|
BUILD_SPHINX_PDF = NO
|
||||||
'' + stdenv.lib.optionalString dontStrip ''
|
'' + lib.optionalString dontStrip ''
|
||||||
STRIP_CMD = :
|
STRIP_CMD = :
|
||||||
'' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
|
'' + lib.optionalString enableRelocatedStaticLibs ''
|
||||||
GhcLibHcOpts += -fPIC
|
GhcLibHcOpts += -fPIC
|
||||||
GhcRtsHcOpts += -fPIC
|
GhcRtsHcOpts += -fPIC
|
||||||
'' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||||
EXTRA_CC_OPTS += -std=gnu99
|
EXTRA_CC_OPTS += -std=gnu99
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Splicer will pull out correct variations
|
# Splicer will pull out correct variations
|
||||||
libDeps = platform: stdenv.lib.optional enableTerminfo ncurses
|
libDeps = platform: lib.optional enableTerminfo ncurses
|
||||||
++ [libffi]
|
++ [libffi]
|
||||||
++ stdenv.lib.optional (!enableIntegerSimple) gmp
|
++ lib.optional (!enableIntegerSimple) gmp
|
||||||
++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||||
|
|
||||||
toolsForTarget = [
|
toolsForTarget = [
|
||||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
pkgsBuildTarget.targetPackages.stdenv.cc
|
||||||
] ++ stdenv.lib.optional useLLVM buildLlvmPackages.llvm;
|
] ++ lib.optional useLLVM buildLlvmPackages.llvm;
|
||||||
|
|
||||||
targetCC = builtins.head toolsForTarget;
|
targetCC = builtins.head toolsForTarget;
|
||||||
|
|
||||||
|
@ -123,7 +123,7 @@ stdenv.mkDerivation (rec {
|
||||||
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
||||||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
||||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
||||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString useLdGold ".gold"}"
|
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
|
||||||
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
||||||
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
||||||
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
||||||
|
@ -133,13 +133,13 @@ stdenv.mkDerivation (rec {
|
||||||
|
|
||||||
echo -n "${buildMK dontStrip}" > mk/build.mk
|
echo -n "${buildMK dontStrip}" > mk/build.mk
|
||||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
||||||
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
|
'' + lib.optionalString (!stdenv.isDarwin) ''
|
||||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
||||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
'' + lib.optionalString stdenv.isDarwin ''
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||||
'' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||||
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
||||||
'' + stdenv.lib.optionalString targetPlatform.isMusl ''
|
'' + lib.optionalString targetPlatform.isMusl ''
|
||||||
echo "patching llvm-targets for musl targets..."
|
echo "patching llvm-targets for musl targets..."
|
||||||
echo "Cloning these existing '*-linux-gnu*' targets:"
|
echo "Cloning these existing '*-linux-gnu*' targets:"
|
||||||
grep linux-gnu llvm-targets | sed 's/^/ /'
|
grep linux-gnu llvm-targets | sed 's/^/ /'
|
||||||
|
@ -159,29 +159,29 @@ stdenv.mkDerivation (rec {
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
||||||
configurePlatforms = [ "build" "host" ]
|
configurePlatforms = [ "build" "host" ]
|
||||||
++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
|
++ lib.optional (targetPlatform != hostPlatform) "target";
|
||||||
|
|
||||||
# `--with` flags for libraries needed for RTS linker
|
# `--with` flags for libraries needed for RTS linker
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--datadir=$doc/share/doc/ghc"
|
"--datadir=$doc/share/doc/ghc"
|
||||||
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
||||||
] ++ stdenv.lib.optionals (libffi != null) [
|
] ++ lib.optionals (libffi != null) [
|
||||||
"--with-system-libffi"
|
"--with-system-libffi"
|
||||||
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
||||||
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
||||||
] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
||||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
||||||
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
||||||
] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
||||||
"--with-iconv-includes=${libiconv}/include"
|
"--with-iconv-includes=${libiconv}/include"
|
||||||
"--with-iconv-libraries=${libiconv}/lib"
|
"--with-iconv-libraries=${libiconv}/lib"
|
||||||
] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
|
] ++ lib.optionals (targetPlatform != hostPlatform) [
|
||||||
"--enable-bootstrap-with-devel-snapshot"
|
"--enable-bootstrap-with-devel-snapshot"
|
||||||
] ++ stdenv.lib.optionals useLdGold [
|
] ++ lib.optionals useLdGold [
|
||||||
"CFLAGS=-fuse-ld=gold"
|
"CFLAGS=-fuse-ld=gold"
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
||||||
] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
|
] ++ lib.optionals (disableLargeAddressSpace) [
|
||||||
"--disable-large-address-space"
|
"--disable-large-address-space"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -202,18 +202,18 @@ stdenv.mkDerivation (rec {
|
||||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
||||||
|
|
||||||
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
||||||
++ stdenv.lib.optional useLLVM llvmPackages.llvm;
|
++ lib.optional useLLVM llvmPackages.llvm;
|
||||||
|
|
||||||
depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform);
|
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
|
||||||
depsTargetTargetPropagated = map (stdenv.lib.getOutput "out") (libDeps targetPlatform);
|
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
|
||||||
|
|
||||||
# required, because otherwise all symbols from HSffi.o are stripped, and
|
# required, because otherwise all symbols from HSffi.o are stripped, and
|
||||||
# that in turn causes GHCi to abort
|
# that in turn causes GHCi to abort
|
||||||
stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
||||||
|
|
||||||
checkTarget = "test";
|
checkTarget = "test";
|
||||||
|
|
||||||
hardeningDisable = [ "format" ] ++ stdenv.lib.optional stdenv.targetPlatform.isMusl "pie";
|
hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
# Install the bash completion file.
|
# Install the bash completion file.
|
||||||
|
@ -223,7 +223,7 @@ stdenv.mkDerivation (rec {
|
||||||
for i in "$out/bin/"*; do
|
for i in "$out/bin/"*; do
|
||||||
test ! -h $i || continue
|
test ! -h $i || continue
|
||||||
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
||||||
sed -i -e '2i export PATH="$PATH:${stdenv.lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -240,14 +240,14 @@ stdenv.mkDerivation (rec {
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://haskell.org/ghc";
|
homepage = "http://haskell.org/ghc";
|
||||||
description = "The Glasgow Haskell Compiler";
|
description = "The Glasgow Haskell Compiler";
|
||||||
maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ];
|
maintainers = with lib.maintainers; [ marcweber andres peti ];
|
||||||
timeout = 24 * 3600;
|
timeout = 24 * 3600;
|
||||||
inherit (ghc.meta) license platforms;
|
inherit (ghc.meta) license platforms;
|
||||||
};
|
};
|
||||||
|
|
||||||
dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
|
dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
|
||||||
|
|
||||||
} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
|
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
|
||||||
dontPatchELF = true;
|
dontPatchELF = true;
|
||||||
noAuditTmpdir = true;
|
noAuditTmpdir = true;
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, pkgsBuildTarget, targetPackages
|
{ lib, stdenv, pkgsBuildTarget, targetPackages
|
||||||
|
|
||||||
# build-tools
|
# build-tools
|
||||||
, bootPkgs
|
, bootPkgs
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
||||||
# library instead of the faster but GPLed integer-gmp library.
|
# 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 ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
|
||||||
|
|
||||||
, # If enabled, use -fPIC when compiling static libs.
|
, # If enabled, use -fPIC when compiling static libs.
|
||||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
, # What flavour to build. An empty string indicates no
|
, # What flavour to build. An empty string indicates no
|
||||||
# specific flavour and falls back to ghc default values.
|
# specific flavour and falls back to ghc default values.
|
||||||
ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
||||||
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
||||||
|
|
||||||
, # Whether to disable the large address space allocator
|
, # Whether to disable the large address space allocator
|
||||||
|
@ -51,7 +51,7 @@ let
|
||||||
inherit (bootPkgs) ghc;
|
inherit (bootPkgs) ghc;
|
||||||
|
|
||||||
# TODO(@Ericson2314) Make unconditional
|
# TODO(@Ericson2314) Make unconditional
|
||||||
targetPrefix = stdenv.lib.optionalString
|
targetPrefix = lib.optionalString
|
||||||
(targetPlatform != hostPlatform)
|
(targetPlatform != hostPlatform)
|
||||||
"${targetPlatform.config}-";
|
"${targetPlatform.config}-";
|
||||||
|
|
||||||
|
@ -69,32 +69,32 @@ let
|
||||||
# to actually link to our new Libc. The iOS simulator is a special
|
# to actually link to our new Libc. The iOS simulator is a special
|
||||||
# exception because we can’t actually run simulators binaries
|
# exception because we can’t actually run simulators binaries
|
||||||
# ourselves.
|
# ourselves.
|
||||||
+ stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
|
+ lib.optionalString (targetPlatform != hostPlatform) ''
|
||||||
Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
|
Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
|
||||||
CrossCompilePrefix = ${targetPrefix}
|
CrossCompilePrefix = ${targetPrefix}
|
||||||
HADDOCK_DOCS = NO
|
HADDOCK_DOCS = NO
|
||||||
BUILD_SPHINX_HTML = NO
|
BUILD_SPHINX_HTML = NO
|
||||||
BUILD_SPHINX_PDF = NO
|
BUILD_SPHINX_PDF = NO
|
||||||
'' + stdenv.lib.optionalString dontStrip ''
|
'' + lib.optionalString dontStrip ''
|
||||||
STRIP_CMD = :
|
STRIP_CMD = :
|
||||||
'' + stdenv.lib.optionalString (!enableProfiledLibs) ''
|
'' + lib.optionalString (!enableProfiledLibs) ''
|
||||||
GhcLibWays = "v dyn"
|
GhcLibWays = "v dyn"
|
||||||
'' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
|
'' + lib.optionalString enableRelocatedStaticLibs ''
|
||||||
GhcLibHcOpts += -fPIC
|
GhcLibHcOpts += -fPIC
|
||||||
GhcRtsHcOpts += -fPIC
|
GhcRtsHcOpts += -fPIC
|
||||||
'' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||||
EXTRA_CC_OPTS += -std=gnu99
|
EXTRA_CC_OPTS += -std=gnu99
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Splicer will pull out correct variations
|
# Splicer will pull out correct variations
|
||||||
libDeps = platform: stdenv.lib.optional enableTerminfo ncurses
|
libDeps = platform: lib.optional enableTerminfo ncurses
|
||||||
++ [libffi]
|
++ [libffi]
|
||||||
++ stdenv.lib.optional (!enableIntegerSimple) gmp
|
++ lib.optional (!enableIntegerSimple) gmp
|
||||||
++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||||
|
|
||||||
toolsForTarget = [
|
toolsForTarget = [
|
||||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
pkgsBuildTarget.targetPackages.stdenv.cc
|
||||||
] ++ stdenv.lib.optional useLLVM buildLlvmPackages.llvm;
|
] ++ lib.optional useLLVM buildLlvmPackages.llvm;
|
||||||
|
|
||||||
targetCC = builtins.head toolsForTarget;
|
targetCC = builtins.head toolsForTarget;
|
||||||
|
|
||||||
|
@ -128,7 +128,7 @@ stdenv.mkDerivation (rec {
|
||||||
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
||||||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
||||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
||||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString useLdGold ".gold"}"
|
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
|
||||||
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
||||||
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
||||||
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
||||||
|
@ -138,13 +138,13 @@ stdenv.mkDerivation (rec {
|
||||||
|
|
||||||
echo -n "${buildMK dontStrip}" > mk/build.mk
|
echo -n "${buildMK dontStrip}" > mk/build.mk
|
||||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
||||||
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
|
'' + lib.optionalString (!stdenv.isDarwin) ''
|
||||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
||||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
'' + lib.optionalString stdenv.isDarwin ''
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||||
'' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||||
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
||||||
'' + stdenv.lib.optionalString targetPlatform.isMusl ''
|
'' + lib.optionalString targetPlatform.isMusl ''
|
||||||
echo "patching llvm-targets for musl targets..."
|
echo "patching llvm-targets for musl targets..."
|
||||||
echo "Cloning these existing '*-linux-gnu*' targets:"
|
echo "Cloning these existing '*-linux-gnu*' targets:"
|
||||||
grep linux-gnu llvm-targets | sed 's/^/ /'
|
grep linux-gnu llvm-targets | sed 's/^/ /'
|
||||||
|
@ -164,29 +164,29 @@ stdenv.mkDerivation (rec {
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
||||||
configurePlatforms = [ "build" "host" ]
|
configurePlatforms = [ "build" "host" ]
|
||||||
++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
|
++ lib.optional (targetPlatform != hostPlatform) "target";
|
||||||
|
|
||||||
# `--with` flags for libraries needed for RTS linker
|
# `--with` flags for libraries needed for RTS linker
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--datadir=$doc/share/doc/ghc"
|
"--datadir=$doc/share/doc/ghc"
|
||||||
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
||||||
] ++ stdenv.lib.optionals (libffi != null) [
|
] ++ lib.optionals (libffi != null) [
|
||||||
"--with-system-libffi"
|
"--with-system-libffi"
|
||||||
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
||||||
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
||||||
] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
||||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
||||||
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
||||||
] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
||||||
"--with-iconv-includes=${libiconv}/include"
|
"--with-iconv-includes=${libiconv}/include"
|
||||||
"--with-iconv-libraries=${libiconv}/lib"
|
"--with-iconv-libraries=${libiconv}/lib"
|
||||||
] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
|
] ++ lib.optionals (targetPlatform != hostPlatform) [
|
||||||
"--enable-bootstrap-with-devel-snapshot"
|
"--enable-bootstrap-with-devel-snapshot"
|
||||||
] ++ stdenv.lib.optionals useLdGold [
|
] ++ lib.optionals useLdGold [
|
||||||
"CFLAGS=-fuse-ld=gold"
|
"CFLAGS=-fuse-ld=gold"
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
||||||
] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
|
] ++ lib.optionals (disableLargeAddressSpace) [
|
||||||
"--disable-large-address-space"
|
"--disable-large-address-space"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -207,18 +207,18 @@ stdenv.mkDerivation (rec {
|
||||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
||||||
|
|
||||||
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
||||||
++ stdenv.lib.optional useLLVM llvmPackages.llvm;
|
++ lib.optional useLLVM llvmPackages.llvm;
|
||||||
|
|
||||||
depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform);
|
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
|
||||||
depsTargetTargetPropagated = map (stdenv.lib.getOutput "out") (libDeps targetPlatform);
|
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
|
||||||
|
|
||||||
# required, because otherwise all symbols from HSffi.o are stripped, and
|
# required, because otherwise all symbols from HSffi.o are stripped, and
|
||||||
# that in turn causes GHCi to abort
|
# that in turn causes GHCi to abort
|
||||||
stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
||||||
|
|
||||||
checkTarget = "test";
|
checkTarget = "test";
|
||||||
|
|
||||||
hardeningDisable = [ "format" ] ++ stdenv.lib.optional stdenv.targetPlatform.isMusl "pie";
|
hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
# Install the bash completion file.
|
# Install the bash completion file.
|
||||||
|
@ -228,7 +228,7 @@ stdenv.mkDerivation (rec {
|
||||||
for i in "$out/bin/"*; do
|
for i in "$out/bin/"*; do
|
||||||
test ! -h $i || continue
|
test ! -h $i || continue
|
||||||
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
||||||
sed -i -e '2i export PATH="$PATH:${stdenv.lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -245,14 +245,14 @@ stdenv.mkDerivation (rec {
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://haskell.org/ghc";
|
homepage = "http://haskell.org/ghc";
|
||||||
description = "The Glasgow Haskell Compiler";
|
description = "The Glasgow Haskell Compiler";
|
||||||
maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ];
|
maintainers = with lib.maintainers; [ marcweber andres peti ];
|
||||||
timeout = 24 * 3600;
|
timeout = 24 * 3600;
|
||||||
inherit (ghc.meta) license platforms;
|
inherit (ghc.meta) license platforms;
|
||||||
};
|
};
|
||||||
|
|
||||||
dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
|
dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
|
||||||
|
|
||||||
} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
|
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
|
||||||
dontPatchELF = true;
|
dontPatchELF = true;
|
||||||
noAuditTmpdir = true;
|
noAuditTmpdir = true;
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
{ stdenv, pkgsBuildTarget, targetPackages
|
{ lib, stdenv, pkgsBuildTarget, targetPackages
|
||||||
|
|
||||||
# build-tools
|
# build-tools
|
||||||
, bootPkgs
|
, bootPkgs
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
, # If enabled, GHC will be built with the GPL-free but slower integer-simple
|
||||||
# library instead of the faster but GPLed integer-gmp library.
|
# 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 ? !(lib.any (lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
|
||||||
|
|
||||||
, # If enabled, use -fPIC when compiling static libs.
|
, # If enabled, use -fPIC when compiling static libs.
|
||||||
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
|
||||||
|
@ -35,7 +35,7 @@
|
||||||
|
|
||||||
, # What flavour to build. An empty string indicates no
|
, # What flavour to build. An empty string indicates no
|
||||||
# specific flavour and falls back to ghc default values.
|
# specific flavour and falls back to ghc default values.
|
||||||
ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
ghcFlavour ? lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
|
||||||
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
(if useLLVM then "perf-cross" else "perf-cross-ncg")
|
||||||
|
|
||||||
, # Whether to disable the large address space allocator
|
, # Whether to disable the large address space allocator
|
||||||
|
@ -51,7 +51,7 @@ let
|
||||||
inherit (bootPkgs) ghc;
|
inherit (bootPkgs) ghc;
|
||||||
|
|
||||||
# TODO(@Ericson2314) Make unconditional
|
# TODO(@Ericson2314) Make unconditional
|
||||||
targetPrefix = stdenv.lib.optionalString
|
targetPrefix = lib.optionalString
|
||||||
(targetPlatform != hostPlatform)
|
(targetPlatform != hostPlatform)
|
||||||
"${targetPlatform.config}-";
|
"${targetPlatform.config}-";
|
||||||
|
|
||||||
|
@ -69,32 +69,32 @@ let
|
||||||
# to actually link to our new Libc. The iOS simulator is a special
|
# to actually link to our new Libc. The iOS simulator is a special
|
||||||
# exception because we can’t actually run simulators binaries
|
# exception because we can’t actually run simulators binaries
|
||||||
# ourselves.
|
# ourselves.
|
||||||
+ stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
|
+ lib.optionalString (targetPlatform != hostPlatform) ''
|
||||||
Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
|
Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
|
||||||
CrossCompilePrefix = ${targetPrefix}
|
CrossCompilePrefix = ${targetPrefix}
|
||||||
HADDOCK_DOCS = NO
|
HADDOCK_DOCS = NO
|
||||||
BUILD_SPHINX_HTML = NO
|
BUILD_SPHINX_HTML = NO
|
||||||
BUILD_SPHINX_PDF = NO
|
BUILD_SPHINX_PDF = NO
|
||||||
'' + stdenv.lib.optionalString dontStrip ''
|
'' + lib.optionalString dontStrip ''
|
||||||
STRIP_CMD = :
|
STRIP_CMD = :
|
||||||
'' + stdenv.lib.optionalString (!enableProfiledLibs) ''
|
'' + lib.optionalString (!enableProfiledLibs) ''
|
||||||
GhcLibWays = "v dyn"
|
GhcLibWays = "v dyn"
|
||||||
'' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
|
'' + lib.optionalString enableRelocatedStaticLibs ''
|
||||||
GhcLibHcOpts += -fPIC
|
GhcLibHcOpts += -fPIC
|
||||||
GhcRtsHcOpts += -fPIC
|
GhcRtsHcOpts += -fPIC
|
||||||
'' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||||
EXTRA_CC_OPTS += -std=gnu99
|
EXTRA_CC_OPTS += -std=gnu99
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Splicer will pull out correct variations
|
# Splicer will pull out correct variations
|
||||||
libDeps = platform: stdenv.lib.optional enableTerminfo ncurses
|
libDeps = platform: lib.optional enableTerminfo ncurses
|
||||||
++ [libffi]
|
++ [libffi]
|
||||||
++ stdenv.lib.optional (!enableIntegerSimple) gmp
|
++ lib.optional (!enableIntegerSimple) gmp
|
||||||
++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
++ lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
|
||||||
|
|
||||||
toolsForTarget = [
|
toolsForTarget = [
|
||||||
pkgsBuildTarget.targetPackages.stdenv.cc
|
pkgsBuildTarget.targetPackages.stdenv.cc
|
||||||
] ++ stdenv.lib.optional useLLVM buildLlvmPackages.llvm;
|
] ++ lib.optional useLLVM buildLlvmPackages.llvm;
|
||||||
|
|
||||||
targetCC = builtins.head toolsForTarget;
|
targetCC = builtins.head toolsForTarget;
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ stdenv.mkDerivation (rec {
|
||||||
postPatch = "patchShebangs .";
|
postPatch = "patchShebangs .";
|
||||||
|
|
||||||
# GHC is a bit confused on its cross terminology.
|
# GHC is a bit confused on its cross terminology.
|
||||||
preConfigure = stdenv.lib.optionalString stdenv.isAarch64 ''
|
preConfigure = lib.optionalString stdenv.isAarch64 ''
|
||||||
# Aarch64 allow backward bootstrapping since earlier versions are unstable.
|
# Aarch64 allow backward bootstrapping since earlier versions are unstable.
|
||||||
find . -name \*\.cabal\* -exec sed -i -e 's/\(base.*\)4.14/\14.16/' {} \; \
|
find . -name \*\.cabal\* -exec sed -i -e 's/\(base.*\)4.14/\14.16/' {} \; \
|
||||||
-exec sed -i -e 's/\(prim.*\)0.6/\10.8/' {} \;
|
-exec sed -i -e 's/\(prim.*\)0.6/\10.8/' {} \;
|
||||||
|
@ -132,7 +132,7 @@ stdenv.mkDerivation (rec {
|
||||||
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
|
||||||
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
|
||||||
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
# Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
|
||||||
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString useLdGold ".gold"}"
|
export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${lib.optionalString useLdGold ".gold"}"
|
||||||
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
|
||||||
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
|
||||||
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
|
||||||
|
@ -142,13 +142,13 @@ stdenv.mkDerivation (rec {
|
||||||
|
|
||||||
echo -n "${buildMK dontStrip}" > mk/build.mk
|
echo -n "${buildMK dontStrip}" > mk/build.mk
|
||||||
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
|
||||||
'' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
|
'' + lib.optionalString (!stdenv.isDarwin) ''
|
||||||
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
|
||||||
'' + stdenv.lib.optionalString stdenv.isDarwin ''
|
'' + lib.optionalString stdenv.isDarwin ''
|
||||||
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
export NIX_LDFLAGS+=" -no_dtrace_dof"
|
||||||
'' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
'' + lib.optionalString targetPlatform.useAndroidPrebuilt ''
|
||||||
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
|
||||||
'' + stdenv.lib.optionalString targetPlatform.isMusl ''
|
'' + lib.optionalString targetPlatform.isMusl ''
|
||||||
echo "patching llvm-targets for musl targets..."
|
echo "patching llvm-targets for musl targets..."
|
||||||
echo "Cloning these existing '*-linux-gnu*' targets:"
|
echo "Cloning these existing '*-linux-gnu*' targets:"
|
||||||
grep linux-gnu llvm-targets | sed 's/^/ /'
|
grep linux-gnu llvm-targets | sed 's/^/ /'
|
||||||
|
@ -168,29 +168,29 @@ stdenv.mkDerivation (rec {
|
||||||
|
|
||||||
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
# TODO(@Ericson2314): Always pass "--target" and always prefix.
|
||||||
configurePlatforms = [ "build" "host" ]
|
configurePlatforms = [ "build" "host" ]
|
||||||
++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
|
++ lib.optional (targetPlatform != hostPlatform) "target";
|
||||||
|
|
||||||
# `--with` flags for libraries needed for RTS linker
|
# `--with` flags for libraries needed for RTS linker
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--datadir=$doc/share/doc/ghc"
|
"--datadir=$doc/share/doc/ghc"
|
||||||
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
"--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
|
||||||
] ++ stdenv.lib.optionals (libffi != null) [
|
] ++ lib.optionals (libffi != null) [
|
||||||
"--with-system-libffi"
|
"--with-system-libffi"
|
||||||
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
"--with-ffi-includes=${targetPackages.libffi.dev}/include"
|
||||||
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
"--with-ffi-libraries=${targetPackages.libffi.out}/lib"
|
||||||
] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
] ++ lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
|
||||||
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
"--with-gmp-includes=${targetPackages.gmp.dev}/include"
|
||||||
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
"--with-gmp-libraries=${targetPackages.gmp.out}/lib"
|
||||||
] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
] ++ lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
|
||||||
"--with-iconv-includes=${libiconv}/include"
|
"--with-iconv-includes=${libiconv}/include"
|
||||||
"--with-iconv-libraries=${libiconv}/lib"
|
"--with-iconv-libraries=${libiconv}/lib"
|
||||||
] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
|
] ++ lib.optionals (targetPlatform != hostPlatform) [
|
||||||
"--enable-bootstrap-with-devel-snapshot"
|
"--enable-bootstrap-with-devel-snapshot"
|
||||||
] ++ stdenv.lib.optionals useLdGold [
|
] ++ lib.optionals useLdGold [
|
||||||
"CFLAGS=-fuse-ld=gold"
|
"CFLAGS=-fuse-ld=gold"
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
"CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
|
||||||
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
"CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
|
||||||
] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
|
] ++ lib.optionals (disableLargeAddressSpace) [
|
||||||
"--disable-large-address-space"
|
"--disable-large-address-space"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -211,18 +211,18 @@ stdenv.mkDerivation (rec {
|
||||||
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
|
||||||
|
|
||||||
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
propagatedBuildInputs = [ targetPackages.stdenv.cc ]
|
||||||
++ stdenv.lib.optional useLLVM llvmPackages.llvm;
|
++ lib.optional useLLVM llvmPackages.llvm;
|
||||||
|
|
||||||
depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform);
|
depsTargetTarget = map lib.getDev (libDeps targetPlatform);
|
||||||
depsTargetTargetPropagated = map (stdenv.lib.getOutput "out") (libDeps targetPlatform);
|
depsTargetTargetPropagated = map (lib.getOutput "out") (libDeps targetPlatform);
|
||||||
|
|
||||||
# required, because otherwise all symbols from HSffi.o are stripped, and
|
# required, because otherwise all symbols from HSffi.o are stripped, and
|
||||||
# that in turn causes GHCi to abort
|
# that in turn causes GHCi to abort
|
||||||
stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
stripDebugFlags = [ "-S" ] ++ lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
|
||||||
|
|
||||||
checkTarget = "test";
|
checkTarget = "test";
|
||||||
|
|
||||||
hardeningDisable = [ "format" ] ++ stdenv.lib.optional stdenv.targetPlatform.isMusl "pie";
|
hardeningDisable = [ "format" ] ++ lib.optional stdenv.targetPlatform.isMusl "pie";
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
# Install the bash completion file.
|
# Install the bash completion file.
|
||||||
|
@ -232,7 +232,7 @@ stdenv.mkDerivation (rec {
|
||||||
for i in "$out/bin/"*; do
|
for i in "$out/bin/"*; do
|
||||||
test ! -h $i || continue
|
test ! -h $i || continue
|
||||||
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
egrep --quiet '^#!' <(head -n 1 $i) || continue
|
||||||
sed -i -e '2i export PATH="$PATH:${stdenv.lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
sed -i -e '2i export PATH="$PATH:${lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -249,14 +249,14 @@ stdenv.mkDerivation (rec {
|
||||||
meta = {
|
meta = {
|
||||||
homepage = "http://haskell.org/ghc";
|
homepage = "http://haskell.org/ghc";
|
||||||
description = "The Glasgow Haskell Compiler";
|
description = "The Glasgow Haskell Compiler";
|
||||||
maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ];
|
maintainers = with lib.maintainers; [ marcweber andres peti ];
|
||||||
timeout = 24 * 3600;
|
timeout = 24 * 3600;
|
||||||
inherit (ghc.meta) license platforms;
|
inherit (ghc.meta) license platforms;
|
||||||
};
|
};
|
||||||
|
|
||||||
dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
|
dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
|
||||||
|
|
||||||
} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
|
} // lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
|
||||||
dontPatchELF = true;
|
dontPatchELF = true;
|
||||||
noAuditTmpdir = true;
|
noAuditTmpdir = true;
|
||||||
})
|
})
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue