Merge pull request #77985 from Ma27/drop-old-gcc

gcc: remove versions 4.9 and 5
This commit is contained in:
Maximilian Bosch 2020-01-29 09:37:47 +01:00 committed by GitHub
commit c55809e256
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 362 additions and 1011 deletions

View file

@ -452,6 +452,11 @@ users.users.me =
please refer to the <link xlink:href="https://www.citrix.com/de-de/support/product-lifecycle/milestones/receiver.html">support and maintenance information</link> from upstream.
</para>
</listitem>
<listitem>
<para>
The <literal>gcc5</literal> and <literal>gfortran5</literal> packages have been removed.
</para>
</listitem>
</itemizedlist>
</section>

View file

@ -1,19 +0,0 @@
{ stdenv, fetchurl, pkgconfig, gtk2, libsndfile, portaudio }:
stdenv.mkDerivation rec {
name = "gnaural-1.0.20110606";
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ gtk2 libsndfile portaudio ];
src = fetchurl {
url = "mirror://sourceforge/gnaural/Gnaural/${name}.tar.gz";
sha256 = "0p9rasz1jmxf16vnpj17g3vzdjygcyz3l6nmbq6wr402l61f1vy5";
};
meta = with stdenv.lib;
{ description = "Auditory binaural-beat generator";
homepage = http://gnaural.sourceforge.net/;
license = licenses.gpl2;
maintainers = [ maintainers.ehmry ];
platforms = platforms.linux;
broken = true;
};
}

View file

@ -1,261 +0,0 @@
{ stdenv, callPackage, fetchurl, fetchpatch, fetchgit
, ocaml-ng
, withInternalQemu ? true
, withInternalTraditionalQemu ? true
, withInternalSeabios ? true
, withSeabios ? !withInternalSeabios, seabios ? null
, withInternalOVMF ? false # FIXME: tricky to build
, withOVMF ? false, OVMF
, withLibHVM ? true
# qemu
, udev, pciutils, xorg, SDL, pixman, acl, glusterfs, spice-protocol, usbredir
, alsaLib
, ... } @ args:
assert withInternalSeabios -> !withSeabios;
assert withInternalOVMF -> !withOVMF;
with stdenv.lib;
# Patching XEN? Check the XSAs at
# https://xenbits.xen.org/xsa/
# and try applying all the ones we don't have yet.
let
xsaPatch = { name , sha256 }: (fetchpatch {
url = "https://xenbits.xen.org/xsa/xsa${name}.patch";
inherit sha256;
});
qemuDeps = [
udev pciutils xorg.libX11 SDL pixman acl glusterfs spice-protocol usbredir
alsaLib
];
xsa = import ./xsa-patches.nix { inherit fetchpatch; };
in
callPackage (import ./generic.nix (rec {
version = "4.5.5";
meta = {
knownVulnerabilities = [ "Security support ended in January 2018" ];
};
src = fetchurl {
url = "https://downloads.xenproject.org/release/xen/${version}/xen-${version}.tar.gz";
sha256 = "1y74ms4yc3znf8jc3fgyq94va2y0pf7jh8m9pfqnpgklywqnw8g2";
};
# Sources needed to build tools and firmwares.
xenfiles = optionalAttrs withInternalQemu {
qemu-xen = {
src = fetchgit {
url = https://xenbits.xen.org/git-http/qemu-xen.git;
rev = "refs/tags/qemu-xen-${version}";
sha256 = "014s755slmsc7xzy7qhk9i3kbjr2grxb5yznjp71dl6xxfvnday2";
};
buildInputs = qemuDeps;
patches = [
(xsaPatch {
name = "197-4.5-qemuu";
sha256 = "09gp980qdlfpfmxy0nk7ncyaa024jnrpzx9gpq2kah21xygy5myx";
})
(xsaPatch {
name = "208-qemuu-4.7";
sha256 = "0z9b1whr8rp2riwq7wndzcnd7vw1ckwx0vbk098k2pcflrzppgrb";
})
(xsaPatch {
name = "209-qemuu/0001-display-cirrus-ignore-source-pitch-value-as-needed-i";
sha256 = "1xvxzsrsq05fj6szjlpbgg4ia3cw54dn5g7xzq1n1dymbhv606m0";
})
(xsaPatch {
name = "209-qemuu/0002-cirrus-add-blit_is_unsafe-call-to-cirrus_bitblt_cput";
sha256 = "0avxqs9922qjfsxxlk7bh10432a526j2yyykhags8dk1bzxkpxwv";
})
(xsaPatch {
name = "211-qemuu-4.6";
sha256 = "1g090xs8ca8676vyi78b99z5yjdliw6mxkr521b8kimhf8crx4yg";
})
(xsaPatch {
name = "216-qemuu-4.5";
sha256 = "0nh5akbal93czia1gh1pzvwq7gc4zwiyr1hbyk1m6wwdmqv6ph61";
})
];
meta.description = "Xen's fork of upstream Qemu";
};
} // optionalAttrs withInternalTraditionalQemu {
qemu-xen-traditional = {
src = fetchgit {
url = https://xenbits.xen.org/git-http/qemu-xen-traditional.git;
rev = "refs/tags/xen-${version}";
sha256 = "0n0ycxlf1wgdjkdl8l2w1i0zzssk55dfv67x8i6b2ima01r0k93r";
};
buildInputs = qemuDeps;
patches = [
(xsaPatch {
name = "197-4.5-qemut";
sha256 = "17l7npw00gyhqzzaqamwm9cawfvzm90zh6jjyy95dmqbh7smvy79";
})
(xsaPatch {
name = "199-trad";
sha256 = "0dfw6ciycw9a9s97sbnilnzhipnzmdm9f7xcfngdjfic8cqdcv42";
})
(xsaPatch {
name = "208-qemut";
sha256 = "0960vhchixp60j9h2lawgbgzf6mpcdk440kblk25a37bd6172l54";
})
(xsaPatch {
name = "209-qemut";
sha256 = "1hq8ghfzw6c47pb5vf9ngxwgs8slhbbw6cq7gk0nam44rwvz743r";
})
(xsaPatch {
name = "211-qemut-4.5";
sha256 = "1z3phabvqmxv4b5923fx63hwdg4v1fnl15zbl88873ybqn0hp50f";
})
];
postPatch = ''
substituteInPlace xen-hooks.mak \
--replace /usr/include/pci ${pciutils}/include/pci
'';
meta.description = "Xen's fork of upstream Qemu that uses old device model";
};
} // optionalAttrs withInternalSeabios {
"firmware/seabios-dir-remote" = {
src = fetchgit {
url = https://xenbits.xen.org/git-http/seabios.git;
rev = "e51488c5f8800a52ac5c8da7a31b85cca5cc95d2";
#rev = "rel-1.7.5";
sha256 = "0jk54ybhmw97pzyhpm6jr2x99f702kbn0ipxv5qxcbynflgdazyb";
};
patches = [ ./0000-qemu-seabios-enable-ATA_DMA.patch ];
meta.description = "Xen's fork of Seabios";
};
} // optionalAttrs withInternalOVMF {
"firmware/ovmf-dir-remote" = {
src = fetchgit {
url = https://xenbits.xen.org/git-http/ovmf.git;
rev = "cb9a7ebabcd6b8a49dc0854b2f9592d732b5afbd";
sha256 = "07zmdj90zjrzip74fvd4ss8n8njk6cim85s58mc6snxmqqv7gmcq";
};
meta.description = "Xen's fork of OVMF";
};
} // {
# TODO: patch Xen to make this optional?
"firmware/etherboot/ipxe.git" = {
src = fetchgit {
url = https://git.ipxe.org/ipxe.git;
rev = "9a93db3f0947484e30e753bbd61a10b17336e20e";
sha256 = "1ga3h1b34q0cl9azj7j9nswn7mfcs3cgfjdihrm5zkp2xw2hpvr6";
};
meta.description = "Xen's fork of iPXE";
};
} // optionalAttrs withLibHVM {
xen-libhvm-dir-remote = {
src = fetchgit {
name = "xen-libhvm";
url = https://github.com/ts468/xen-libhvm;
rev = "442dcc4f6f4e374a51e4613532468bd6b48bdf63";
sha256 = "9ba97c39a00a54c154785716aa06691d312c99be498ebbc00dc3769968178ba8";
};
buildPhase = ''
make
cd biospt
cc -Wall -g -D_LINUX -Wstrict-prototypes biospt.c -o biospt -I../libhvm -L../libhvm -lxenhvm
'';
installPhase = ''
make install
cp biospt/biospt $out/bin/
'';
meta = {
description = ''
Helper library for reading ACPI and SMBIOS firmware values
from the host system for use with the HVM guest firmware
pass-through feature in Xen'';
license = licenses.bsd2;
};
};
};
configureFlags = []
++ optional (!withInternalQemu) "--with-system-qemu" # use qemu from PATH
++ optional (withInternalTraditionalQemu) "--enable-qemu-traditional"
++ optional (!withInternalTraditionalQemu) "--disable-qemu-traditional"
++ optional (withSeabios) "--with-system-seabios=${seabios}"
++ optional (!withInternalSeabios && !withSeabios) "--disable-seabios"
++ optional (withOVMF) "--with-system-ovmf=${OVMF.fd}/FV/OVMF.fd"
++ optional (withInternalOVMF) "--enable-ovmf";
patches = with xsa; flatten [
./0001-libxl-Spice-image-compression-setting-support-for-up.patch
./0002-libxl-Spice-streaming-video-setting-support-for-upst.patch
./0003-Add-qxl-vga-interface-support-for-upstream-qem.patch
XSA_190
XSA_191
XSA_192
XSA_193
XSA_195
XSA_196
XSA_198
XSA_200
XSA_202_45
XSA_204_45
XSA_206_45
XSA_207
XSA_212
XSA_213_45
XSA_214
XSA_215
XSA_217_45
XSA_218_45
XSA_219_45
XSA_220_45
XSA_221
XSA_222_45
XSA_223
XSA_224_45
XSA_227_45
XSA_230
XSA_231_45
XSA_232
XSA_233
XSA_234_45
XSA_235_45
XSA_236_45
XSA_237_45
XSA_238_45
XSA_239_45
XSA_240_45
XSA_241
XSA_242
XSA_243_45
XSA_244_45
XSA_245
XSA_246_45
XSA_247_45
XSA_248_45
XSA_249
XSA_250_45
XSA_251_45
];
# Fix build on Glibc 2.24.
NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-declarations";
postPatch = ''
# Avoid a glibc >= 2.25 deprecation warnings that get fatal via -Werror.
sed 1i'#include <sys/sysmacros.h>' \
-i tools/blktap2/control/tap-ctl-allocate.c \
-i tools/libxl/libxl_device.c
'';
passthru = {
qemu-system-i386 = if withInternalQemu
then "lib/xen/bin/qemu-system-i386"
else throw "this xen has no qemu builtin";
};
})) ({ ocamlPackages = ocaml-ng.ocamlPackages_4_02; } // args)

View file

@ -1,62 +1,11 @@
{ callPackage
, stdenv, overrideCC, gcc49
, stdenv, overrideCC
}:
# TODO(@oxij) on new Xen version: generalize this to generate [vanilla slim
# light] for each ./<version>.nix.
rec {
xen_4_5-vanilla = callPackage ./4.5.nix {
# At the very least included seabios and etherboot need gcc49,
# so we have to build all of it with gcc49.
stdenv = overrideCC stdenv gcc49;
meta = {
description = "vanilla";
longDescription = ''
Vanilla version of Xen. Uses forks of Qemu and Seabios bundled
with Xen. This gives vanilla experince, but wastes space and
build time: typical NixOS setup that runs lots of VMs will
build three different versions of Qemu when using this (two
forks and upstream).
'';
};
};
xen_4_5-slim = xen_4_5-vanilla.override {
withInternalQemu = false;
withInternalTraditionalQemu = true;
withInternalSeabios = false;
withSeabios = true;
meta = {
description = "slim";
longDescription = ''
Slimmed-down version of Xen that reuses nixpkgs packages as
much as possible. Different parts may get out of sync, but
this builds faster and uses less space than vanilla. Use with
`qemu_xen` from nixpkgs.
'';
};
};
xen_4_5-light = xen_4_5-vanilla.override {
withInternalQemu = false;
withInternalTraditionalQemu = false;
withInternalSeabios = false;
withSeabios = true;
meta = {
description = "light";
longDescription = ''
Slimmed-down version of Xen without `qemu-traditional` (you
don't need it if you don't know what it is). Use with
`qemu_xen-light` from nixpkgs.
'';
};
};
xen_4_8-vanilla = callPackage ./4.8.nix {
meta = {
description = "vanilla";

View file

@ -3,6 +3,7 @@
, fltk, gtk
, libX11, libXext, libICE
, dbus
, fetchpatch
}:
stdenv.mkDerivation rec {
@ -16,6 +17,13 @@ stdenv.mkDerivation rec {
sha256 = "1j7vkx1ig4kzwffdxnkqv3kld9qi3sam4w2nhq18waqjsi8xl5gz";
};
patches = [
(fetchpatch {
url = "https://salsa.debian.org/debian/afterstep/raw/master/debian/patches/44-Fix-build-with-gcc-5.patch";
sha256 = "1vipy2lzzd2gqrsqk85pwgcdhargy815fxlbn57hsm45zglc3lj4";
})
];
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ libjpeg libtiff libpng freetype fltk gtk libX11 libXext libICE dbus dbus ];

View file

@ -2,8 +2,6 @@
, callPackage
, fetchurl
, gcc48
, gcc49
, gcc5
, gcc6
, gcc7
}:
@ -29,14 +27,14 @@ in rec {
version = "7.0.28";
url = "http://developer.download.nvidia.com/compute/cuda/7_0/Prod/local_installers/cuda_7.0.28_linux.run";
sha256 = "1km5hpiimx11jcazg0h3mjzk220klwahs2vfqhjavpds5ff2wafi";
gcc = gcc49;
gcc = gcc6;
};
cudatoolkit_7_5 = common {
version = "7.5.18";
url = "http://developer.download.nvidia.com/compute/cuda/7.5/Prod/local_installers/cuda_7.5.18_linux.run";
sha256 = "1v2ylzp34ijyhcxyh5p6i0cwawwbbdhni2l5l4qm21s1cx9ish88";
gcc = gcc49;
gcc = gcc6;
};
cudatoolkit_8 = common {
@ -49,7 +47,7 @@ in rec {
sha256 = "1iaz5rrsnsb1p99qiqvxn6j3ksc7ry8xlr397kqcjzxqbljbqn9d";
})
];
gcc = gcc5;
gcc = gcc6;
};
cudatoolkit_9_0 = common {

View file

@ -61,7 +61,13 @@ let majorVersion = "4";
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
patches =
[ ../use-source-date-epoch.patch ../parallel-bconfig.patch ./parallel-strsignal.patch ]
[ ../use-source-date-epoch.patch ../parallel-bconfig.patch ./parallel-strsignal.patch
(fetchpatch {
name = "avoid-ustat-glibc-2.28.patch";
url = "https://gitweb.gentoo.org/proj/gcc-patches.git/plain/4.9.4/gentoo/100_all_avoid-ustat-glibc-2.28.patch?id=55fcb515620a8f7d3bb77eba938aa0fcf0d67c96";
sha256 = "0b32sb4psv5lq0ij9fwhi1b4pjbwdjnv24nqprsk14dsc6xmi1g0";
})
]
++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
++ optional noSysDirs ../no-sys-dirs.patch
++ optional langFortran ../gfortran-driving.patch

View file

@ -1,328 +0,0 @@
{ stdenv, targetPackages, fetchurl, fetchpatch, noSysDirs
, langC ? true, langCC ? true, langFortran ? false
, langObjC ? stdenv.targetPlatform.isDarwin
, langObjCpp ? stdenv.targetPlatform.isDarwin
, langJava ? false
, langGo ? false
, profiledCompiler ? false
, staticCompiler ? false
, enableShared ? true
, enableLTO ? true
, texinfo ? null
, perl ? null # optional, for texi2pod (then pod2man); required for Java
, gmp, mpfr, libmpc, gettext, which
, libelf # optional, for link-time optimizations (LTO)
, isl ? null # optional, for the Graphite optimization framework.
, zlib ? null, boehmgc ? null
, zip ? null, unzip ? null, pkgconfig ? null
, gtk2 ? null, libart_lgpl ? null
, libX11 ? null, libXt ? null, libSM ? null, libICE ? null, libXtst ? null
, libXrender ? null, xorgproto ? null
, libXrandr ? null, libXi ? null
, x11Support ? langJava
, enableMultilib ? false
, enablePlugin ? stdenv.hostPlatform == stdenv.buildPlatform # Whether to support user-supplied plug-ins
, name ? "gcc"
, libcCross ? null
, threadsCross ? null # for MinGW
, crossStageStatic ? false
, # Strip kills static libs of other archs (hence no cross)
stripped ? stdenv.hostPlatform == stdenv.buildPlatform
&& stdenv.targetPlatform == stdenv.hostPlatform
, gnused ? null
, cloog # unused; just for compat with gcc4, as we override the parameter on some places
, buildPackages
}:
assert langJava -> zip != null && unzip != null
&& zlib != null && boehmgc != null
&& perl != null; # for `--enable-java-home'
# LTO needs libelf and zlib.
assert libelf != null -> zlib != null;
# Make sure we get GNU sed.
assert stdenv.hostPlatform.isDarwin -> gnused != null;
# The go frontend is written in c++
assert langGo -> langCC;
# threadsCross is just for MinGW
assert threadsCross != null -> stdenv.targetPlatform.isWindows;
with stdenv.lib;
with builtins;
let majorVersion = "5";
version = "${majorVersion}.5.0";
inherit (stdenv) buildPlatform hostPlatform targetPlatform;
patches =
[ ../use-source-date-epoch.patch ]
++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
++ optional noSysDirs ../no-sys-dirs.patch
++ optional langFortran ../gfortran-driving.patch
++ optional (targetPlatform.libc == "musl") ../libgomp-dont-force-initial-exec.patch
++ optional stdenv.hostPlatform.isMusl (fetchpatch {
url = https://raw.githubusercontent.com/richfelker/musl-cross-make/e84b1bd1fc12a3def33111ca6df522cd6e5ec361/patches/gcc-5.3.0/0001-musl.diff;
sha256 = "0pppbf8myi2kjhm3z3479ihn1cm60kycfv60gj8yy1bs0pl1qcfm";
})
++ optional (!crossStageStatic && targetPlatform.isMinGW) (fetchpatch {
url = "https://raw.githubusercontent.com/lhmouse/MINGW-packages/${import ../common/mfcgthreads-patches-repo.nix}/mingw-w64-gcc-git/9000-gcc-${majorVersion}-branch-Added-mcf-thread-model-support-from-mcfgthread.patch";
sha256 = "074bl5n27d1ksa31pvzj4vd8xd46r118k0w94gdv3s1vydg7mah0";
});
javaEcj = fetchurl {
# The `$(top_srcdir)/ecj.jar' file is automatically picked up at
# `configure' time.
# XXX: Eventually we might want to take it from upstream.
url = "ftp://sourceware.org/pub/java/ecj-4.3.jar";
sha256 = "0jz7hvc0s6iydmhgh5h2m15yza7p2rlss2vkif30vm9y77m97qcx";
};
# Antlr (optional) allows the Java `gjdoc' tool to be built. We want a
# binary distribution here to allow the whole chain to be bootstrapped.
javaAntlr = fetchurl {
url = https://www.antlr.org/download/antlr-4.4-complete.jar;
sha256 = "02lda2imivsvsis8rnzmbrbp8rh1kb8vmq4i67pqhkwz7lf8y6dz";
};
xlibs = [
libX11 libXt libSM libICE libXtst libXrender libXrandr libXi
xorgproto
];
javaAwtGtk = langJava && x11Support;
/* Cross-gcc settings (build == host != target) */
crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
stageNameAddon = if crossStageStatic then "stage-static" else "stage-final";
crossNameAddon = optionalString (targetPlatform != hostPlatform) "${targetPlatform.config}-${stageNameAddon}-";
in
# We need all these X libraries when building AWT with GTK.
assert x11Support -> (filter (x: x == null) ([ gtk2 libart_lgpl ] ++ xlibs)) == [];
stdenv.mkDerivation ({
pname = "${crossNameAddon}${name}${if stripped then "" else "-debug"}";
inherit version;
builder = ../builder.sh;
src = fetchurl {
url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.xz";
sha256 = "11zd1hgzkli3b2v70qsm2hyqppngd4616qc96lmm9zl2kl9yl32k";
};
inherit patches;
outputs = [ "out" "lib" "man" "info" ];
setOutputFlags = false;
NIX_NO_SELF_RPATH = true;
libc_dev = stdenv.cc.libc_dev;
hardeningDisable = [ "format" "pie" ];
# This should kill all the stdinc frameworks that gcc and friends like to
# insert into default search paths.
prePatch = stdenv.lib.optionalString hostPlatform.isDarwin ''
substituteInPlace gcc/config/darwin-c.c \
--replace 'if (stdinc)' 'if (0)'
substituteInPlace libgcc/config/t-slibgcc-darwin \
--replace "-install_name @shlib_slibdir@/\$(SHLIB_INSTALL_NAME)" "-install_name $lib/lib/\$(SHLIB_INSTALL_NAME)"
substituteInPlace libgfortran/configure \
--replace "-install_name \\\$rpath/\\\$soname" "-install_name $lib/lib/\\\$soname"
'';
postPatch =
if targetPlatform != hostPlatform || stdenv.cc.libc != null then
# On NixOS, use the right path to the dynamic linker instead of
# `/lib/ld*.so'.
let
libc = if libcCross != null then libcCross else stdenv.cc.libc;
in
(
'' echo "fixing the \`GLIBC_DYNAMIC_LINKER', \`UCLIBC_DYNAMIC_LINKER', and \`MUSL_DYNAMIC_LINKER' macros..."
for header in "gcc/config/"*-gnu.h "gcc/config/"*"/"*.h
do
grep -q _DYNAMIC_LINKER "$header" || continue
echo " fixing \`$header'..."
sed -i "$header" \
-e 's|define[[:blank:]]*\([UCG]\+\)LIBC_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define \1LIBC_DYNAMIC_LINKER\2 "${libc.out}\3"|g' \
-e 's|define[[:blank:]]*MUSL_DYNAMIC_LINKER\([0-9]*\)[[:blank:]]"\([^\"]\+\)"$|define MUSL_DYNAMIC_LINKER\1 "${libc.out}\2"|g'
done
''
+ stdenv.lib.optionalString (targetPlatform.libc == "musl")
''
sed -i gcc/config/linux.h -e '1i#undef LOCAL_INCLUDE_DIR'
''
)
else null;
inherit noSysDirs staticCompiler langJava crossStageStatic
libcCross crossMingw;
depsBuildBuild = [ buildPackages.stdenv.cc ];
nativeBuildInputs = [ texinfo which gettext ]
++ (optional (perl != null) perl)
++ (optional javaAwtGtk pkgconfig);
# For building runtime libs
depsBuildTarget =
if hostPlatform == buildPlatform then [
targetPackages.stdenv.cc.bintools # newly-built gcc will be used
] else assert targetPlatform == hostPlatform; [ # build != host == target
stdenv.cc
];
buildInputs = [
gmp mpfr libmpc libelf
targetPackages.stdenv.cc.bintools # For linking code at run-time
] ++ (optional (isl != null) isl)
++ (optional (zlib != null) zlib)
++ (optionals langJava [ boehmgc zip unzip ])
++ (optionals javaAwtGtk ([ gtk2 libart_lgpl ] ++ xlibs))
# 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 hostPlatform.isDarwin gnused)
;
depsTargetTarget = optional (!crossStageStatic && threadsCross != null) threadsCross;
NIX_LDFLAGS = stdenv.lib.optionalString hostPlatform.isSunOS "-lm -ldl";
preConfigure = import ../common/pre-configure.nix {
inherit (stdenv) lib;
inherit version hostPlatform langJava langGo;
};
dontDisableStatic = true;
# TODO(@Ericson2314): Always pass "--target" and always prefix.
configurePlatforms = [ "build" "host" ] ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
configureFlags = import ../common/configure-flags.nix {
inherit
stdenv
targetPackages
crossStageStatic libcCross
version
gmp mpfr libmpc libelf isl
enableLTO
enableMultilib
enablePlugin
enableShared
langC
langCC
langFortran
langJava javaAwtGtk javaAntlr javaEcj
langGo
langObjC
langObjCpp
;
};
targetConfig = if targetPlatform != hostPlatform then targetPlatform.config else null;
buildFlags = optional
(targetPlatform == hostPlatform && hostPlatform == buildPlatform)
(if profiledCompiler then "profiledbootstrap" else "bootstrap");
dontStrip = !stripped;
doCheck = false; # requires a lot of tools, causes a dependency cycle for stdenv
installTargets = optional stripped "install-strip";
# https://gcc.gnu.org/install/specific.html#x86-64-x-solaris210
${if hostPlatform.system == "x86_64-solaris" then "CC" else null} = "gcc -m64";
# Setting $CPATH and $LIBRARY_PATH to make sure both `gcc' and `xgcc' find the
# library headers and binaries, regarless of the language being compiled.
#
# Note: When building the Java AWT GTK peer, the build system doesn't honor
# `--with-gmp' et al., e.g., when building
# `libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c', so we just add
# them to $CPATH and $LIBRARY_PATH in this case.
#
# Likewise, the LTO code doesn't find zlib.
#
# Cross-compiling, we need gcc not to read ./specs in order to build the g++
# compiler (after the specs for the cross-gcc are created). Having
# LIBRARY_PATH= makes gcc read the specs from ., and the build breaks.
CPATH = optionals (targetPlatform == hostPlatform) (makeSearchPathOutput "dev" "include" ([]
++ optional (zlib != null) zlib
++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ]
));
LIBRARY_PATH = optionals (targetPlatform == hostPlatform) (makeLibraryPath ([]
++ optional (zlib != null) zlib
++ optional langJava boehmgc
++ optionals javaAwtGtk xlibs
++ optionals javaAwtGtk [ gmp mpfr ]
));
inherit
(import ../common/extra-target-flags.nix {
inherit stdenv crossStageStatic libcCross threadsCross;
})
EXTRA_TARGET_FLAGS
EXTRA_TARGET_LDFLAGS
;
passthru = {
inherit langC langCC langObjC langObjCpp langFortran langGo version;
isGNU = true;
};
enableParallelBuilding = true;
inherit enableMultilib;
inherit (stdenv) is64bit;
meta = {
homepage = https://gcc.gnu.org/;
license = stdenv.lib.licenses.gpl3Plus; # runtime support libraries are typically LGPLv3+
description = "GNU Compiler Collection, version ${version}"
+ (if stripped then "" else " (with debugging info)");
longDescription = ''
The GNU Compiler Collection includes compiler front ends for C, C++,
Objective-C, Fortran, OpenMP for C/C++/Fortran, Java, and Ada, as well
as libraries for these languages (libstdc++, libgcj, libgomp,...).
GCC development is a part of the GNU Project, aiming to improve the
compiler used in the GNU system including the GNU/Linux variant.
'';
maintainers = with stdenv.lib.maintainers; [ peti ];
platforms =
stdenv.lib.platforms.linux ++
stdenv.lib.platforms.freebsd ++
stdenv.lib.platforms.illumos ++
stdenv.lib.platforms.darwin;
badPlatforms = [ "x86_64-darwin" ];
};
}
// optionalAttrs (targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt" && crossStageStatic) {
makeFlags = [ "all-gcc" "all-target-libgcc" ];
installTargets = "install-gcc install-target-libgcc";
}
// optionalAttrs (enableMultilib) { dontMoveLib64 = true; }
)

View file

@ -1,13 +1,16 @@
{ stdenv, fetchurl }:
{ stdenv, fetchurl, zlib }:
stdenv.mkDerivation {
name = "picat-1.9-4";
pname = "picat";
version = "2.8-2";
src = fetchurl {
url = http://picat-lang.org/download/picat19_src.tar.gz;
sha256 = "0wvl95gf4pjs93632g4wi0mw1glzzhjp9g4xg93ll2zxggbxibli";
url = http://picat-lang.org/download/picat28_src.tar.gz;
sha256 = "10hf2fxxbpq28gi39icr8c9wafdiy9ddfkk6l4rx7kkqyrdi7n85";
};
buildInputs = [ zlib ];
ARCH = if stdenv.hostPlatform.system == "i686-linux" then "linux32"
else if stdenv.hostPlatform.system == "x86_64-linux" then "linux64"
else throw "Unsupported system";
@ -16,12 +19,12 @@ stdenv.mkDerivation {
buildPhase = ''
cd emu
make -f Makefile.picat.$ARCH
make -f Makefile.$ARCH
'';
installPhase = ''
mkdir -p $out/bin
cp picat_$ARCH $out/bin/picat
cp picat $out/bin/picat
'';
meta = {

View file

@ -1,86 +0,0 @@
# This old version of V8 is still needed for the R V8 module
{ stdenv, fetchFromGitHub, gyp, readline, python, which, icu, ... }:
assert readline != null;
with stdenv.lib;
let
version = "3.14.5.10";
sha256 = "08vhl84166x13b3cbx8y0g99yqx772zd33gawsa1nxqkyrykql6k";
arch = if stdenv.is64bit then "x64" else "ia32";
in
stdenv.mkDerivation {
pname = "v8";
inherit version;
src = fetchFromGitHub {
owner = "v8";
repo = "v8";
rev = version;
inherit sha256;
};
patchPhase = ''
sed -i 's,#!/usr/bin/env python,#!${python}/bin/python,' build/gyp_v8
sed -i 's,#!/usr/bin/python,#!${python}/bin/python,' build/gyp_v8
'';
configurePhase = ''
PYTHONPATH="tools/generate_shim_headers:$PYTHONPATH" \
PYTHONPATH="$(toPythonPath ${gyp}):$PYTHONPATH" \
build/gyp_v8 \
-f make \
--generator-output="out" \
-Dflock_index=0 \
-Dv8_enable_i18n_support=1 \
-Duse_system_icu=1 \
-Dconsole=readline \
-Dcomponent=shared_library \
-Dv8_target_arch=${arch}
'';
nativeBuildInputs = [ which ];
buildInputs = [ readline python icu ];
# http://code.google.com/p/v8/issues/detail?id=2149
NIX_CFLAGS_COMPILE = concatStringsSep " " [
"-Wno-error=strict-overflow"
"-Wno-unused-local-typedefs"
"-Wno-aggressive-loop-optimizations"
];
buildFlags = [
"LINK=g++"
"-C out"
"builddir=$(CURDIR)/Release"
"BUILDTYPE=Release"
];
postPatch = stdenv.lib.optionalString (!stdenv.cc.isClang) ''
sed -i build/standalone.gyp -e 's,-Wno-format-pedantic,,g'
'';
enableParallelBuilding = true;
installPhase = ''
install -vD out/Release/d8 "$out/bin/d8"
${if stdenv.hostPlatform.system == "x86_64-darwin" then ''
install -vD out/Release/lib.target/libv8.dylib "$out/lib/libv8.dylib"
'' else ''
install -vD out/Release/lib.target/libv8.so "$out/lib/libv8.so"
''}
cp -vr include "$out/"
'';
postFixup = if stdenv.isDarwin then ''
install_name_tool -change /usr/local/lib/libv8.dylib $out/lib/libv8.dylib -change /usr/lib/libgcc_s.1.dylib ${stdenv.cc.cc.lib}/lib/libgcc_s.1.dylib $out/bin/d8
install_name_tool -id $out/lib/libv8.dylib -change /usr/lib/libgcc_s.1.dylib ${stdenv.cc.cc.lib}/lib/libgcc_s.1.dylib $out/lib/libv8.dylib
'' else null;
meta = with stdenv.lib; {
description = "Google's open source JavaScript engine";
platforms = [ "x86_64-linux" "i686-linux" ];
license = licenses.bsd3;
};
}

File diff suppressed because it is too large Load diff

View file

@ -363,7 +363,7 @@ let
topicmodels = [ pkgs.gsl_1 ];
udunits2 = [ pkgs.udunits pkgs.expat ];
units = [ pkgs.udunits ];
V8 = [ pkgs.v8_3_14 ];
V8 = [ pkgs.v8 ];
WhopGenome = [ pkgs.zlib.dev ];
XBRL = [ pkgs.zlib pkgs.libxml2.dev ];
xml2 = [ pkgs.libxml2.dev ] ++ lib.optionals stdenv.isDarwin [ pkgs.perl ];
@ -849,9 +849,14 @@ let
});
V8 = old.V8.overrideDerivation (attrs: {
postPatch = ''
substituteInPlace configure \
--replace " -lv8_libplatform" ""
'';
preConfigure = ''
export INCLUDE_DIR=${pkgs.v8_3_14}/include
export LIB_DIR=${pkgs.v8_3_14}/lib
export INCLUDE_DIR=${pkgs.v8}/include
export LIB_DIR=${pkgs.v8}/lib
patchShebangs configure
'';
});

View file

@ -1,24 +0,0 @@
{ stdenv, fetchurl, pkgconfig, gcc, perl, libusb }:
stdenv.mkDerivation rec {
name="avarice-2.13";
src = fetchurl {
url = "mirror://sourceforge/avarice/${name}.tar.bz2";
sha256 = "0jhh1h1k5b41v2ycq8kn43nkrkh0b9l7xjmw38rak871g3z3hix1";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ gcc perl libusb ];
meta = {
license = stdenv.lib.licenses.gpl2;
description = "Translator between GDB's remote debug protocol and the AVR JTAG ICE protocol";
homepage = https://sourceforge.net/projects/avarice/files/avarice/;
maintainers = [ stdenv.lib.maintainers.smironov ];
platforms = stdenv.lib.platforms.linux;
broken = true; # 2018-04-10
};
}

View file

@ -85,6 +85,7 @@ stdenv.mkDerivation rec {
license = ["IDPL" "Interbase-1.0"];
maintainers = [stdenv.lib.maintainers.marcweber];
platforms = stdenv.lib.platforms.linux;
broken = true;
};
}

View file

@ -1,4 +1,4 @@
{ stdenv, stdenv49, gccStdenv, llvmPackages
{ gcc6Stdenv, stdenv, gccStdenv, llvmPackages
, lib, fetchurl, fetchpatch, fetchFromGitHub
, cmake, ninja, which, findutils, m4, gawk
@ -37,6 +37,7 @@ in with builtins; {
patches = [
./patches/ldflags-5.1.patch
./patches/fix-scm-version.patch
./patches/gcc-fixes.patch
python3-six-patch
python3-print-patch
];
@ -50,6 +51,7 @@ in with builtins; {
patches = [
./patches/ldflags-5.2.patch
./patches/fix-scm-version.patch
./patches/gcc-fixes.patch
python3-six-patch
python3-print-patch
];

View file

@ -0,0 +1,117 @@
diff --git a/fdbrpc/ContinuousSample.h b/fdbrpc/ContinuousSample.h
index 54ff1b1..577c228 100644
--- a/fdbrpc/ContinuousSample.h
+++ b/fdbrpc/ContinuousSample.h
@@ -26,6 +26,7 @@
#include "flow/IRandom.h"
#include <vector>
#include <algorithm>
+#include <cmath>
template <class T>
class ContinuousSample {
diff --git a/fdbrpc/Smoother.h b/fdbrpc/Smoother.h
index 3ed8e6e..fb46947 100644
--- a/fdbrpc/Smoother.h
+++ b/fdbrpc/Smoother.h
@@ -23,6 +23,7 @@
#pragma once
#include "flow/flow.h"
+#include <cmath>
struct Smoother {
// Times (t) are expected to be nondecreasing
@@ -90,4 +91,4 @@ struct TimerSmoother {
double time, total, estimate;
};
-#endif
\ No newline at end of file
+#endif
diff --git a/fdbrpc/libcoroutine/Coro.c b/fdbrpc/libcoroutine/Coro.c
index cbfdc8f..9993cee 100644
--- a/fdbrpc/libcoroutine/Coro.c
+++ b/fdbrpc/libcoroutine/Coro.c
@@ -66,6 +66,8 @@ VALGRIND_STACK_DEREGISTER((coro)->valgrindStackId)
#define STACK_DEREGISTER(coro)
#endif
+#pragma GCC diagnostic ignored "-Wreturn-local-addr"
+
// Define outside
extern intptr_t g_stackYieldLimit;
diff --git a/fdbserver/Knobs.cpp b/fdbserver/Knobs.cpp
index 819c513..acfbfe7 100644
--- a/fdbserver/Knobs.cpp
+++ b/fdbserver/Knobs.cpp
@@ -20,6 +20,7 @@
#include "Knobs.h"
#include "fdbrpc/Locality.h"
+#include <cmath>
ServerKnobs const* SERVER_KNOBS = new ServerKnobs();
diff --git a/flow/Knobs.cpp b/flow/Knobs.cpp
index b485a84..82541d4 100644
--- a/flow/Knobs.cpp
+++ b/flow/Knobs.cpp
@@ -20,6 +20,7 @@
#include "Knobs.h"
#include "flow/flow.h"
+#include <cmath>
FlowKnobs const* FLOW_KNOBS = new FlowKnobs();
diff --git a/flow/Platform.cpp b/flow/Platform.cpp
index 69dac88..69b86d4 100644
--- a/flow/Platform.cpp
+++ b/flow/Platform.cpp
@@ -623,7 +623,7 @@ void getDiskStatistics(std::string const& directory, uint64_t& currentIOs, uint6
unsigned int minorId;
disk_stream >> majorId;
disk_stream >> minorId;
- if(majorId == (unsigned int) major(buf.st_dev) && minorId == (unsigned int) minor(buf.st_dev)) {
+ if(majorId == (unsigned int) gnu_dev_major(buf.st_dev) && minorId == (unsigned int) gnu_dev_minor(buf.st_dev)) {
std::string ignore;
uint64_t rd_ios; /* # of reads completed */
// This is the total number of reads completed successfully.
diff --git a/flow/TDMetric.actor.h b/flow/TDMetric.actor.h
index 5421b83..711a960 100755
--- a/flow/TDMetric.actor.h
+++ b/flow/TDMetric.actor.h
@@ -36,6 +36,7 @@
#include "CompressedInt.h"
#include <algorithm>
#include <functional>
+#include <cmath>
struct MetricNameRef {
MetricNameRef() {}
diff --git a/flow/flow.h b/flow/flow.h
index 0c220af..f685fbc 100644
--- a/flow/flow.h
+++ b/flow/flow.h
@@ -248,19 +248,6 @@ public:
}
}
- bool operator == (ErrorOr const& o) const {
- return error == o.error && (!present() || get() == o.get());
- }
- bool operator != (ErrorOr const& o) const {
- return !(*this == o);
- }
-
- bool operator < (ErrorOr const& o) const {
- if (error != o.error) return error < o.error;
- if (!present()) return false;
- return get() < o.get();
- }
-
bool isError() const { return error.code() != invalid_error_code; }
bool isError(int code) const { return error.code() == code; }
Error getError() const { ASSERT(isError()); return error; }

View file

@ -1,7 +1,7 @@
# This builder is for FoundationDB's original, somewhat strange visual studio +
# make build system. In FoundationDB 6.1 and later, there's a new CMake system
# (which will eventually become the default version.)
{ stdenv49, lib, fetchurl, fetchFromGitHub
{ gcc6Stdenv, lib, fetchurl, fetchFromGitHub
, which, findutils, m4, gawk
, python, openjdk, mono, libressl
@ -12,7 +12,7 @@ let
# hysterical raisins dictate a version of boost this old. however,
# we luckily do not need to build anything, we just need the header
# files.
boost152 = stdenv49.mkDerivation {
boost152 = gcc6Stdenv.mkDerivation {
name = "boost-headers-1.52.0";
src = fetchurl {
@ -33,10 +33,6 @@ let
# the revision can be inferred from the fdb tagging policy
, rev ? "refs/tags/${version}"
# in theory newer versions of fdb support newer compilers, but they
# don't :( maybe one day
, stdenv ? stdenv49
# in theory newer versions of fdb support newer boost versions, but they
# don't :( maybe one day
, boost ? boost152
@ -45,7 +41,7 @@ let
, officialRelease ? true
, patches ? []
}: stdenv.mkDerivation {
}: gcc6Stdenv.mkDerivation {
pname = "foundationdb";
inherit version;
@ -143,7 +139,7 @@ let
outputs = [ "out" "lib" "dev" "pythonsrc" ];
meta = with stdenv.lib; {
meta = with gcc6Stdenv.lib; {
description = "Open source, distributed, transactional key-value store";
homepage = https://www.foundationdb.org;
license = licenses.asl20;

View file

@ -3432,9 +3432,7 @@ in
fusuma = callPackage ../tools/inputmethods/fusuma {};
fdbPackages = dontRecurseIntoAttrs (callPackage ../servers/foundationdb {
stdenv49 = gcc49Stdenv;
});
fdbPackages = dontRecurseIntoAttrs (callPackage ../servers/foundationdb { });
inherit (fdbPackages)
foundationdb51
@ -3620,10 +3618,6 @@ in
gnash = callPackage ../misc/gnash { };
gnaural = callPackage ../applications/audio/gnaural {
stdenv = gcc49Stdenv;
};
gnirehtet = callPackage ../tools/networking/gnirehtet { };
gnome-builder = callPackage ../applications/editors/gnome-builder { };
@ -7769,7 +7763,6 @@ in
avian = callPackage ../development/compilers/avian {
inherit (darwin.apple_sdk.frameworks) CoreServices Foundation;
stdenv = if stdenv.cc.isGNU then gcc49Stdenv else stdenv;
};
bigloo = callPackage ../development/compilers/bigloo { };
@ -7948,8 +7941,6 @@ in
extraBuildInputs = lib.optional stdenv.hostPlatform.isDarwin clang.cc;
};
gcc49Stdenv = overrideCC gccStdenv buildPackages.gcc49;
gcc5Stdenv = overrideCC gccStdenv buildPackages.gcc5;
gcc6Stdenv = overrideCC gccStdenv buildPackages.gcc6;
gcc7Stdenv = overrideCC gccStdenv buildPackages.gcc7;
gcc8Stdenv = overrideCC gccStdenv buildPackages.gcc8;
@ -8067,18 +8058,6 @@ in
cloog = if !stdenv.isDarwin then cloog_0_18_0 else null;
}));
gcc5 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/5 {
inherit noSysDirs;
# PGO seems to speed up compilation by gcc by ~10%, see #445 discussion
profiledCompiler = with stdenv; (!isDarwin && (isi686 || isx86_64));
libcCross = if stdenv.targetPlatform != stdenv.buildPlatform then libcCross else null;
threadsCross = if stdenv.targetPlatform != stdenv.buildPlatform then threadsCross else null;
isl = if !stdenv.isDarwin then isl_0_14 else null;
}));
gcc6 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/6 {
inherit noSysDirs;
@ -8157,14 +8136,6 @@ in
profiledCompiler = false;
});
gfortran5 = wrapCC (gcc5.cc.override {
name = "gfortran";
langFortran = true;
langCC = false;
langC = false;
profiledCompiler = false;
});
gfortran6 = wrapCC (gcc6.cc.override {
name = "gfortran";
langFortran = true;
@ -8752,9 +8723,7 @@ in
pforth = callPackage ../development/compilers/pforth {};
picat = callPackage ../development/compilers/picat {
stdenv = gcc49Stdenv;
};
picat = callPackage ../development/compilers/picat { };
ponyc = callPackage ../development/compilers/ponyc {
llvm = llvm_7;
@ -9750,10 +9719,6 @@ in
avrdude = callPackage ../development/tools/misc/avrdude { };
avarice = callPackage ../development/tools/misc/avarice {
gcc = gcc49;
};
babeltrace = callPackage ../development/tools/misc/babeltrace { };
bam = callPackage ../development/tools/build-managers/bam {};
@ -14563,13 +14528,6 @@ in
gnutls = gnutls;
});
# 3.14 is needed for R V8 module in ../development/r-modules/default.nix
v8_3_14 = callPackage ../development/libraries/v8/3.14.nix {
inherit (python2Packages) python gyp;
cctools = darwin.cctools;
stdenv = gcc5Stdenv;
};
v8_5_x = callPackage ../development/libraries/v8/5_x.nix ({
inherit (python2Packages) python gyp;
icu = icu58; # v8-5.4.232 fails against icu4c-59.1
@ -15271,8 +15229,8 @@ in
fingerd_bsd = callPackage ../servers/fingerd/bsd-fingerd { };
firebird = callPackage ../servers/firebird { icu = null; stdenv = gcc5Stdenv; };
firebirdSuper = firebird.override { icu = icu58; superServer = true; stdenv = gcc5Stdenv; };
firebird = callPackage ../servers/firebird { icu = null; /*stdenv = gcc5Stdenv;*/ };
firebirdSuper = firebird.override { icu = icu58; superServer = true; /*stdenv = gcc5Stdenv;*/ };
frab = callPackage ../servers/web-apps/frab { };
@ -18102,7 +18060,6 @@ in
afterstep = callPackage ../applications/window-managers/afterstep {
fltk = fltk13;
gtk = gtk2;
stdenv = gcc49Stdenv;
};
agedu = callPackage ../tools/misc/agedu { };
@ -18387,7 +18344,6 @@ in
calf = callPackage ../applications/audio/calf {
inherit (gnome2) libglade;
stdenv = gcc5Stdenv;
};
calcurse = callPackage ../applications/misc/calcurse { };
@ -23843,7 +23799,7 @@ in
aragorn = callPackage ../applications/science/biology/aragorn { };
archimedes = callPackage ../applications/science/electronics/archimedes {
stdenv = gcc49Stdenv;
stdenv = gcc6Stdenv;
};
bayescan = callPackage ../applications/science/biology/bayescan { };

View file

@ -88,7 +88,6 @@ self: super: let
in {
stdenv = foldl (flip id) super.stdenv staticAdapters;
gcc49Stdenv = foldl (flip id) super.gcc49Stdenv staticAdapters;
gcc5Stdenv = foldl (flip id) super.gcc5Stdenv staticAdapters;
gcc6Stdenv = foldl (flip id) super.gcc6Stdenv staticAdapters;
gcc7Stdenv = foldl (flip id) super.gcc7Stdenv staticAdapters;
gcc8Stdenv = foldl (flip id) super.gcc8Stdenv staticAdapters;