mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-12-24 20:02:58 +03:00
Merge branch 'master' into staging
This commit is contained in:
commit
ae6df000d0
@ -35,7 +35,7 @@ foreach my $vlan (split / /, $ENV{VLANS} || "") {
|
||||
if ($pid == 0) {
|
||||
dup2(fileno($pty->slave), 0);
|
||||
dup2(fileno($stdoutW), 1);
|
||||
exec "vde_switch -s $socket" or _exit(1);
|
||||
exec "vde_switch -s $socket --dirmode 0700" or _exit(1);
|
||||
}
|
||||
close $stdoutW;
|
||||
print $pty "version\n";
|
||||
|
@ -12,8 +12,8 @@ let
|
||||
else throw "ImageMagick is not supported on this platform.";
|
||||
|
||||
cfg = {
|
||||
version = "6.9.8-6";
|
||||
sha256 = "1sxg2wx3nrzbymh5wcqiv1x401nrz95xkrqgk3x446vx8lq7ln6w";
|
||||
version = "6.9.8-9";
|
||||
sha256 = "0wr6wcmvaw62f6pkgnpqnjmp331wfwmds9wmqzr4zv53s9k1lkzn";
|
||||
patches = [];
|
||||
}
|
||||
# Freeze version on mingw so we don't need to port the patch too often.
|
||||
|
@ -5,13 +5,13 @@ with stdenv.lib;
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "synergy-${version}";
|
||||
version = "1.7.6";
|
||||
version = "1.8.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "symless";
|
||||
repo = "synergy";
|
||||
rev = "v${version}-stable";
|
||||
sha256 = "1bjksvdr74mc3xh11z4fd6qlhgklny51q5r6gqg1bhnvn9dzyrxw";
|
||||
sha256 = "0ksgr9hkf09h54572p7k7b9zkfhcdb2g2d5x7ixxn028y8i3jyp3";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@ -56,5 +56,6 @@ stdenv.mkDerivation rec {
|
||||
license = licenses.gpl2;
|
||||
maintainers = [ maintainers.aszlig ];
|
||||
platforms = platforms.all;
|
||||
broken = stdenv.isDarwin;
|
||||
};
|
||||
}
|
||||
|
@ -49,6 +49,9 @@ stdenv.mkDerivation rec {
|
||||
for bin in $out/bin/*; do
|
||||
wrapProgram $bin --set XAPPLRESDIR $out/lib/X11/app-defaults/
|
||||
done
|
||||
|
||||
install -D -t $out/share/applications xterm.desktop
|
||||
install -D -t $out/share/icons/hicolor/48x48/apps icons/xterm-color_48x48.xpm
|
||||
'';
|
||||
|
||||
meta = {
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, pkgconfig, ncurses, glib, openssl, perl, libintlOrEmpty }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.0.2";
|
||||
version = "1.0.3";
|
||||
name = "irssi-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/irssi/irssi/releases/download/${version}/${name}.tar.gz";
|
||||
sha256 = "1fas6dqz6g8m2400spvkhfxihj3w06qb917h4vhcb716g9wpjkwf";
|
||||
sha256 = "08nfm1pcf2b9npnp83175yi2vcwnhjdiwsq8whz7iky33hlhvijk";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkgconfig ];
|
||||
|
@ -920,7 +920,7 @@ DEPENDENCIES
|
||||
mysql2 (~> 0.3.16)
|
||||
net-ssh (~> 3.0.1)
|
||||
newrelic_rpm (~> 3.16)
|
||||
nokogiri (~> 1.6.7, >= 1.6.7.2)
|
||||
nokogiri (< 1.6.8, ~> 1.6.7, >= 1.6.7.2)
|
||||
oauth2 (~> 1.2.0)
|
||||
octokit (~> 4.6.2)
|
||||
oj (~> 2.17.4)
|
||||
|
@ -141,9 +141,11 @@ rec {
|
||||
http://bitlbee.intergenia.de/
|
||||
];
|
||||
|
||||
# ImageMagick mirrors, see http://www.imagemagick.org/script/download.php.
|
||||
# ImageMagick mirrors, see https://www.imagemagick.org/script/mirror.php
|
||||
imagemagick = [
|
||||
http://www.imagemagick.org/download/
|
||||
https://www.imagemagick.org/download/
|
||||
https://mirror.checkdomain.de/imagemagick/
|
||||
https://ftp.nluug.nl/ImageMagick/
|
||||
ftp://ftp.sunet.se/pub/multimedia/graphics/ImageMagick/ # also contains older versions removed from most mirrors
|
||||
http://ftp.sunet.se/pub/multimedia/graphics/ImageMagick/
|
||||
ftp://ftp.imagemagick.org/pub/ImageMagick/
|
||||
|
@ -185,7 +185,7 @@ let
|
||||
MONITOR_SOCKET="$(pwd)/monitor"
|
||||
WINVM_PIDFILE="$(pwd)/winvm.pid"
|
||||
CTRLVM_PIDFILE="$(pwd)/ctrlvm.pid"
|
||||
${vde2}/bin/vde_switch -s "$QEMU_VDE_SOCKET" &
|
||||
${vde2}/bin/vde_switch -s "$QEMU_VDE_SOCKET" --dirmode 0700 &
|
||||
echo 'alive?' | ${socat}/bin/socat - \
|
||||
UNIX-CONNECT:$QEMU_VDE_SOCKET/ctl,retry=20
|
||||
'';
|
||||
|
@ -19,7 +19,6 @@
|
||||
, gnatboot ? null
|
||||
, enableMultilib ? false
|
||||
, name ? "gcc"
|
||||
, cross ? null
|
||||
, libcCross ? null
|
||||
, crossStageStatic ? true
|
||||
, gnat ? null
|
||||
@ -65,22 +64,22 @@ let version = "4.5.4";
|
||||
javaAwtGtk = langJava && gtk2 != null;
|
||||
|
||||
/* Cross-gcc settings */
|
||||
gccArch = stdenv.lib.attrByPath [ "gcc" "arch" ] null cross;
|
||||
gccCpu = stdenv.lib.attrByPath [ "gcc" "cpu" ] null cross;
|
||||
gccAbi = stdenv.lib.attrByPath [ "gcc" "abi" ] null cross;
|
||||
gccArch = stdenv.lib.attrByPath [ "gcc" "arch" ] null targetPlatform;
|
||||
gccCpu = stdenv.lib.attrByPath [ "gcc" "cpu" ] null targetPlatformt;
|
||||
gccAbi = stdenv.lib.attrByPath [ "gcc" "abi" ] null targetPlatform;
|
||||
withArch = if gccArch != null then " --with-arch=${gccArch}" else "";
|
||||
withCpu = if gccCpu != null then " --with-cpu=${gccCpu}" else "";
|
||||
withAbi = if gccAbi != null then " --with-abi=${gccAbi}" else "";
|
||||
crossMingw = (cross != null && cross.libc == "msvcrt");
|
||||
crossMingw = (targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt");
|
||||
|
||||
crossConfigureFlags =
|
||||
"--target=${cross.config}" +
|
||||
"--target=${targetPlatform.config}" +
|
||||
withArch +
|
||||
withCpu +
|
||||
withAbi +
|
||||
# Ensure that -print-prog-name is able to find the correct programs.
|
||||
" --with-as=${binutils}/bin/${cross.config}-as" +
|
||||
" --with-ld=${binutils}/bin/${cross.config}-ld" +
|
||||
" --with-as=${binutils}/bin/${targetPlatform.config}-as" +
|
||||
" --with-ld=${binutils}/bin/${targetPlatform.config}-ld" +
|
||||
(if crossMingw && crossStageStatic then
|
||||
" --with-headers=${libcCross}/include" +
|
||||
" --with-gcc" +
|
||||
@ -120,7 +119,7 @@ let version = "4.5.4";
|
||||
);
|
||||
stageNameAddon = if crossStageStatic then "-stage-static" else
|
||||
"-stage-final";
|
||||
crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
|
||||
crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else "";
|
||||
|
||||
in
|
||||
|
||||
@ -139,7 +138,7 @@ stdenv.mkDerivation ({
|
||||
|
||||
hardeningDisable = [ "format" ] ++ optional (name != "gnat") "all";
|
||||
|
||||
outputs = if (stdenv.is64bit && langAda) then [ "out" "doc" ]
|
||||
outputs = if (hostPlatform.is64bit && langAda) then [ "out" "doc" ]
|
||||
else [ "out" "lib" "doc" ];
|
||||
setOutputFlags = false;
|
||||
NIX_NO_SELF_RPATH = true;
|
||||
@ -148,7 +147,7 @@ stdenv.mkDerivation ({
|
||||
|
||||
patches =
|
||||
[ ]
|
||||
++ optional (cross != null) ../libstdc++-target.patch
|
||||
++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
|
||||
++ optional noSysDirs ./no-sys-dirs.patch
|
||||
# The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
|
||||
# target libraries and tools.
|
||||
@ -161,7 +160,7 @@ stdenv.mkDerivation ({
|
||||
|| (libcCross != null # e.g., building `gcc.crossDrv'
|
||||
&& libcCross ? crossConfig
|
||||
&& libcCross.crossConfig == "i586-pc-gnu")
|
||||
|| (cross != null && cross.config == "i586-pc-gnu"
|
||||
|| (targetPlatform != hostPlatform && targetPlatform.config == "i586-pc-gnu"
|
||||
&& libcCross != null))
|
||||
then
|
||||
# On GNU/Hurd glibc refers to Hurd & Mach headers and libpthread is not
|
||||
@ -197,7 +196,7 @@ stdenv.mkDerivation ({
|
||||
sed -i gcc/config/t-gnu \
|
||||
-es'|NATIVE_SYSTEM_HEADER_DIR.*$|NATIVE_SYSTEM_HEADER_DIR = ${libc.dev}/include|g'
|
||||
''
|
||||
else if cross != null || stdenv.cc.libc != null then
|
||||
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
||||
# On NixOS, use the right path to the dynamic linker instead of
|
||||
# `/lib/ld*.so'.
|
||||
let
|
||||
@ -227,7 +226,7 @@ stdenv.mkDerivation ({
|
||||
++ (optional langJava boehmgc)
|
||||
++ (optionals langJava [zip unzip])
|
||||
++ (optionals javaAwtGtk ([gtk2 pkgconfig libart_lgpl] ++ xlibs))
|
||||
++ (optionals (cross != null) [binutils])
|
||||
++ (optionals (targetPlatform != hostPlatform) [binutils])
|
||||
++ (optionals langAda [gnatboot])
|
||||
++ (optionals langVhdl [gnat])
|
||||
;
|
||||
@ -265,13 +264,13 @@ stdenv.mkDerivation ({
|
||||
)
|
||||
}
|
||||
${ # Trick that should be taken out once we have a mips64el-linux not loongson2f
|
||||
if cross == null && stdenv.system == "mips64el-linux" then "--with-arch=loongson2f" else ""}
|
||||
if targetPlatform == hostPlatform && stdenv.system == "mips64el-linux" then "--with-arch=loongson2f" else ""}
|
||||
${if langAda then " --enable-libada" else ""}
|
||||
${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
|
||||
${if cross != null then crossConfigureFlags else ""}
|
||||
${if targetPlatform == hostPlatform && targetPlatform.isi686 then "--with-arch=i686" else ""}
|
||||
${if targetPlatform != hostPlatform then crossConfigureFlags else ""}
|
||||
";
|
||||
|
||||
targetConfig = if cross != null then cross.config else null;
|
||||
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
|
||||
|
||||
crossAttrs = {
|
||||
AR = "${targetPlatform.config}-ar";
|
||||
@ -284,7 +283,7 @@ stdenv.mkDerivation ({
|
||||
NM_FOR_TARGET = "${targetPlatform.config}-nm";
|
||||
CXX_FOR_TARGET = "${targetPlatform.config}-g++";
|
||||
# If we are making a cross compiler, cross != null
|
||||
NIX_CC_CROSS = if cross == null then "${stdenv.ccCross}" else "";
|
||||
NIX_CC_CROSS = if targetPlatform == hostPlatform then "${stdenv.ccCross}" else "";
|
||||
dontStrip = true;
|
||||
configureFlags = ''
|
||||
${if enableMultilib then "" else "--disable-multilib"}
|
||||
@ -312,8 +311,8 @@ stdenv.mkDerivation ({
|
||||
)
|
||||
}
|
||||
${if langAda then " --enable-libada" else ""}
|
||||
${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
|
||||
${if cross != null then crossConfigureFlags else ""}
|
||||
${if targetplatform == hostPlatform && targetPlatform.isi686 then "--with-arch=i686" else ""}
|
||||
${if targetPlatform != hostPlatform then crossConfigureFlags else ""}
|
||||
--target=${targetPlatform.config}
|
||||
'';
|
||||
};
|
||||
@ -357,7 +356,7 @@ stdenv.mkDerivation ({
|
||||
++ optional (libpthread != null) libpthread);
|
||||
|
||||
EXTRA_TARGET_CFLAGS =
|
||||
if cross != null && libcCross != null then [
|
||||
if targetPlatform != hostPlatform && libcCross != null then [
|
||||
"-idirafter ${libcCross.dev}/include"
|
||||
]
|
||||
++ optionals (! crossStageStatic) [
|
||||
@ -366,7 +365,7 @@ stdenv.mkDerivation ({
|
||||
else null;
|
||||
|
||||
EXTRA_TARGET_LDFLAGS =
|
||||
if cross != null && libcCross != null then [
|
||||
if targetPlatform != hostPlatform && libcCross != null then [
|
||||
"-Wl,-L${libcCross.out}/lib"
|
||||
]
|
||||
++ (if crossStageStatic then [
|
||||
@ -412,14 +411,14 @@ stdenv.mkDerivation ({
|
||||
};
|
||||
}
|
||||
|
||||
// optionalAttrs (cross != null || libcCross != null) {
|
||||
// optionalAttrs (targetPlatform != hostPlatform || libcCross != null) {
|
||||
# `builder.sh' sets $CPP, which leads configure to use "gcc -E" instead of,
|
||||
# say, "i586-pc-gnu-gcc -E" when building `gcc.crossDrv'.
|
||||
# FIXME: Fix `builder.sh' directly in the next stdenv-update.
|
||||
postUnpack = "unset CPP";
|
||||
}
|
||||
|
||||
// optionalAttrs (cross != null && cross.libc == "msvcrt" && crossStageStatic) {
|
||||
// optionalAttrs (targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt" && crossStageStatic) {
|
||||
makeFlags = [ "all-gcc" "all-target-libgcc" ];
|
||||
installTargets = "install-gcc install-target-libgcc";
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchurl, noSysDirs
|
||||
, langC ? true, langCC ? true, langFortran ? false
|
||||
, langObjC ? stdenv.isDarwin
|
||||
, langObjCpp ? stdenv.isDarwin
|
||||
, langObjC ? targetPlatform.isDarwin
|
||||
, langObjCpp ? targetPlatform.isDarwin
|
||||
, langJava ? false
|
||||
, langAda ? false
|
||||
, langVhdl ? false
|
||||
@ -25,7 +25,6 @@
|
||||
, enableMultilib ? false
|
||||
, enablePlugin ? true # whether to support user-supplied plug-ins
|
||||
, name ? "gcc"
|
||||
, cross ? null
|
||||
, libcCross ? null
|
||||
, crossStageStatic ? true
|
||||
, gnat ? null
|
||||
@ -49,7 +48,7 @@ assert cloog != null -> isl != null;
|
||||
assert libelf != null -> zlib != null;
|
||||
|
||||
# Make sure we get GNU sed.
|
||||
assert stdenv.isDarwin -> gnused != null;
|
||||
assert hostPlatform.isDarwin -> gnused != null;
|
||||
|
||||
# The go frontend is written in c++
|
||||
assert langGo -> langCC;
|
||||
@ -60,19 +59,19 @@ with builtins;
|
||||
let version = "4.8.5";
|
||||
|
||||
# Whether building a cross-compiler for GNU/Hurd.
|
||||
crossGNU = cross != null && cross.config == "i586-pc-gnu";
|
||||
crossGNU = targetPlatform != hostPlatform && targetPlatform.config == "i586-pc-gnu";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches = [ ]
|
||||
++ optional enableParallelBuilding ../parallel-bconfig.patch
|
||||
++ optional (cross != null) ../libstdc++-target.patch
|
||||
++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
|
||||
++ optional noSysDirs ../no-sys-dirs.patch
|
||||
# The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
|
||||
# target libraries and tools.
|
||||
++ optional langAda ../gnat-cflags.patch
|
||||
++ optional langFortran ../gfortran-driving.patch
|
||||
++ optional stdenv.isDarwin ../gfortran-darwin-NXConstStr.patch;
|
||||
++ optional hostPlatform.isDarwin ../gfortran-darwin-NXConstStr.patch;
|
||||
|
||||
javaEcj = fetchurl {
|
||||
# The `$(top_srcdir)/ecj.jar' file is automatically picked up at
|
||||
@ -120,8 +119,8 @@ let version = "4.8.5";
|
||||
withMode;
|
||||
|
||||
/* Cross-gcc settings */
|
||||
crossMingw = cross != null && cross.libc == "msvcrt";
|
||||
crossDarwin = cross != null && cross.libc == "libSystem";
|
||||
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
|
||||
crossDarwin = targetPlatform != hostPlatform && targetPlatform.libc == "libSystem";
|
||||
crossConfigureFlags = let
|
||||
gccArch = targetPlatform.gcc.arch or null;
|
||||
gccCpu = targetPlatform.gcc.cpu or null;
|
||||
@ -136,7 +135,7 @@ let version = "4.8.5";
|
||||
withFloat = if gccFloat != null then " --with-float=${gccFloat}" else "";
|
||||
withMode = if gccMode != null then " --with-mode=${gccMode}" else "";
|
||||
in
|
||||
"--target=${cross.config}" +
|
||||
"--target=${targetPlatform.config}" +
|
||||
withArch +
|
||||
withCpu +
|
||||
withAbi +
|
||||
@ -144,8 +143,8 @@ let version = "4.8.5";
|
||||
withFloat +
|
||||
withMode +
|
||||
# Ensure that -print-prog-name is able to find the correct programs.
|
||||
" --with-as=${binutils}/bin/${cross.config}-as" +
|
||||
" --with-ld=${binutils}/bin/${cross.config}-ld" +
|
||||
" --with-as=${binutils}/bin/${targetPlatform.config}-as" +
|
||||
" --with-ld=${binutils}/bin/${targetPlatform.config}-ld" +
|
||||
(if crossMingw && crossStageStatic then
|
||||
" --with-headers=${libcCross}/include" +
|
||||
" --with-gcc" +
|
||||
@ -187,7 +186,7 @@ let version = "4.8.5";
|
||||
" --disable-shared" +
|
||||
# To keep ABI compatibility with upstream mingw-w64
|
||||
" --enable-fully-dynamic-string"
|
||||
else (if cross.libc == "uclibc" then
|
||||
else (if targetPlatform.libc == "uclibc" then
|
||||
# In uclibc cases, libgomp needs an additional '-ldl'
|
||||
# and as I don't know how to pass it, I disable libgomp.
|
||||
" --disable-libgomp" else "") +
|
||||
@ -196,9 +195,9 @@ let version = "4.8.5";
|
||||
" --disable-decimal-float") # No final libdecnumber (it may work only in 386)
|
||||
);
|
||||
stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
|
||||
crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
|
||||
crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else "";
|
||||
|
||||
bootstrap = cross == null && !stdenv.isArm && !stdenv.isMips;
|
||||
bootstrap = targetPlatform == hostPlatform && !hostPlatform.isArm && !hostPlatform.isMips;
|
||||
|
||||
in
|
||||
|
||||
@ -226,7 +225,7 @@ stdenv.mkDerivation ({
|
||||
libc_dev = stdenv.cc.libc_dev;
|
||||
|
||||
postPatch =
|
||||
if (stdenv.isHurd
|
||||
if (hostPlatform.isHurd
|
||||
|| (libcCross != null # e.g., building `gcc.crossDrv'
|
||||
&& libcCross ? crossConfig
|
||||
&& libcCross.crossConfig == "i586-pc-gnu")
|
||||
@ -262,7 +261,7 @@ stdenv.mkDerivation ({
|
||||
sed -i "${gnu_h}" \
|
||||
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g'
|
||||
''
|
||||
else if cross != null || stdenv.cc.libc != null then
|
||||
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
||||
# On NixOS, use the right path to the dynamic linker instead of
|
||||
# `/lib/ld*.so'.
|
||||
let
|
||||
@ -292,17 +291,17 @@ stdenv.mkDerivation ({
|
||||
++ (optional (zlib != null) zlib)
|
||||
++ (optionals langJava [ boehmgc zip unzip ])
|
||||
++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs))
|
||||
++ (optionals (cross != null) [binutils])
|
||||
++ (optionals (targetPlatform != hostPlatform) [binutils])
|
||||
++ (optionals langAda [gnatboot])
|
||||
++ (optionals langVhdl [gnat])
|
||||
|
||||
# The builder relies on GNU sed (for instance, Darwin's `sed' fails with
|
||||
# "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
|
||||
++ (optional stdenv.isDarwin gnused)
|
||||
++ (optional hostPlatform.isDarwin gnused)
|
||||
;
|
||||
|
||||
|
||||
preConfigure = stdenv.lib.optionalString (stdenv.isSunOS && stdenv.is64bit) ''
|
||||
preConfigure = stdenv.lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) ''
|
||||
export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g`
|
||||
export LDFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $LDFLAGS_FOR_TARGET"
|
||||
export CXXFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CXXFLAGS_FOR_TARGET"
|
||||
@ -312,7 +311,7 @@ stdenv.mkDerivation ({
|
||||
dontDisableStatic = true;
|
||||
|
||||
configureFlags = "
|
||||
${if stdenv.isSunOS then
|
||||
${if hostPlatform.isSunOS then
|
||||
" --enable-long-long --enable-libssp --enable-threads=posix --disable-nls --enable-__cxa_atexit " +
|
||||
# On Illumos/Solaris GNU as is preferred
|
||||
" --with-gnu-as --without-gnu-ld "
|
||||
@ -357,19 +356,19 @@ stdenv.mkDerivation ({
|
||||
)
|
||||
)
|
||||
}
|
||||
${if cross == null
|
||||
then if stdenv.isDarwin
|
||||
${if targetPlatform == hostPlatform
|
||||
then if hostPlatform.isDarwin
|
||||
then " --with-native-system-header-dir=${darwin.usr-include}"
|
||||
else " --with-native-system-header-dir=${getDev stdenv.cc.libc}/include"
|
||||
else ""}
|
||||
${if langAda then " --enable-libada" else ""}
|
||||
${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
|
||||
${if cross != null then crossConfigureFlags else ""}
|
||||
${if targetPlatform == hostPlatform && targetPlatform.isi686 then "--with-arch=i686" else ""}
|
||||
${if targetPlatform != hostPlatform then crossConfigureFlags else ""}
|
||||
${if !bootstrap then "--disable-bootstrap" else ""}
|
||||
${if cross == null then platformFlags else ""}
|
||||
${if targetPlatform == hostPlatform then platformFlags else ""}
|
||||
";
|
||||
|
||||
targetConfig = if cross != null then cross.config else null;
|
||||
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
|
||||
|
||||
buildFlags = if bootstrap then
|
||||
(if profiledCompiler then "profiledbootstrap" else "bootstrap")
|
||||
@ -402,7 +401,7 @@ stdenv.mkDerivation ({
|
||||
NM_FOR_TARGET = "${targetPlatform.config}-nm";
|
||||
CXX_FOR_TARGET = "${targetPlatform.config}-g++";
|
||||
# If we are making a cross compiler, cross != null
|
||||
NIX_CC_CROSS = if cross == null then "${stdenv.ccCross}" else "";
|
||||
NIX_CC_CROSS = if targetPlatform == hostPlatform then "${stdenv.ccCross}" else "";
|
||||
dontStrip = true;
|
||||
configureFlags = ''
|
||||
${if enableMultilib then "" else "--disable-multilib"}
|
||||
@ -479,7 +478,7 @@ stdenv.mkDerivation ({
|
||||
++ optional (libpthread != null) libpthread);
|
||||
|
||||
EXTRA_TARGET_CFLAGS =
|
||||
if cross != null && libcCross != null then [
|
||||
if targetPlatform != hostPlatform && libcCross != null then [
|
||||
"-idirafter ${libcCross.dev}/include"
|
||||
]
|
||||
++ optionals (! crossStageStatic) [
|
||||
@ -488,7 +487,7 @@ stdenv.mkDerivation ({
|
||||
else null;
|
||||
|
||||
EXTRA_TARGET_LDFLAGS =
|
||||
if cross != null && libcCross != null then [
|
||||
if targetPlatform != hostPlatform && libcCross != null then [
|
||||
"-Wl,-L${libcCross.out}/lib"
|
||||
]
|
||||
++ (if crossStageStatic then [
|
||||
@ -537,13 +536,13 @@ stdenv.mkDerivation ({
|
||||
};
|
||||
}
|
||||
|
||||
// optionalAttrs (cross != null && cross.libc == "msvcrt" && crossStageStatic) {
|
||||
// optionalAttrs (targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt" && crossStageStatic) {
|
||||
makeFlags = [ "all-gcc" "all-target-libgcc" ];
|
||||
installTargets = "install-gcc install-target-libgcc";
|
||||
}
|
||||
|
||||
# Strip kills static libs of other archs (hence cross != null)
|
||||
// optionalAttrs (!stripped || cross != null) { dontStrip = true; }
|
||||
# Strip kills static libs of other archs (hence targetPlatform != hostPlatform)
|
||||
// optionalAttrs (!stripped || targetPlatform != hostPlatform) { dontStrip = true; }
|
||||
|
||||
// optionalAttrs (enableMultilib) { dontMoveLib64 = true; }
|
||||
)
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchurl, noSysDirs
|
||||
, langC ? true, langCC ? true, langFortran ? false
|
||||
, langObjC ? stdenv.isDarwin
|
||||
, langObjCpp ? stdenv.isDarwin
|
||||
, langObjC ? targetPlatform.isDarwin
|
||||
, langObjCpp ? targetPlatform.isDarwin
|
||||
, langJava ? false
|
||||
, langAda ? false
|
||||
, langVhdl ? false
|
||||
@ -25,7 +25,6 @@
|
||||
, enableMultilib ? false
|
||||
, enablePlugin ? true # whether to support user-supplied plug-ins
|
||||
, name ? "gcc"
|
||||
, cross ? null
|
||||
, libcCross ? null
|
||||
, crossStageStatic ? true
|
||||
, gnat ? null
|
||||
@ -49,7 +48,7 @@ assert cloog != null -> isl != null;
|
||||
assert libelf != null -> zlib != null;
|
||||
|
||||
# Make sure we get GNU sed.
|
||||
assert stdenv.isDarwin -> gnused != null;
|
||||
assert hostPlatform.isDarwin -> gnused != null;
|
||||
|
||||
# The go frontend is written in c++
|
||||
assert langGo -> langCC;
|
||||
@ -60,21 +59,21 @@ with builtins;
|
||||
let version = "4.9.4";
|
||||
|
||||
# Whether building a cross-compiler for GNU/Hurd.
|
||||
crossGNU = cross != null && cross.config == "i586-pc-gnu";
|
||||
crossGNU = targetPlatform != hostPlatform && targetPlatform.config == "i586-pc-gnu";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches =
|
||||
[ ../use-source-date-epoch.patch ]
|
||||
++ optionals enableParallelBuilding [ ../parallel-bconfig.patch ./parallel-strsignal.patch ]
|
||||
++ optional (cross != null) ../libstdc++-target.patch
|
||||
++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
|
||||
++ optional noSysDirs ../no-sys-dirs.patch
|
||||
# The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
|
||||
# target libraries and tools.
|
||||
++ optional langAda ../gnat-cflags.patch
|
||||
++ optional langFortran ../gfortran-driving.patch
|
||||
# The NXConstStr.patch can be removed at 4.9.4
|
||||
++ optional stdenv.isDarwin ../gfortran-darwin-NXConstStr.patch;
|
||||
++ optional hostPlatform.isDarwin ../gfortran-darwin-NXConstStr.patch;
|
||||
|
||||
javaEcj = fetchurl {
|
||||
# The `$(top_srcdir)/ecj.jar' file is automatically picked up at
|
||||
@ -122,8 +121,8 @@ let version = "4.9.4";
|
||||
withMode;
|
||||
|
||||
/* Cross-gcc settings */
|
||||
crossMingw = cross != null && cross.libc == "msvcrt";
|
||||
crossDarwin = cross != null && cross.libc == "libSystem";
|
||||
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
|
||||
crossDarwin = targetPlatform != hostPlatform && targetPlatform.libc == "libSystem";
|
||||
crossConfigureFlags = let
|
||||
gccArch = targetPlatform.gcc.arch or null;
|
||||
gccCpu = targetPlatform.gcc.cpu or null;
|
||||
@ -138,7 +137,7 @@ let version = "4.9.4";
|
||||
withFloat = if gccFloat != null then " --with-float=${gccFloat}" else "";
|
||||
withMode = if gccMode != null then " --with-mode=${gccMode}" else "";
|
||||
in
|
||||
"--target=${cross.config}" +
|
||||
"--target=${targetPlatform.config}" +
|
||||
withArch +
|
||||
withCpu +
|
||||
withAbi +
|
||||
@ -146,8 +145,8 @@ let version = "4.9.4";
|
||||
withFloat +
|
||||
withMode +
|
||||
# Ensure that -print-prog-name is able to find the correct programs.
|
||||
" --with-as=${binutils}/bin/${cross.config}-as" +
|
||||
" --with-ld=${binutils}/bin/${cross.config}-ld" +
|
||||
" --with-as=${binutils}/bin/${targetPlatform.config}-as" +
|
||||
" --with-ld=${binutils}/bin/${targetPlatform.config}-ld" +
|
||||
(if crossMingw && crossStageStatic then
|
||||
" --with-headers=${libcCross}/include" +
|
||||
" --with-gcc" +
|
||||
@ -187,7 +186,7 @@ let version = "4.9.4";
|
||||
" --disable-shared" +
|
||||
# To keep ABI compatibility with upstream mingw-w64
|
||||
" --enable-fully-dynamic-string"
|
||||
else (if cross.libc == "uclibc" then
|
||||
else (if targetPlatform.libc == "uclibc" then
|
||||
# libsanitizer requires netrom/netrom.h which is not
|
||||
# available in uclibc.
|
||||
" --disable-libsanitizer" +
|
||||
@ -199,9 +198,9 @@ let version = "4.9.4";
|
||||
" --disable-decimal-float") # No final libdecnumber (it may work only in 386)
|
||||
);
|
||||
stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
|
||||
crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
|
||||
crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else "";
|
||||
|
||||
bootstrap = cross == null;
|
||||
bootstrap = targetPlatform == hostPlatform;
|
||||
|
||||
in
|
||||
|
||||
@ -230,7 +229,7 @@ stdenv.mkDerivation ({
|
||||
libc_dev = stdenv.cc.libc_dev;
|
||||
|
||||
postPatch =
|
||||
if (stdenv.isHurd
|
||||
if (hostPlatform.isHurd
|
||||
|| (libcCross != null # e.g., building `gcc.crossDrv'
|
||||
&& libcCross ? crossConfig
|
||||
&& libcCross.crossConfig == "i586-pc-gnu")
|
||||
@ -266,7 +265,7 @@ stdenv.mkDerivation ({
|
||||
sed -i "${gnu_h}" \
|
||||
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g'
|
||||
''
|
||||
else if cross != null || stdenv.cc.libc != null then
|
||||
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
||||
# On NixOS, use the right path to the dynamic linker instead of
|
||||
# `/lib/ld*.so'.
|
||||
let
|
||||
@ -296,16 +295,16 @@ stdenv.mkDerivation ({
|
||||
++ (optional (zlib != null) zlib)
|
||||
++ (optionals langJava [ boehmgc zip unzip ])
|
||||
++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs))
|
||||
++ (optionals (cross != null) [binutils])
|
||||
++ (optionals (targetPlatform != hostPlatform) [binutils])
|
||||
++ (optionals langAda [gnatboot])
|
||||
++ (optionals langVhdl [gnat])
|
||||
|
||||
# The builder relies on GNU sed (for instance, Darwin's `sed' fails with
|
||||
# "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
|
||||
++ (optional stdenv.isDarwin gnused)
|
||||
++ (optional hostPlatform.isDarwin gnused)
|
||||
;
|
||||
|
||||
preConfigure = stdenv.lib.optionalString (stdenv.isSunOS && stdenv.is64bit) ''
|
||||
preConfigure = stdenv.lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) ''
|
||||
sed -i -e "s/-lrt//g" libstdc++-v3/configure
|
||||
export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g`
|
||||
export LDFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $LDFLAGS_FOR_TARGET"
|
||||
@ -320,7 +319,7 @@ stdenv.mkDerivation ({
|
||||
dontDisableStatic = true;
|
||||
|
||||
configureFlags = "
|
||||
${if stdenv.isSunOS then
|
||||
${if hostPlatform.isSunOS then
|
||||
" --enable-long-long --enable-libssp --enable-threads=posix --disable-nls --enable-__cxa_atexit " +
|
||||
# On Illumos/Solaris GNU as is preferred
|
||||
" --with-gnu-as --without-gnu-ld "
|
||||
@ -363,19 +362,19 @@ stdenv.mkDerivation ({
|
||||
)
|
||||
)
|
||||
}
|
||||
${if cross == null
|
||||
then if stdenv.isDarwin
|
||||
${if targetPlatform == hostPlatform
|
||||
then if hostPlatform.isDarwin
|
||||
then " --with-native-system-header-dir=${darwin.usr-include}"
|
||||
else " --with-native-system-header-dir=${getDev stdenv.cc.libc}/include"
|
||||
else ""}
|
||||
${if langAda then " --enable-libada" else ""}
|
||||
${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
|
||||
${if cross != null then crossConfigureFlags else ""}
|
||||
${if targetPlatform == hostPlatform && targetPlatform.isi686 then "--with-arch=i686" else ""}
|
||||
${if targetPlatform != hostPlatform then crossConfigureFlags else ""}
|
||||
${if !bootstrap then "--disable-bootstrap" else ""}
|
||||
${if cross == null then platformFlags else ""}
|
||||
${if targetPlatform == hostPlatform then platformFlags else ""}
|
||||
";
|
||||
|
||||
targetConfig = if cross != null then cross.config else null;
|
||||
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
|
||||
|
||||
buildFlags = if bootstrap then
|
||||
(if profiledCompiler then "profiledbootstrap" else "bootstrap")
|
||||
@ -408,7 +407,7 @@ stdenv.mkDerivation ({
|
||||
NM_FOR_TARGET = "${targetPlatform.config}-nm";
|
||||
CXX_FOR_TARGET = "${targetPlatform.config}-g++";
|
||||
# If we are making a cross compiler, cross != null
|
||||
NIX_CC_CROSS = if cross == null then "${stdenv.ccCross}" else "";
|
||||
NIX_CC_CROSS = if targetPlatform == hostPlatform then "${stdenv.ccCross}" else "";
|
||||
dontStrip = true;
|
||||
configureFlags = ''
|
||||
${if enableMultilib then "" else "--disable-multilib"}
|
||||
@ -485,7 +484,7 @@ stdenv.mkDerivation ({
|
||||
++ optional (libpthread != null) libpthread);
|
||||
|
||||
EXTRA_TARGET_CFLAGS =
|
||||
if cross != null && libcCross != null then [
|
||||
if targetPlatform != hostPlatform && libcCross != null then [
|
||||
"-idirafter ${libcCross.dev}/include"
|
||||
]
|
||||
++ optionals (! crossStageStatic) [
|
||||
@ -494,7 +493,7 @@ stdenv.mkDerivation ({
|
||||
else null;
|
||||
|
||||
EXTRA_TARGET_LDFLAGS =
|
||||
if cross != null && libcCross != null then [
|
||||
if targetPlatform != hostPlatform && libcCross != null then [
|
||||
"-Wl,-L${libcCross.out}/lib"
|
||||
]
|
||||
++ (if crossStageStatic then [
|
||||
@ -543,13 +542,13 @@ stdenv.mkDerivation ({
|
||||
};
|
||||
}
|
||||
|
||||
// optionalAttrs (cross != null && cross.libc == "msvcrt" && crossStageStatic) {
|
||||
// optionalAttrs (targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt" && crossStageStatic) {
|
||||
makeFlags = [ "all-gcc" "all-target-libgcc" ];
|
||||
installTargets = "install-gcc install-target-libgcc";
|
||||
}
|
||||
|
||||
# Strip kills static libs of other archs (hence cross != null)
|
||||
// optionalAttrs (!stripped || cross != null) { dontStrip = true; }
|
||||
# Strip kills static libs of other archs (hence targetPlatform != hostPlatform)
|
||||
// optionalAttrs (!stripped || targetPlatform != hostPlatform) { dontStrip = true; }
|
||||
|
||||
// optionalAttrs (enableMultilib) { dontMoveLib64 = true; }
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchurl, noSysDirs
|
||||
, langC ? true, langCC ? true, langFortran ? false
|
||||
, langObjC ? stdenv.isDarwin
|
||||
, langObjCpp ? stdenv.isDarwin
|
||||
, langObjC ? targetPlatform.isDarwin
|
||||
, langObjCpp ? targetPlatform.isDarwin
|
||||
, langJava ? false
|
||||
, langAda ? false
|
||||
, langVhdl ? false
|
||||
@ -25,7 +25,6 @@
|
||||
, enableMultilib ? false
|
||||
, enablePlugin ? true # whether to support user-supplied plug-ins
|
||||
, name ? "gcc"
|
||||
, cross ? null
|
||||
, libcCross ? null
|
||||
, crossStageStatic ? true
|
||||
, gnat ? null
|
||||
@ -48,10 +47,10 @@ assert langVhdl -> gnat != null;
|
||||
assert libelf != null -> zlib != null;
|
||||
|
||||
# Make sure we get GNU sed.
|
||||
assert stdenv.isDarwin -> gnused != null;
|
||||
assert hostPlatform.isDarwin -> gnused != null;
|
||||
|
||||
# Need c++filt on darwin
|
||||
assert stdenv.isDarwin -> binutils != null;
|
||||
assert hostPlatform.isDarwin -> binutils != null;
|
||||
|
||||
# The go frontend is written in c++
|
||||
assert langGo -> langCC;
|
||||
@ -63,13 +62,13 @@ let version = "5.4.0";
|
||||
sha256 = "0fihlcy5hnksdxk0sn6bvgnyq8gfrgs8m794b1jxwd1dxinzg3b0";
|
||||
|
||||
# Whether building a cross-compiler for GNU/Hurd.
|
||||
crossGNU = cross != null && cross.config == "i586-pc-gnu";
|
||||
crossGNU = targetPlatform != hostPlatform && targetPlatform.config == "i586-pc-gnu";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches =
|
||||
[ ../use-source-date-epoch.patch ]
|
||||
++ optional (cross != null) ../libstdc++-target.patch
|
||||
++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
|
||||
++ optional noSysDirs ../no-sys-dirs.patch
|
||||
# The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
|
||||
# target libraries and tools.
|
||||
@ -126,8 +125,8 @@ let version = "5.4.0";
|
||||
withMode;
|
||||
|
||||
/* Cross-gcc settings */
|
||||
crossMingw = cross != null && cross.libc == "msvcrt";
|
||||
crossDarwin = cross != null && cross.libc == "libSystem";
|
||||
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
|
||||
crossDarwin = targetPlatform != hostPlatform && targetPlatform.libc == "libSystem";
|
||||
crossConfigureFlags = let
|
||||
gccArch = targetPlatform.gcc.arch or null;
|
||||
gccCpu = targetPlatform.gcc.cpu or null;
|
||||
@ -142,7 +141,7 @@ let version = "5.4.0";
|
||||
withFloat = if gccFloat != null then " --with-float=${gccFloat}" else "";
|
||||
withMode = if gccMode != null then " --with-mode=${gccMode}" else "";
|
||||
in
|
||||
"--target=${cross.config}" +
|
||||
"--target=${targetPlatform.config}" +
|
||||
withArch +
|
||||
withCpu +
|
||||
withAbi +
|
||||
@ -150,8 +149,8 @@ let version = "5.4.0";
|
||||
withFloat +
|
||||
withMode +
|
||||
# Ensure that -print-prog-name is able to find the correct programs.
|
||||
" --with-as=${binutils}/bin/${cross.config}-as" +
|
||||
" --with-ld=${binutils}/bin/${cross.config}-ld" +
|
||||
" --with-as=${binutils}/bin/${targetPlatform.config}-as" +
|
||||
" --with-ld=${binutils}/bin/${targetPlatform.config}-ld" +
|
||||
(if crossMingw && crossStageStatic then
|
||||
" --with-headers=${libcCross}/include" +
|
||||
" --with-gcc" +
|
||||
@ -191,7 +190,7 @@ let version = "5.4.0";
|
||||
" --disable-shared" +
|
||||
# To keep ABI compatibility with upstream mingw-w64
|
||||
" --enable-fully-dynamic-string"
|
||||
else (if cross.libc == "uclibc" then
|
||||
else (if targetPlatform.libc == "uclibc" then
|
||||
# libsanitizer requires netrom/netrom.h which is not
|
||||
# available in uclibc.
|
||||
" --disable-libsanitizer" +
|
||||
@ -203,9 +202,9 @@ let version = "5.4.0";
|
||||
" --disable-decimal-float") # No final libdecnumber (it may work only in 386)
|
||||
);
|
||||
stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
|
||||
crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
|
||||
crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else "";
|
||||
|
||||
bootstrap = cross == null;
|
||||
bootstrap = targetPlatform == hostPlatform;
|
||||
|
||||
in
|
||||
|
||||
@ -235,7 +234,7 @@ stdenv.mkDerivation ({
|
||||
|
||||
# This should kill all the stdinc frameworks that gcc and friends like to
|
||||
# insert into default search paths.
|
||||
prePatch = stdenv.lib.optionalString stdenv.isDarwin ''
|
||||
prePatch = stdenv.lib.optionalString hostPlatform.isDarwin ''
|
||||
substituteInPlace gcc/config/darwin-c.c \
|
||||
--replace 'if (stdinc)' 'if (0)'
|
||||
|
||||
@ -247,7 +246,7 @@ stdenv.mkDerivation ({
|
||||
'';
|
||||
|
||||
postPatch =
|
||||
if (stdenv.isHurd
|
||||
if (hostPlatform.isHurd
|
||||
|| (libcCross != null # e.g., building `gcc.crossDrv'
|
||||
&& libcCross ? crossConfig
|
||||
&& libcCross.crossConfig == "i586-pc-gnu")
|
||||
@ -283,7 +282,7 @@ stdenv.mkDerivation ({
|
||||
sed -i "${gnu_h}" \
|
||||
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g'
|
||||
''
|
||||
else if cross != null || stdenv.cc.libc != null then
|
||||
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
||||
# On NixOS, use the right path to the dynamic linker instead of
|
||||
# `/lib/ld*.so'.
|
||||
let
|
||||
@ -312,19 +311,19 @@ stdenv.mkDerivation ({
|
||||
++ (optional (zlib != null) zlib)
|
||||
++ (optionals langJava [ boehmgc zip unzip ])
|
||||
++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs))
|
||||
++ (optionals (cross != null) [binutils])
|
||||
++ (optionals (targetPlatform != hostPlatform) [binutils])
|
||||
++ (optionals langAda [gnatboot])
|
||||
++ (optionals langVhdl [gnat])
|
||||
|
||||
# The builder relies on GNU sed (for instance, Darwin's `sed' fails with
|
||||
# "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
|
||||
++ (optional stdenv.isDarwin gnused)
|
||||
++ (optional stdenv.isDarwin binutils)
|
||||
++ (optional hostPlatform.isDarwin gnused)
|
||||
++ (optional hostPlatform.isDarwin binutils)
|
||||
;
|
||||
|
||||
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isSunOS "-lm -ldl";
|
||||
NIX_LDFLAGS = stdenv.lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
||||
|
||||
preConfigure = stdenv.lib.optionalString (stdenv.isSunOS && stdenv.is64bit) ''
|
||||
preConfigure = stdenv.lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) ''
|
||||
export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g`
|
||||
export LDFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $LDFLAGS_FOR_TARGET"
|
||||
export CXXFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CXXFLAGS_FOR_TARGET"
|
||||
@ -334,7 +333,7 @@ stdenv.mkDerivation ({
|
||||
dontDisableStatic = true;
|
||||
|
||||
configureFlags = "
|
||||
${if stdenv.isSunOS then
|
||||
${if hostPlatform.isSunOS then
|
||||
" --enable-long-long --enable-libssp --enable-threads=posix --disable-nls --enable-__cxa_atexit " +
|
||||
# On Illumos/Solaris GNU as is preferred
|
||||
" --with-gnu-as --without-gnu-ld "
|
||||
@ -378,19 +377,19 @@ stdenv.mkDerivation ({
|
||||
)
|
||||
)
|
||||
}
|
||||
${if cross == null
|
||||
then if stdenv.isDarwin
|
||||
${if targetPlatform == hostPlatform
|
||||
then if hostPlatform.isDarwin
|
||||
then " --with-native-system-header-dir=${darwin.usr-include}"
|
||||
else " --with-native-system-header-dir=${getDev stdenv.cc.libc}/include"
|
||||
else ""}
|
||||
${if langAda then " --enable-libada" else ""}
|
||||
${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
|
||||
${if cross != null then crossConfigureFlags else ""}
|
||||
${if targetPlatform == hostPlatform && targetPlatform.isi686 then "--with-arch=i686" else ""}
|
||||
${if targetPlatform != hostPlatform then crossConfigureFlags else ""}
|
||||
${if !bootstrap then "--disable-bootstrap" else ""}
|
||||
${if cross == null then platformFlags else ""}
|
||||
${if targetPlatform == hostPlatform then platformFlags else ""}
|
||||
";
|
||||
|
||||
targetConfig = if cross != null then cross.config else null;
|
||||
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
|
||||
|
||||
buildFlags = if bootstrap then
|
||||
(if profiledCompiler then "profiledbootstrap" else "bootstrap")
|
||||
@ -423,7 +422,7 @@ stdenv.mkDerivation ({
|
||||
NM_FOR_TARGET = "${targetPlatform.config}-nm";
|
||||
CXX_FOR_TARGET = "${targetPlatform.config}-g++";
|
||||
# If we are making a cross compiler, cross != null
|
||||
NIX_CC_CROSS = if cross == null then "${stdenv.ccCross}" else "";
|
||||
NIX_CC_CROSS = if targetPlatform == hostPlatform then "${stdenv.ccCross}" else "";
|
||||
dontStrip = true;
|
||||
configureFlags = ''
|
||||
${if enableMultilib then "" else "--disable-multilib"}
|
||||
@ -499,7 +498,7 @@ stdenv.mkDerivation ({
|
||||
++ optional (libpthread != null) libpthread);
|
||||
|
||||
EXTRA_TARGET_CFLAGS =
|
||||
if cross != null && libcCross != null then [
|
||||
if targetPlatform != hostPlatform && libcCross != null then [
|
||||
"-idirafter ${getDev libcCross}/include"
|
||||
]
|
||||
++ optionals (! crossStageStatic) [
|
||||
@ -508,7 +507,7 @@ stdenv.mkDerivation ({
|
||||
else null;
|
||||
|
||||
EXTRA_TARGET_LDFLAGS =
|
||||
if cross != null && libcCross != null then [
|
||||
if targetPlatform != hostPlatform && libcCross != null then [
|
||||
"-Wl,-L${libcCross.out}/lib"
|
||||
]
|
||||
++ (if crossStageStatic then [
|
||||
@ -556,13 +555,13 @@ stdenv.mkDerivation ({
|
||||
};
|
||||
}
|
||||
|
||||
// optionalAttrs (cross != null && cross.libc == "msvcrt" && crossStageStatic) {
|
||||
// optionalAttrs (targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt" && crossStageStatic) {
|
||||
makeFlags = [ "all-gcc" "all-target-libgcc" ];
|
||||
installTargets = "install-gcc install-target-libgcc";
|
||||
}
|
||||
|
||||
# Strip kills static libs of other archs (hence cross != null)
|
||||
// optionalAttrs (!stripped || cross != null) { dontStrip = true; }
|
||||
# Strip kills static libs of other archs (hence targetPlatform != hostPlatform)
|
||||
// optionalAttrs (!stripped || targetPlatform != hostPlatform) { dontStrip = true; }
|
||||
|
||||
// optionalAttrs (enableMultilib) { dontMoveLib64 = true; }
|
||||
)
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchurl, noSysDirs
|
||||
, langC ? true, langCC ? true, langFortran ? false
|
||||
, langObjC ? stdenv.isDarwin
|
||||
, langObjCpp ? stdenv.isDarwin
|
||||
, langObjC ? targetPlatform.isDarwin
|
||||
, langObjCpp ? targetPlatform.isDarwin
|
||||
, langJava ? false
|
||||
, langAda ? false
|
||||
, langVhdl ? false
|
||||
@ -25,7 +25,6 @@
|
||||
, enableMultilib ? false
|
||||
, enablePlugin ? true # whether to support user-supplied plug-ins
|
||||
, name ? "gcc"
|
||||
, cross ? null
|
||||
, libcCross ? null
|
||||
, crossStageStatic ? true
|
||||
, gnat ? null
|
||||
@ -48,10 +47,10 @@ assert langVhdl -> gnat != null;
|
||||
assert libelf != null -> zlib != null;
|
||||
|
||||
# Make sure we get GNU sed.
|
||||
assert stdenv.isDarwin -> gnused != null;
|
||||
assert hostPlatform.isDarwin -> gnused != null;
|
||||
|
||||
# Need c++filt on darwin
|
||||
assert stdenv.isDarwin -> binutils != null;
|
||||
assert hostPlatform.isDarwin -> binutils != null;
|
||||
|
||||
# The go frontend is written in c++
|
||||
assert langGo -> langCC;
|
||||
@ -62,19 +61,19 @@ with builtins;
|
||||
let version = "6.3.0";
|
||||
|
||||
# Whether building a cross-compiler for GNU/Hurd.
|
||||
crossGNU = cross != null && cross.config == "i586-pc-gnu";
|
||||
crossGNU = targetPlatform != hostPlatform && targetPlatform.config == "i586-pc-gnu";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches =
|
||||
[ ../use-source-date-epoch.patch ]
|
||||
++ optional (cross != null) ../libstdc++-target.patch
|
||||
++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
|
||||
++ optional noSysDirs ../no-sys-dirs.patch
|
||||
# The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
|
||||
# target libraries and tools.
|
||||
++ optional langAda ../gnat-cflags.patch
|
||||
++ optional langFortran ../gfortran-driving.patch
|
||||
++ optional stdenv.isDarwin ./darwin-const-correct.patch; # Kill this after 6.3.0
|
||||
++ optional hostPlatform.isDarwin ./darwin-const-correct.patch; # Kill this after 6.3.0
|
||||
|
||||
javaEcj = fetchurl {
|
||||
# The `$(top_srcdir)/ecj.jar' file is automatically picked up at
|
||||
@ -122,8 +121,8 @@ let version = "6.3.0";
|
||||
withMode;
|
||||
|
||||
/* Cross-gcc settings */
|
||||
crossMingw = cross != null && cross.libc == "msvcrt";
|
||||
crossDarwin = cross != null && cross.libc == "libSystem";
|
||||
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
|
||||
crossDarwin = targetPlatform != hostPlatform && targetPlatform.libc == "libSystem";
|
||||
crossConfigureFlags = let
|
||||
gccArch = targetPlatform.gcc.arch or null;
|
||||
gccCpu = targetPlatform.gcc.cpu or null;
|
||||
@ -138,7 +137,7 @@ let version = "6.3.0";
|
||||
withFloat = if gccFloat != null then " --with-float=${gccFloat}" else "";
|
||||
withMode = if gccMode != null then " --with-mode=${gccMode}" else "";
|
||||
in
|
||||
"--target=${cross.config}" +
|
||||
"--target=${targetPlatform.config}" +
|
||||
withArch +
|
||||
withCpu +
|
||||
withAbi +
|
||||
@ -146,8 +145,8 @@ let version = "6.3.0";
|
||||
withFloat +
|
||||
withMode +
|
||||
# Ensure that -print-prog-name is able to find the correct programs.
|
||||
" --with-as=${binutils}/bin/${cross.config}-as" +
|
||||
" --with-ld=${binutils}/bin/${cross.config}-ld" +
|
||||
" --with-as=${binutils}/bin/${targetPlatform.config}-as" +
|
||||
" --with-ld=${binutils}/bin/${targetPlatform.config}-ld" +
|
||||
(if crossMingw && crossStageStatic then
|
||||
" --with-headers=${libcCross}/include" +
|
||||
" --with-gcc" +
|
||||
@ -187,7 +186,7 @@ let version = "6.3.0";
|
||||
" --disable-shared" +
|
||||
# To keep ABI compatibility with upstream mingw-w64
|
||||
" --enable-fully-dynamic-string"
|
||||
else (if cross.libc == "uclibc" then
|
||||
else (if targetPlatform.libc == "uclibc" then
|
||||
# libsanitizer requires netrom/netrom.h which is not
|
||||
# available in uclibc.
|
||||
" --disable-libsanitizer" +
|
||||
@ -199,9 +198,9 @@ let version = "6.3.0";
|
||||
" --disable-decimal-float") # No final libdecnumber (it may work only in 386)
|
||||
);
|
||||
stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
|
||||
crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
|
||||
crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else "";
|
||||
|
||||
bootstrap = cross == null;
|
||||
bootstrap = targetPlatform == hostPlatform;
|
||||
|
||||
in
|
||||
|
||||
@ -229,7 +228,7 @@ stdenv.mkDerivation ({
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
postPatch =
|
||||
if (stdenv.isHurd
|
||||
if (hostPlatform.isHurd
|
||||
|| (libcCross != null # e.g., building `gcc.crossDrv'
|
||||
&& libcCross ? crossConfig
|
||||
&& libcCross.crossConfig == "i586-pc-gnu")
|
||||
@ -265,7 +264,7 @@ stdenv.mkDerivation ({
|
||||
sed -i "${gnu_h}" \
|
||||
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g'
|
||||
''
|
||||
else if cross != null || stdenv.cc.libc != null then
|
||||
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
||||
# On NixOS, use the right path to the dynamic linker instead of
|
||||
# `/lib/ld*.so'.
|
||||
let
|
||||
@ -294,19 +293,19 @@ stdenv.mkDerivation ({
|
||||
++ (optional (zlib != null) zlib)
|
||||
++ (optionals langJava [ boehmgc zip unzip ])
|
||||
++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs))
|
||||
++ (optionals (cross != null) [binutils])
|
||||
++ (optionals (targetPlatform != hostPlatform) [binutils])
|
||||
++ (optionals langAda [gnatboot])
|
||||
++ (optionals langVhdl [gnat])
|
||||
|
||||
# The builder relies on GNU sed (for instance, Darwin's `sed' fails with
|
||||
# "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
|
||||
++ (optional stdenv.isDarwin gnused)
|
||||
++ (optional stdenv.isDarwin binutils)
|
||||
++ (optional hostPlatform.isDarwin gnused)
|
||||
++ (optional hostPlatform.isDarwin binutils)
|
||||
;
|
||||
|
||||
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isSunOS "-lm -ldl";
|
||||
NIX_LDFLAGS = stdenv.lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
||||
|
||||
preConfigure = stdenv.lib.optionalString (stdenv.isSunOS && stdenv.is64bit) ''
|
||||
preConfigure = stdenv.lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) ''
|
||||
export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g`
|
||||
export LDFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $LDFLAGS_FOR_TARGET"
|
||||
export CXXFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CXXFLAGS_FOR_TARGET"
|
||||
@ -316,7 +315,7 @@ stdenv.mkDerivation ({
|
||||
dontDisableStatic = true;
|
||||
|
||||
configureFlags = "
|
||||
${if stdenv.isSunOS then
|
||||
${if hostPlatform.isSunOS then
|
||||
" --enable-long-long --enable-libssp --enable-threads=posix --disable-nls --enable-__cxa_atexit " +
|
||||
# On Illumos/Solaris GNU as is preferred
|
||||
" --with-gnu-as --without-gnu-ld "
|
||||
@ -360,19 +359,19 @@ stdenv.mkDerivation ({
|
||||
)
|
||||
)
|
||||
}
|
||||
${if cross == null
|
||||
then if stdenv.isDarwin
|
||||
${if targetPlatform == hostPlatform
|
||||
then if hostPlatform.isDarwin
|
||||
then " --with-native-system-header-dir=${darwin.usr-include}"
|
||||
else " --with-native-system-header-dir=${getDev stdenv.cc.libc}/include"
|
||||
else ""}
|
||||
${if langAda then " --enable-libada" else ""}
|
||||
${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
|
||||
${if cross != null then crossConfigureFlags else ""}
|
||||
${if targetPlatform == hostPlatform && targetPlatform.isi686 then "--with-arch=i686" else ""}
|
||||
${if targetPlatform != hostPlatform then crossConfigureFlags else ""}
|
||||
${if !bootstrap then "--disable-bootstrap" else ""}
|
||||
${if cross == null then platformFlags else ""}
|
||||
${if targetPlatform == hostPlatform then platformFlags else ""}
|
||||
";
|
||||
|
||||
targetConfig = if cross != null then cross.config else null;
|
||||
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
|
||||
|
||||
buildFlags = if bootstrap then
|
||||
(if profiledCompiler then "profiledbootstrap" else "bootstrap")
|
||||
@ -405,7 +404,7 @@ stdenv.mkDerivation ({
|
||||
NM_FOR_TARGET = "${targetPlatform.config}-nm";
|
||||
CXX_FOR_TARGET = "${targetPlatform.config}-g++";
|
||||
# If we are making a cross compiler, cross != null
|
||||
NIX_CC_CROSS = if cross == null then "${stdenv.ccCross}" else "";
|
||||
NIX_CC_CROSS = if targetPlatform == hostPlatform then "${stdenv.ccCross}" else "";
|
||||
dontStrip = true;
|
||||
configureFlags = ''
|
||||
${if enableMultilib then "" else "--disable-multilib"}
|
||||
@ -481,7 +480,7 @@ stdenv.mkDerivation ({
|
||||
++ optional (libpthread != null) libpthread);
|
||||
|
||||
EXTRA_TARGET_CFLAGS =
|
||||
if cross != null && libcCross != null then [
|
||||
if targetPlatform != hostPlatform && libcCross != null then [
|
||||
"-idirafter ${getDev libcCross}/include"
|
||||
]
|
||||
++ optionals (! crossStageStatic) [
|
||||
@ -490,7 +489,7 @@ stdenv.mkDerivation ({
|
||||
else null;
|
||||
|
||||
EXTRA_TARGET_LDFLAGS =
|
||||
if cross != null && libcCross != null then [
|
||||
if targetPlatform != hostPlatform && libcCross != null then [
|
||||
"-Wl,-L${libcCross.out}/lib"
|
||||
]
|
||||
++ (if crossStageStatic then [
|
||||
@ -538,13 +537,13 @@ stdenv.mkDerivation ({
|
||||
};
|
||||
}
|
||||
|
||||
// optionalAttrs (cross != null && cross.libc == "msvcrt" && crossStageStatic) {
|
||||
// optionalAttrs (targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt" && crossStageStatic) {
|
||||
makeFlags = [ "all-gcc" "all-target-libgcc" ];
|
||||
installTargets = "install-gcc install-target-libgcc";
|
||||
}
|
||||
|
||||
# Strip kills static libs of other archs (hence cross != null)
|
||||
// optionalAttrs (!stripped || cross != null) { dontStrip = true; }
|
||||
# Strip kills static libs of other archs (hence targetPlatform != hostPlatform)
|
||||
// optionalAttrs (!stripped || targetPlatform != hostPlatform) { dontStrip = true; }
|
||||
|
||||
// optionalAttrs (enableMultilib) { dontMoveLib64 = true; }
|
||||
)
|
||||
|
@ -1,7 +1,7 @@
|
||||
{ stdenv, fetchurl, noSysDirs
|
||||
, langC ? true, langCC ? true, langFortran ? false
|
||||
, langObjC ? stdenv.isDarwin
|
||||
, langObjCpp ? stdenv.isDarwin
|
||||
, langObjC ? targetPlatform.isDarwin
|
||||
, langObjCpp ? targetPlatform.isDarwin
|
||||
, langJava ? false
|
||||
, langAda ? false
|
||||
, langVhdl ? false
|
||||
@ -25,7 +25,6 @@
|
||||
, enableMultilib ? false
|
||||
, enablePlugin ? true # whether to support user-supplied plug-ins
|
||||
, name ? "gcc"
|
||||
, cross ? null
|
||||
, libcCross ? null
|
||||
, crossStageStatic ? true
|
||||
, gnat ? null
|
||||
@ -49,10 +48,10 @@ assert langVhdl -> gnat != null;
|
||||
assert libelf != null -> zlib != null;
|
||||
|
||||
# Make sure we get GNU sed.
|
||||
assert stdenv.isDarwin -> gnused != null;
|
||||
assert hostPlatform.isDarwin -> gnused != null;
|
||||
|
||||
# Need c++filt on darwin
|
||||
assert stdenv.isDarwin -> binutils != null;
|
||||
assert hostPlatform.isDarwin -> binutils != null;
|
||||
|
||||
# The go frontend is written in c++
|
||||
assert langGo -> langCC;
|
||||
@ -63,13 +62,13 @@ with builtins;
|
||||
let version = "7-20170409";
|
||||
|
||||
# Whether building a cross-compiler for GNU/Hurd.
|
||||
crossGNU = cross != null && cross.config == "i586-pc-gnu";
|
||||
crossGNU = targetPlatform != hostPlatform && targetPlatform.config == "i586-pc-gnu";
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
patches =
|
||||
[ ]
|
||||
++ optional (cross != null) ../libstdc++-target.patch
|
||||
++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
|
||||
++ optional noSysDirs ../no-sys-dirs.patch
|
||||
# The GNAT Makefiles did not pay attention to CFLAGS_FOR_TARGET for its
|
||||
# target libraries and tools.
|
||||
@ -122,8 +121,8 @@ let version = "7-20170409";
|
||||
withMode;
|
||||
|
||||
/* Cross-gcc settings */
|
||||
crossMingw = cross != null && cross.libc == "msvcrt";
|
||||
crossDarwin = cross != null && cross.libc == "libSystem";
|
||||
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
|
||||
crossDarwin = targetPlatform != hostPlatform && targetPlatform.libc == "libSystem";
|
||||
crossConfigureFlags = let
|
||||
gccArch = targetPlatform.gcc.arch or null;
|
||||
gccCpu = targetPlatform.gcc.cpu or null;
|
||||
@ -138,7 +137,7 @@ let version = "7-20170409";
|
||||
withFloat = if gccFloat != null then " --with-float=${gccFloat}" else "";
|
||||
withMode = if gccMode != null then " --with-mode=${gccMode}" else "";
|
||||
in
|
||||
"--target=${cross.config}" +
|
||||
"--target=${targetPlatform.config}" +
|
||||
withArch +
|
||||
withCpu +
|
||||
withAbi +
|
||||
@ -146,8 +145,8 @@ let version = "7-20170409";
|
||||
withFloat +
|
||||
withMode +
|
||||
# Ensure that -print-prog-name is able to find the correct programs.
|
||||
" --with-as=${binutils}/bin/${cross.config}-as" +
|
||||
" --with-ld=${binutils}/bin/${cross.config}-ld" +
|
||||
" --with-as=${binutils}/bin/${targetPlatform.config}-as" +
|
||||
" --with-ld=${binutils}/bin/${targetPlatform.config}-ld" +
|
||||
(if crossMingw && crossStageStatic then
|
||||
" --with-headers=${libcCross}/include" +
|
||||
" --with-gcc" +
|
||||
@ -188,7 +187,7 @@ let version = "7-20170409";
|
||||
" --disable-shared" +
|
||||
# To keep ABI compatibility with upstream mingw-w64
|
||||
" --enable-fully-dynamic-string"
|
||||
else (if cross.libc == "uclibc" then
|
||||
else (if targetPlatform.libc == "uclibc" then
|
||||
# libsanitizer requires netrom/netrom.h which is not
|
||||
# available in uclibc.
|
||||
" --disable-libsanitizer" +
|
||||
@ -200,9 +199,9 @@ let version = "7-20170409";
|
||||
" --disable-decimal-float") # No final libdecnumber (it may work only in 386)
|
||||
);
|
||||
stageNameAddon = if crossStageStatic then "-stage-static" else "-stage-final";
|
||||
crossNameAddon = if cross != null then "-${cross.config}" + stageNameAddon else "";
|
||||
crossNameAddon = if targetPlatform != hostPlatform then "-${targetPlatform.config}" + stageNameAddon else "";
|
||||
|
||||
bootstrap = cross == null;
|
||||
bootstrap = targetPlatform == hostPlatform;
|
||||
|
||||
in
|
||||
|
||||
@ -230,7 +229,7 @@ stdenv.mkDerivation ({
|
||||
hardeningDisable = [ "format" ];
|
||||
|
||||
postPatch =
|
||||
if (stdenv.isHurd
|
||||
if (hostPlatform.isHurd
|
||||
|| (libcCross != null # e.g., building `gcc.crossDrv'
|
||||
&& libcCross ? crossConfig
|
||||
&& libcCross.crossConfig == "i586-pc-gnu")
|
||||
@ -266,7 +265,7 @@ stdenv.mkDerivation ({
|
||||
sed -i "${gnu_h}" \
|
||||
-es'|#define STANDARD_INCLUDE_DIR.*$|#define STANDARD_INCLUDE_DIR "${libc.dev}/include"|g'
|
||||
''
|
||||
else if cross != null || stdenv.cc.libc != null then
|
||||
else if targetPlatform != hostPlatform || stdenv.cc.libc != null then
|
||||
# On NixOS, use the right path to the dynamic linker instead of
|
||||
# `/lib/ld*.so'.
|
||||
let
|
||||
@ -295,19 +294,19 @@ stdenv.mkDerivation ({
|
||||
++ (optional (zlib != null) zlib)
|
||||
++ (optionals langJava [ boehmgc zip unzip ])
|
||||
++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs))
|
||||
++ (optionals (cross != null) [binutils])
|
||||
++ (optionals (targetPlatform != hostPlatform) [binutils])
|
||||
++ (optionals langAda [gnatboot])
|
||||
++ (optionals langVhdl [gnat])
|
||||
|
||||
# The builder relies on GNU sed (for instance, Darwin's `sed' fails with
|
||||
# "-i may not be used with stdin"), and `stdenvNative' doesn't provide it.
|
||||
++ (optional stdenv.isDarwin gnused)
|
||||
++ (optional stdenv.isDarwin binutils)
|
||||
++ (optional hostPlatform.isDarwin gnused)
|
||||
++ (optional hostPlatform.isDarwin binutils)
|
||||
;
|
||||
|
||||
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isSunOS "-lm -ldl";
|
||||
NIX_LDFLAGS = stdenv.lib.optionalString hostPlatform.isSunOS "-lm -ldl";
|
||||
|
||||
preConfigure = stdenv.lib.optionalString (stdenv.isSunOS && stdenv.is64bit) ''
|
||||
preConfigure = stdenv.lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) ''
|
||||
export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g`
|
||||
export LDFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $LDFLAGS_FOR_TARGET"
|
||||
export CXXFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CXXFLAGS_FOR_TARGET"
|
||||
@ -317,7 +316,7 @@ stdenv.mkDerivation ({
|
||||
dontDisableStatic = true;
|
||||
|
||||
configureFlags = "
|
||||
${if stdenv.isSunOS then
|
||||
${if hostPlatform.isSunOS then
|
||||
" --enable-long-long --enable-libssp --enable-threads=posix --disable-nls --enable-__cxa_atexit " +
|
||||
# On Illumos/Solaris GNU as is preferred
|
||||
" --with-gnu-as --without-gnu-ld "
|
||||
@ -361,19 +360,19 @@ stdenv.mkDerivation ({
|
||||
)
|
||||
)
|
||||
}
|
||||
${if cross == null
|
||||
then if stdenv.isDarwin
|
||||
${if targetPlatform == hostPlatform
|
||||
then if hostPlatform.isDarwin
|
||||
then " --with-native-system-header-dir=${darwin.usr-include}"
|
||||
else " --with-native-system-header-dir=${getDev stdenv.cc.libc}/include"
|
||||
else ""}
|
||||
${if langAda then " --enable-libada" else ""}
|
||||
${if cross == null && stdenv.isi686 then "--with-arch=i686" else ""}
|
||||
${if cross != null then crossConfigureFlags else ""}
|
||||
${if targetPlatform == hostPlatform && targetPlatform.isi686 then "--with-arch=i686" else ""}
|
||||
${if targetPlatform != hostPlatform then crossConfigureFlags else ""}
|
||||
${if !bootstrap then "--disable-bootstrap" else ""}
|
||||
${if cross == null then platformFlags else ""}
|
||||
${if targetPlatform == hostPlatform then platformFlags else ""}
|
||||
";
|
||||
|
||||
targetConfig = if cross != null then cross.config else null;
|
||||
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
|
||||
|
||||
buildFlags = if bootstrap then
|
||||
(if profiledCompiler then "profiledbootstrap" else "bootstrap")
|
||||
@ -406,7 +405,7 @@ stdenv.mkDerivation ({
|
||||
NM_FOR_TARGET = "${targetPlatform.config}-nm";
|
||||
CXX_FOR_TARGET = "${targetPlatform.config}-g++";
|
||||
# If we are making a cross compiler, cross != null
|
||||
NIX_CC_CROSS = if cross == null then "${stdenv.ccCross}" else "";
|
||||
NIX_CC_CROSS = if targetPlatform == hostPlatform then "${stdenv.ccCross}" else "";
|
||||
dontStrip = true;
|
||||
configureFlags = ''
|
||||
${if enableMultilib then "" else "--disable-multilib"}
|
||||
@ -482,7 +481,7 @@ stdenv.mkDerivation ({
|
||||
++ optional (libpthread != null) libpthread);
|
||||
|
||||
EXTRA_TARGET_CFLAGS =
|
||||
if cross != null && libcCross != null then [
|
||||
if targetPlatform != hostPlatform && libcCross != null then [
|
||||
"-idirafter ${getDev libcCross}/include"
|
||||
]
|
||||
++ optionals (! crossStageStatic) [
|
||||
@ -491,7 +490,7 @@ stdenv.mkDerivation ({
|
||||
else null;
|
||||
|
||||
EXTRA_TARGET_LDFLAGS =
|
||||
if cross != null && libcCross != null then [
|
||||
if targetPlatform != hostPlatform && libcCross != null then [
|
||||
"-Wl,-L${libcCross.out}/lib"
|
||||
]
|
||||
++ (if crossStageStatic then [
|
||||
@ -539,13 +538,13 @@ stdenv.mkDerivation ({
|
||||
};
|
||||
}
|
||||
|
||||
// optionalAttrs (cross != null && cross.libc == "msvcrt" && crossStageStatic) {
|
||||
// optionalAttrs (targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt" && crossStageStatic) {
|
||||
makeFlags = [ "all-gcc" "all-target-libgcc" ];
|
||||
installTargets = "install-gcc install-target-libgcc";
|
||||
}
|
||||
|
||||
# Strip kills static libs of other archs (hence cross != null)
|
||||
// optionalAttrs (!stripped || cross != null) { dontStrip = true; NIX_STRIP_DEBUG = 0; }
|
||||
# Strip kills static libs of other archs (hence targetPlatform != hostPlatform)
|
||||
// optionalAttrs (!stripped || targetPlatform != hostPlatform) { dontStrip = true; NIX_STRIP_DEBUG = 0; }
|
||||
|
||||
// optionalAttrs (enableMultilib) { dontMoveLib64 = true; }
|
||||
)
|
||||
|
@ -25,6 +25,10 @@ stdenv.mkDerivation rec{
|
||||
pythonPackages.python
|
||||
];
|
||||
|
||||
propagatedBuildInputs = stdenv.lib.optionals enablePython [
|
||||
pythonPackages.numpy
|
||||
];
|
||||
|
||||
cmakeFlags = [ "-DENABLE_PYTHON=${if enablePython then "ON" else "OFF"}"
|
||||
"-DENABLE_PNG=ON"
|
||||
"-DENABLE_FORTRAN=ON"
|
||||
|
@ -114,8 +114,8 @@ in {
|
||||
};
|
||||
|
||||
openssl_1_1_0 = common {
|
||||
version = "1.1.0e";
|
||||
sha256 = "0k47sdd9gs6yxfv6ldlgpld2lyzrkcv9kz4cf88ck04xjwc8dgjp";
|
||||
version = "1.1.0f";
|
||||
sha256 = "0r97n4n552ns571diz54qsgarihrxvbn7kvyv8wjyfs9ybrldxqj";
|
||||
};
|
||||
|
||||
}
|
||||
|
22
pkgs/development/python-modules/characteristic/default.nix
Normal file
22
pkgs/development/python-modules/characteristic/default.nix
Normal file
@ -0,0 +1,22 @@
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, pytest
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "characteristic";
|
||||
version = "14.3.0";
|
||||
name = "${pname}-${version}";
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "ded68d4e424115ed44e5c83c2a901a0b6157a959079d7591d92106ffd3ada380";
|
||||
};
|
||||
|
||||
checkInputs = [ pytest ];
|
||||
|
||||
meta = {
|
||||
description = "Python attributes without boilerplate";
|
||||
homepage = https://characteristic.readthedocs.org;
|
||||
};
|
||||
}
|
@ -1,13 +1,17 @@
|
||||
{ stdenv, fetchurl, noSysDirs, zlib
|
||||
, cross ? null, gold ? true, bison ? null
|
||||
{ stdenv, buildPackages
|
||||
, fetchurl, zlib
|
||||
, buildPlatform, hostPlatform, targetPlatform
|
||||
, noSysDirs, gold ? true, bison ? null
|
||||
}:
|
||||
|
||||
let basename = "binutils-2.28"; in
|
||||
|
||||
let inherit (stdenv.lib) optional optionals optionalString; in
|
||||
let
|
||||
version = "2.28";
|
||||
basename = "binutils-${version}";
|
||||
inherit (stdenv.lib) optional optionals optionalString;
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = optionalString (cross != null) "${cross.config}-" + basename;
|
||||
name = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-" + basename;
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnu/binutils/${basename}.tar.bz2";
|
||||
@ -42,9 +46,9 @@ stdenv.mkDerivation rec {
|
||||
|
||||
# TODO: all outputs on all platform
|
||||
outputs = [ "out" ]
|
||||
++ optional (cross == null && !stdenv.isDarwin) "lib" # problems in Darwin stdenv
|
||||
++ optional (targetPlatform == hostPlatform && !hostPlatform.isDarwin) "lib" # problems in Darwin stdenv
|
||||
++ [ "info" ]
|
||||
++ optional (cross == null) "dev";
|
||||
++ optional (targetPlatform == hostPlatform) "dev";
|
||||
|
||||
nativeBuildInputs = [ bison ];
|
||||
buildInputs = [ zlib ];
|
||||
@ -69,14 +73,14 @@ stdenv.mkDerivation rec {
|
||||
|
||||
# As binutils takes part in the stdenv building, we don't want references
|
||||
# to the bootstrap-tools libgcc (as uses to happen on arm/mips)
|
||||
NIX_CFLAGS_COMPILE = if stdenv.isDarwin
|
||||
NIX_CFLAGS_COMPILE = if hostPlatform.isDarwin
|
||||
then "-Wno-string-plus-int -Wno-deprecated-declarations"
|
||||
else "-static-libgcc";
|
||||
|
||||
configureFlags =
|
||||
[ "--enable-shared" "--enable-deterministic-archives" "--disable-werror" ]
|
||||
++ optional (stdenv.system == "mips64el-linux") "--enable-fix-loongson2f-nop"
|
||||
++ optional (cross != null) "--target=${cross.config}" # TODO: make this unconditional
|
||||
++ optional (targetPlatform != hostPlatform) "--target=${targetPlatform.config}" # TODO: make this unconditional
|
||||
++ optionals gold [ "--enable-gold" "--enable-plugins" ]
|
||||
++ optional (stdenv.system == "i686-linux") "--enable-targets=x86_64-linux-gnu";
|
||||
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, perl, buildLinux, ... } @ args:
|
||||
|
||||
import ./generic.nix (args // rec {
|
||||
version = "4.11.3";
|
||||
version = "4.11.4";
|
||||
extraMeta.branch = "4.11";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
|
||||
sha256 = "15xgm2hwp3liy400jgndzlf51bxhg1d6sr0qck6qvk8w5karxzav";
|
||||
sha256 = "144a8ianp6sy057pbhnssg6xs4f3dc5cwwkz8d4q9jzpd87fdm43";
|
||||
};
|
||||
|
||||
kernelPatches = args.kernelPatches;
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, perl, buildLinux, ... } @ args:
|
||||
|
||||
import ./generic.nix (args // rec {
|
||||
version = "4.4.70";
|
||||
version = "4.4.71";
|
||||
extraMeta.branch = "4.4";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
|
||||
sha256 = "1yid0y4ha7mrn9ns037kjsrgbqffcz2c2p27rgn92jh4m5nb7a60";
|
||||
sha256 = "1az64a2qkx4yc0x4snhma9mvgkrgaj66z7pqs1zijcnzsqr5bka4";
|
||||
};
|
||||
|
||||
kernelPatches = args.kernelPatches;
|
||||
|
@ -1,12 +1,12 @@
|
||||
{ stdenv, fetchurl, perl, buildLinux, ... } @ args:
|
||||
|
||||
import ./generic.nix (args // rec {
|
||||
version = "4.9.30";
|
||||
version = "4.9.31";
|
||||
extraMeta.branch = "4.9";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
|
||||
sha256 = "1fqbfcfkmbviqkmww9lc3n81ag71hzjwpdcij9y73kg8bh1fywj2";
|
||||
sha256 = "0mlqr9ngpsg5i2rd2rqmh85y9ga1f3rpfyjv2m82bnhncavdiji8";
|
||||
};
|
||||
|
||||
kernelPatches = args.kernelPatches;
|
||||
|
@ -7,11 +7,11 @@ let inherit (stdenv.lib) optional optionals; in
|
||||
# Note: ATM only the libraries have been tested in nixpkgs.
|
||||
stdenv.mkDerivation rec {
|
||||
name = "knot-dns-${version}";
|
||||
version = "2.5.0";
|
||||
version = "2.5.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://secure.nic.cz/files/knot-dns/knot-${version}.tar.xz";
|
||||
sha256 = "1x293cyp10c84hvcnaqpf2s6kyma08l380858l0isy19n074zaiw";
|
||||
sha256 = "1643q2pj5sjhgv19jp8r2bhvqyk6mmlajdmr6qhjcbhql30cs23c";
|
||||
};
|
||||
|
||||
outputs = [ "bin" "out" "dev" ];
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "silver-searcher-${version}";
|
||||
version = "1.0.2";
|
||||
version = "2.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ggreer";
|
||||
repo = "the_silver_searcher";
|
||||
rev = "${version}";
|
||||
sha256 = "1c504x62yxf4b5k8ixvr97g97nd4kff32flxdjnvxvcrrnany8zx";
|
||||
sha256 = "074ll6l0486ak4ijvfzhwsp6fp8w55x4yjviql5kb8qpisi9ll7y";
|
||||
};
|
||||
|
||||
NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
|
||||
|
@ -1,4 +1,4 @@
|
||||
{ stdenv, fetchFromGitHub, jre, jdk, ant, saxon }:
|
||||
{ stdenv, fetchFromGitHub, jre_headless, jdk, ant, saxon }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "jing-trang-${version}";
|
||||
@ -22,8 +22,8 @@ stdenv.mkDerivation rec {
|
||||
for tool in jing trang; do
|
||||
cat > "$out/bin/$tool" <<EOF
|
||||
#! $SHELL
|
||||
export JAVA_HOME='${jre}'
|
||||
exec '${jre}/bin/java' -jar '$out/share/java/$tool.jar' "\$@"
|
||||
export JAVA_HOME='${jre_headless}'
|
||||
exec '${jre_headless}/bin/java' -jar '$out/share/java/$tool.jar' "\$@"
|
||||
EOF
|
||||
done
|
||||
|
||||
|
@ -5147,7 +5147,6 @@ with pkgs;
|
||||
else null;
|
||||
in wrapGCCCross {
|
||||
gcc = forcedNativePackages.gcc.cc.override {
|
||||
cross = targetPlatform;
|
||||
crossStageStatic = true;
|
||||
langCC = false;
|
||||
libcCross = libcCross1;
|
||||
@ -5170,7 +5169,6 @@ with pkgs;
|
||||
|
||||
gccCrossStageFinal = assert targetPlatform != buildPlatform; wrapGCCCross {
|
||||
gcc = forcedNativePackages.gcc.cc.override {
|
||||
cross = targetPlatform;
|
||||
crossStageStatic = false;
|
||||
|
||||
# Why is this needed?
|
||||
@ -5192,10 +5190,6 @@ with pkgs;
|
||||
# http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43944
|
||||
profiledCompiler = !stdenv.isArm;
|
||||
|
||||
# When building `gcc.crossDrv' (a "Canadian cross", with host == target
|
||||
# and host != build), `cross' must be null but the cross-libc must still
|
||||
# be passed.
|
||||
cross = null;
|
||||
libcCross = if targetPlatform != buildPlatform then libcCross else null;
|
||||
}));
|
||||
|
||||
@ -5205,10 +5199,6 @@ with pkgs;
|
||||
# PGO seems to speed up compilation by gcc by ~10%, see #445 discussion
|
||||
profiledCompiler = with stdenv; (!isSunOS && !isDarwin && (isi686 || isx86_64));
|
||||
|
||||
# When building `gcc.crossDrv' (a "Canadian cross", with host == target
|
||||
# and host != build), `cross' must be null but the cross-libc must still
|
||||
# be passed.
|
||||
cross = null;
|
||||
libcCross = if targetPlatform != buildPlatform then libcCross else null;
|
||||
|
||||
isl = if !stdenv.isDarwin then isl_0_14 else null;
|
||||
@ -5222,10 +5212,6 @@ with pkgs;
|
||||
# PGO seems to speed up compilation by gcc by ~10%, see #445 discussion
|
||||
profiledCompiler = with stdenv; (!isDarwin && (isi686 || isx86_64));
|
||||
|
||||
# When building `gcc.crossDrv' (a "Canadian cross", with host == target
|
||||
# and host != build), `cross' must be null but the cross-libc must still
|
||||
# be passed.
|
||||
cross = null;
|
||||
libcCross = if targetPlatform != buildPlatform then libcCross else null;
|
||||
|
||||
isl = if !stdenv.isDarwin then isl_0_11 else null;
|
||||
@ -5239,10 +5225,6 @@ with pkgs;
|
||||
# PGO seems to speed up compilation by gcc by ~10%, see #445 discussion
|
||||
profiledCompiler = with stdenv; (!isDarwin && (isi686 || isx86_64));
|
||||
|
||||
# When building `gcc.crossDrv' (a "Canadian cross", with host == target
|
||||
# and host != build), `cross' must be null but the cross-libc must still
|
||||
# be passed.
|
||||
cross = null;
|
||||
libcCross = if targetPlatform != buildPlatform then libcCross else null;
|
||||
|
||||
isl = if !stdenv.isDarwin then isl_0_14 else null;
|
||||
@ -5254,10 +5236,6 @@ with pkgs;
|
||||
# PGO seems to speed up compilation by gcc by ~10%, see #445 discussion
|
||||
profiledCompiler = with stdenv; (!isDarwin && (isi686 || isx86_64));
|
||||
|
||||
# When building `gcc.crossDrv' (a "Canadian cross", with host == target
|
||||
# and host != build), `cross' must be null but the cross-libc must still
|
||||
# be passed.
|
||||
cross = null;
|
||||
libcCross = if targetPlatform != buildPlatform then libcCross else null;
|
||||
|
||||
isl = if !stdenv.isDarwin then isl_0_14 else null;
|
||||
@ -5284,10 +5262,6 @@ with pkgs;
|
||||
# PGO seems to speed up compilation by gcc by ~10%, see #445 discussion
|
||||
profiledCompiler = with stdenv; (!isDarwin && (isi686 || isx86_64));
|
||||
|
||||
# When building `gcc.crossDrv' (a "Canadian cross", with host == target
|
||||
# and host != build), `cross' must be null but the cross-libc must still
|
||||
# be passed.
|
||||
cross = null;
|
||||
libcCross = if targetPlatform != buildPlatform then libcCross else null;
|
||||
|
||||
isl = isl_0_17;
|
||||
@ -6537,7 +6511,6 @@ with pkgs;
|
||||
binutils-raw = callPackage ../development/tools/misc/binutils {
|
||||
# FHS sys dirs presumably only have stuff for the build platform
|
||||
noSysDirs = (targetPlatform != buildPlatform) || noSysDirs;
|
||||
cross = if targetPlatform != hostPlatform then targetPlatform else null;
|
||||
};
|
||||
|
||||
binutils_nogold = lowPrio (binutils-raw.override {
|
||||
|
@ -3477,20 +3477,7 @@ in {
|
||||
|
||||
certifi = callPackage ../development/python-modules/certifi { };
|
||||
|
||||
characteristic = buildPythonPackage rec {
|
||||
name = "characteristic-14.1.0";
|
||||
src = pkgs.fetchurl {
|
||||
url = "mirror://pypi/c/characteristic/${name}.tar.gz";
|
||||
sha256 = "91e254948180678dd69e6143202b4686f2fa47cce136936079bb4d9a3b82419d";
|
||||
};
|
||||
|
||||
buildInputs = with self; [ self.pytest ];
|
||||
|
||||
meta = {
|
||||
description = "Python attributes without boilerplate";
|
||||
homepage = https://characteristic.readthedocs.org;
|
||||
};
|
||||
};
|
||||
characteristic = callPackage ../development/python-modules/characteristic { };
|
||||
|
||||
# This package is no longer actively maintained and can be removed if it becomes broken.
|
||||
cgkit = buildPythonPackage rec {
|
||||
@ -6246,6 +6233,14 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
eccodes = if (isPy27) then
|
||||
(pkgs.eccodes.overrideAttrs (oldattrs: {
|
||||
name = "${python.libPrefix}-" + oldattrs.name;
|
||||
})).override {
|
||||
enablePython = true;
|
||||
pythonPackages = self;
|
||||
} else throw "eccodes not supported for interpreter ${python.executable}";
|
||||
|
||||
EditorConfig = buildPythonPackage rec {
|
||||
name = "EditorConfig-${version}";
|
||||
version = "0.12.0";
|
||||
@ -11833,6 +11828,14 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
grib-api = if (isPy27) then
|
||||
(pkgs.grib-api.overrideAttrs (oldattrs: {
|
||||
name = "${python.libPrefix}-" + oldattrs.name;
|
||||
})).override {
|
||||
enablePython = true;
|
||||
pythonPackages = self;
|
||||
} else throw "grib-api not supported for interpreter ${python.executable}";
|
||||
|
||||
gspread = buildPythonPackage rec {
|
||||
version = "0.2.3";
|
||||
name = "gspread-${version}";
|
||||
|
Loading…
Reference in New Issue
Block a user