Commit Graph

681 Commits

Author SHA1 Message Date
Matthew Bauer
2e2afa1943 gcc/binutils: disable pie hardening
These don’t like having -fPIE set for them. We should disable
hardening all the time, but in the interest of not changing hashes,
this only disables it for Musl (where it is now the default).

(cherry picked from commit a3a6884649354a660326acd68c1bd08ffd2dcfa2)
2018-11-09 13:55:35 -06:00
Will Dietz
0c1b8e8770
Merge pull request #49455 from dtzWill/update/gcc-6.5
gcc6: 6.4.0 -> 6.5.0
2018-11-02 04:00:30 -05:00
Frederik Rietdijk
1d196d99be Merge staging-next into staging 2018-10-30 20:35:15 +01:00
Will Dietz
00a51a9669 gcc6: don't apply patches included in update to 6.5 2018-10-30 07:48:07 -05:00
Will Dietz
d2e78403a8 gcc6: 6.4.0 -> 6.5.0
http://lists.gnu.org/archive/html/info-gnu/2018-10/msg00003.html
2018-10-30 07:43:01 -05:00
Matthew Bauer
412093994b gcc: support avr
- respect libc’s incdir and libdir
- make non-unix systems single threaded
- set LIMITS_H_TEST to false for avr
- misc updates to support new libc’s
- use multilib with avr

For threads we want to use:
- posix on unix systems
- win32 on windows
- single on everything else

For avr:
- add library directories for avrlibc
- to disable relro and bind
- avr5 should have precedence over avr3 - otherwise gcc uses the wrong one
2018-10-29 14:34:09 -05:00
Michael Raskin
4a854344b7
Merge pull request #48721 from oxij/tree/mass-rebuild-complicated-cleanups
treewide: mass rebuild complicated cleanups
2018-10-29 19:17:28 +00:00
Jan Malakhovski
eae890db12 gcc-*: homogenize and cleanup expressions with a mass rebuild 2018-10-21 18:26:37 +00:00
John Ericson
c701d6cb21 Merge remote-tracking branch 'upstream/master' into staging 2018-09-25 14:20:27 -04:00
Will Dietz
fecd326399 gcc{5,6,7,8}: share libgomp patch, propagate musl config flags 2018-09-25 00:08:17 -05:00
Will Dietz
e845be1756 gcc: fix libgomp to not use initial-exec
Only apply w/musl since while it's wrong everywhere it apparently
hasn't broken things entirely w/glibc so keep things as they were.

Patch regenerated from original so that it applies
which isn't saying much since it's simple :).

Source:

https://patchwork.ozlabs.org/patch/154298/

IRC chat on #musl with Rich and others endorses this,
at least at the conceptual level of no shared library
should be using initial-exec TLS.

Fixes various uses of libgomp that previously crashed (before 1.1.20)
or encounter errors (post-1.1.20), such as pythonPackages.cython .
2018-09-25 00:04:33 -05:00
Will Dietz
3ec0d14140 gcc7: more options for musl 2018-09-25 00:04:32 -05:00
Jan Malakhovski
e0b5919197 gcc-*: homogenize and cleanup expressions without a rebuild
Looks scary but it is a noop.
2018-09-23 20:56:19 +00:00
Jan Malakhovski
1abf1971cd gcc7: cleanup with a mass rebuild 2018-09-23 17:30:32 +00:00
John Ericson
b14db1b0ba gcc-*: Clean up crossStageStatic logic
54282b9610 tread carefuly to avoid a mass
rebuild. This embraces the mass rebuild to clean things up.
2018-09-23 17:30:32 +00:00
John Ericson
2091133e78 gcc: Clarify Disabling libmpx in cross stage static
This isn't a MUSL thing, but just needed for cross compilation to x86.
No one had tried this when all cross compilation was to linux + glibc,
hence why no one noticed this until recently.
2018-09-18 16:27:04 -04:00
John Ericson
0828e2d8c3 treewide: Remove usage of remaining redundant platform compatability stuff
Want to get this out of here for 18.09, so it can be deprecated
thereafter.
2018-08-30 17:20:32 -04:00
Jörg Thalheim
9efffe0135 hurd: cleanup unmaintained target
This has been not touched in 6 years. Let's remove it to cause less
problems when adding new cross-compiling infrastructure.
This also simplify gcc significantly.
2018-08-28 22:18:02 +01:00
CrystalGamma
72d161f548 [RFC] ppc64le enablement (#45340)
* ppc64le enablement

* gcc, glibc: properly handle __float128

* lib/systems, stdenv: syntax cleanup

* gcc7: remove ugly hack

* gcc: add/update __float128 flags

* stdenv: add another pair of quotes for consistency

* gcc: move __float128 flag for ppc64le-glibc into common/platform-flags.nix
2018-08-21 15:31:34 -04:00
viric
5c77b9cddb
Merge pull request #43982 from viric/viric_clean
Take me (viric) out of most maintenance
2018-07-29 00:17:08 +02:00
Will Dietz
993937d09e gcc8: 8.1 -> 8.2
https://gcc.gnu.org/gcc-8/changes.html
2018-07-27 08:53:42 -05:00
Lluís Batlle i Rossell
66d7126255 Take me (viric) out of most maintenance
Since years I'm not maintaining anything of the list below other
than some updates when I needed them for some reason. Other people
is doing that maintenance on my behalf so I better take me out but
for very few packages. Finally!
2018-07-22 21:50:19 +02:00
volth
52f53c69ce pkgs/*: remove unreferenced function arguments 2018-07-21 02:48:04 +00:00
volth
87f5930c3f [bot]: remove unreferenced code 2018-07-20 18:48:37 +00:00
Daiderd Jordan
222524b5e6
gfortran: fix darwin build on hydra
All the warnings about unused -isystem arguments causes the build log to
exceed the hydra limit.
2018-06-24 15:02:49 +02:00
Vladimír Čunát
392e6de7d0
Merge branch 'master' into staging 2018-05-20 13:20:53 +02:00
Matthew Justin Bauer
2c7c9cbbac
gcc5: delete unused patch 2018-05-19 12:06:16 -05:00
Robert Schütz
90c0100139 Merge branch 'master' into staging 2018-05-19 11:12:19 +02:00
Matthew Justin Bauer
bd078c1a31
gcc5: remove patch
The patch fails to apply & may not be necessary any more. Trying to remove it for now just to see.

Hydra log: https://hydra.nixos.org/build/72726891/nixlog/1

Also see #33722

/cc @copumpkin
2018-05-18 17:03:35 -05:00
Tuomas Tynkkynen
6b6a575748 Merge remote-tracking branch 'upstream/master' into staging
Conflicts:
	pkgs/tools/networking/telnet/default.nix
	pkgs/top-level/aliases.nix
2018-05-16 03:09:33 +03:00
Bastian Köcher
780592ca6e gcc7: Enable arm erratum 843419 on aarch64
This fix is required for the raspherry pi 3 with glibc 2.27,
otherwise the kernel panics in initrd with:
```
<<< NixOS Stage 1 >>>

loading module dm_mod...
running udev...
kbd_mode: KDSKBMODE: Inappropriate ioctl for device
Gstarting device mapper and LVM...
[    1.969164] Kernel panic - not syncing: Attempted to kill init!
exitcode=0x0000000b
[    1.969164]
[    1.978476] CPU: 0 PID: 1 Comm: init Not tainted 4.16.8 #1-NixOS
[    1.984580] Hardware name: Raspberry Pi 3 Model B (DT)
[    1.989801] Call trace:
[    1.992301]  dump_backtrace+0x0/0x1c8
[    1.996025]  show_stack+0x24/0x30
[    1.999396]  dump_stack+0x9c/0xc0
[    2.002766]  panic+0x124/0x294
[    2.005872]  complete_and_exit+0x0/0x30
[    2.009771]  do_group_exit+0x40/0xa8
[    2.013406]  get_signal+0x280/0x5b0
[    2.016954]  do_signal+0x88/0x240
[    2.020325]  do_notify_resume+0xd8/0x130
[    2.024311]  work_pending+0x8/0x10
[    2.027774] SMP: stopping secondary CPUs
[    2.031763] Kernel Offset: disabled
[    2.035308] CPU features: 0x0802004
[    2.038850] Memory Limit: none
[    2.041963] ---[ end Kernel panic - not syncing: Attempted to kill
init! exitcode=0x0000000b
[    2.041963]
[    2.865264] random: crng init done
```
Suse has done the same to circumvent crashes with hostname resolving in
glibc 2.27 on aarch64.
2018-05-16 03:04:29 +03:00
Patrick Hilhorst
61411e57ec
Merge remote-tracking branch 'upstream/master' into gcc8 2018-05-15 21:37:03 +02:00
Patrick Hilhorst
87fd200b9a
gcc8: mark as broken on darwin 2018-05-14 21:28:17 +02:00
John Ericson
01a525b84e Merge remote-tracking branch 'upstream/master' into staging 2018-05-14 13:31:20 -04:00
John Ericson
bf7d1bae20 Merge remote-tracking branch 'upstream/master' into gcc-hurd-condition 2018-05-14 13:15:06 -04:00
John Ericson
3a9654bfe2 gcc: Simplify this old Hurd condition
Steps towards getting rid of crossConfig.
2018-05-14 13:13:11 -04:00
John Ericson
d00cc1242f
Merge pull request #40040 from obsidiansystems/gnu-config-arm
gnu-config: Update, allowing hacks to be removed
2018-05-14 11:20:09 -04:00
John Ericson
f2b575bd7b Merge remote-tracking branch 'upstream/master' into gnu-config-arm 2018-05-14 10:58:15 -04:00
John Ericson
f472dd7652 Revert "Revert "gcc, binutils: Get rid of 32-bit ARM configure flag exception""
And there's more reverts too. The previous commmit
d838afbc9376bdadb8c690eb00b425f3eeccdf2d to gnu-config finally solves
it!

This reverts commit 3ed545ab31.
2018-05-14 10:55:32 -04:00
John Ericson
2c5d915200 Merge commit '92b7a814f26ee1d37e989431c18518c67285a332' into staging 2018-05-13 01:02:09 -04:00
John Ericson
92b7a814f2 Merge branch 'fix-gcc-with-float' 2018-05-12 15:21:30 -04:00
John Ericson
f2004e6287 lib: Fix float handling for Aarch32
Forgot to adjust default so abi with explicit float attr would be used.
2018-05-12 15:18:31 -04:00
John Ericson
ee4b56edd3 Merge remote-tracking branch 'upstream/master' into staging 2018-05-11 14:36:08 -04:00
John Ericson
f18ddabee7 Merge remote-tracking branch 'upstream/master' into lib-float 2018-05-10 18:13:00 -04:00
John Ericson
1fe81a4bcd lib: Clean up float/fpu options
ARM ABIs now have a float field. This is used as a fallback to lessen
our use of `platform.gcc.float`. I didn't know what the MIPs convention
is so I kept using `platform.gcc.float` in that case.
2018-05-10 18:02:00 -04:00
John Ericson
c9f6a82b61 gcc: Factor out "platform flags" 2018-05-10 18:00:57 -04:00
John Ericson
1d90ea9194
Merge pull request #40294 from obsidiansystems/no-crossAttrs
misc packages: Fewer crossAttrs
2018-05-10 14:38:58 -04:00
John Ericson
c42118bb82 gcc: Get rid of crossAttrs
Only a little bit was left
2018-05-10 14:19:38 -04:00
Matthew Bauer
6748534d83 Merge remote-tracking branch 'upstream/master' into staging 2018-05-08 09:36:00 -05:00
John Ericson
4f7cdd35d5
Merge pull request #40139 from obsidiansystems/modular-setup-hooks
treewide: Modular setup hooks
2018-05-07 15:32:10 -04:00
John Ericson
2110c0bd30 treewide: Use pkgs/build-support/roles.bash to remove copy pasta
Also fix some setup hooks that unnecessarily used environment hooks,
which revolted in the same variable being modified too many times.
2018-05-07 15:10:37 -04:00
Jörg Thalheim
1537dca7fc
Merge pull request #39914 from nlewo/pr-retpoline
gcc49: backport retpoline support
2018-05-04 19:14:35 +01:00
John Ericson
88d18d2e04
Merge pull request #39947 from obsidiansystems/libcxx-cross
lib{std,}c++: Fix setup hooks for cross
2018-05-03 18:20:13 -04:00
John Ericson
39df5831ca lib{std,}c++: Fix setup hooks for cross 2018-05-03 17:55:03 -04:00
Patrick Hilhorst
0a4622cfe9 gcc-snapshot: Removed java as a target language 2018-05-03 19:48:00 +02:00
Patrick Hilhorst
719810d474 gcc7: Removed X11 components, since they were only used by langJava
See also:

51ac1d8df0
https://github.com/NixOS/nixpkgs/pull/39866#discussion_r185813776
2018-05-03 16:43:51 +02:00
Patrick Hilhorst
51ac1d8df0 gcc8: Removed X11 components, since they were only used by langJava 2018-05-03 16:30:32 +02:00
Antoine Eiche
5b6129f69c gcc49: remove darwin support 2018-05-03 15:12:01 +02:00
Patrick Hilhorst
3641b35bae gcc7: Removed java as a target language 2018-05-03 15:11:41 +02:00
Patrick Hilhorst
d21ff87160 gcc8: Removed java as a target language 2018-05-03 13:07:19 +02:00
Antoine Eiche
ada2fc088c gcc49: backport retpoline support
To mitigate Spectre Variant 2, GCC needs to have retpoline
support (-mindirect-branch and -mfunction-return arguments on amd64
and i386).

Patches were pulled from H.J. Lu's backport branch to
4.9 (hjl/indirect/gcc-4_9-branch), available at
https://github.com/hjl-tools/gcc/tree/hjl/indirect/gcc-4_9-branch/master. Upstream
GCC does not apply patches to anything older than the
gcc-6-branch. H.J. Lu is the author of the upstream retpoline commits
as well.

Several Linux distributions already backported these patches to GCC 4
branches and some old kernels (3.13 for instance) have been recompiled
with these GCC patches. These kernels only allow to load kernel
modules that are compiled with the retpoline support.

References:
- Ubuntu bug: https://bugs.launchpad.net/ubuntu/+source/gcc-4.8/+bug/1749261
- Ubuntu package: https://launchpad.net/ubuntu/+source/gcc-4.8/4.8.4-2ubuntu1~14.04.4

Fixes #38394
2018-05-03 11:35:49 +02:00
Matthew Justin Bauer
eeb016e8f0
Merge branch 'staging' into fix-ncurses-darwin-extensions 2018-05-02 15:40:38 -05:00
Patrick Hilhorst
5794d94136 gcc8: made the remove-selftests patch more robust, removed old hash 2018-05-02 22:31:58 +02:00
Patrick Hilhorst
c7a6b36658 gcc8: removed commented gcc7 hash 2018-05-02 20:53:13 +02:00
Patrick Hilhorst
d0708a30c4 gcc8: removed merged patches
Log:
```
patching sources
applying patch /nix/store/6m27y27zvzsjn1ir4y8mm9nc9xnh2sgx-riscv-no-relax.patch
patching file gcc/config/riscv/riscv.c
Reversed (or previously applied) patch detected!  Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file gcc/config/riscv/riscv.c.rej
patching file gcc/config/riscv/riscv.opt
Reversed (or previously applied) patch detected!  Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file gcc/config/riscv/riscv.opt.rej
patching file gcc/doc/invoke.texi
Reversed (or previously applied) patch detected!  Assume -R? [n]
Apply anyway? [n]
Skipping patch.
```
2018-05-02 20:51:01 +02:00
Patrick Hilhorst
728eb27618 gcc8: added myself as maintainer 2018-05-02 18:52:50 +02:00
Patrick Hilhorst
659363fb40 gcc8: init at 8.1.0 2018-05-02 18:34:28 +02:00
John Ericson
591d8c7a19
Merge pull request #39458 from oxij/stdenv/beautifications
stdenv: better names for cc and bintools
2018-04-26 11:41:18 -04:00
John Ericson
b9acfb4ecf treewide: isArm -> isAarch32
Following legacy packing conventions, `isArm` was defined just for
32-bit ARM instruction set. This is confusing to non packagers though,
because Aarch64 is an ARM instruction set.

The official ARM overview for ARMv8[1] is surprisingly not confusing,
given the overall state of affairs for ARM naming conventions, and
offers us a solution. It divides the nomenclature into three levels:

```
ISA:             ARMv8   {-A, -R, -M}
                 /    \
Mode:     Aarch32     Aarch64
             |         /   \
Encoding:   A64      A32   T32
```

At the top is the overall v8 instruction set archicture. Second are the
two modes, defined by bitwidth but differing in other semantics too, and
buttom are the encodings, (hopefully?) isomorphic if they encode the
same mode.

The 32 bit encodings are mostly backwards compatible with previous
non-Thumb and Thumb encodings, and if so we can pun the mode names to
instead mean "sets of compatable or isomorphic encodings", and then
voilà we have nice names for 32-bit and 64-bit arm instruction sets
which do not use the word ARM so as to not confused either laymen or
experienced ARM packages.

[1]: https://developer.arm.com/products/architecture/a-profile

(cherry picked from commit ba52ae5048)
2018-04-25 15:50:41 -04:00
John Ericson
ba52ae5048 treewide: isArm -> isAarch32
Following legacy packing conventions, `isArm` was defined just for
32-bit ARM instruction set. This is confusing to non packagers though,
because Aarch64 is an ARM instruction set.

The official ARM overview for ARMv8[1] is surprisingly not confusing,
given the overall state of affairs for ARM naming conventions, and
offers us a solution. It divides the nomenclature into three levels:

```
ISA:             ARMv8   {-A, -R, -M}
                 /    \
Mode:     Aarch32     Aarch64
             |         /   \
Encoding:   A64      A32   T32
```

At the top is the overall v8 instruction set archicture. Second are the
two modes, defined by bitwidth but differing in other semantics too, and
buttom are the encodings, (hopefully?) isomorphic if they encode the
same mode.

The 32 bit encodings are mostly backwards compatible with previous
non-Thumb and Thumb encodings, and if so we can pun the mode names to
instead mean "sets of compatable or isomorphic encodings", and then
voilà we have nice names for 32-bit and 64-bit arm instruction sets
which do not use the word ARM so as to not confused either laymen or
experienced ARM packages.

[1]: https://developer.arm.com/products/architecture/a-profile
2018-04-25 15:28:55 -04:00
Jan Malakhovski
7438083a4d tree-wide: disable doCheck and doInstallCheck where it fails (the trivial part) 2018-04-25 04:18:46 +00:00
Jan Malakhovski
2afd3c901e gcc: prepend crossNameAddon instead of appending it (like binutils does) 2018-04-25 00:41:14 +00:00
Shea Levy
d0a8866622
Merge branch 'binutils-2.30' into staging 2018-03-22 07:28:10 -04:00
Tuomas Tynkkynen
74720a36c7 Merge remote-tracking branch 'upstream/master' into staging 2018-03-21 23:51:55 +02:00
Clemens Fruhwirth
c0cf13e52e Add space for NIX_CXXSTDLIB_COMPILE+=' ...' as NIX_CXXSTDLIB_COMPILE might not be empty. 2018-03-19 13:18:49 +01:00
Shea Levy
a5d064826b
gcc: Try to fix /bin/sh dependency 2018-03-17 21:58:15 -04:00
Shea Levy
017d678a00
gcc: Add uncommitted patch. 2018-03-16 16:39:55 -04:00
Shea Levy
a1ede569ef
gcc: Unconditionally add some upstream RISC-V patches. 2018-03-16 16:38:32 -04:00
Shea Levy
c69d8bf5e6
treewide: Remove gnat support.
See discussion in 6ac7b19c97.
2018-03-08 13:56:36 -05:00
Tuomas Tynkkynen
34f95d92a2 Merge remote-tracking branch 'upstream/master' into staging
Conflicts:
	pkgs/applications/misc/pytrainer/default.nix
	pkgs/development/tools/pew/default.nix
	pkgs/tools/misc/you-get/default.nix
2018-02-28 20:52:49 +02:00
John Ericson
dfc5d7835d
Merge pull request #35247 from telent/mips32
lib, treewide: Add missing MIPS arches, and fix existing usage
2018-02-27 14:01:15 -05:00
Shea Levy
4728ef130e
RISC-V: Add upstream gcc patch to fix -pthread.
Fixes libmicrohttpd build.
2018-02-26 05:24:36 -05:00
Daniel Barlow
9c50ae6898 lib, treewide: Add missing MIPS arches, and fix existing usage
Existing "mips64el" should be "mipsel".

This is just the barest minimum so that nixpkgs can recognize them as
systems - although required for building individual derivations onto
MIPS boards, it is not sufficient if you want to actually build nixos on
those targets
2018-02-23 20:43:42 -05:00
Will Dietz
39f61d5c02 gcc7: fix native and cross-musl build, sync w/gcc6 fixes 2018-02-21 20:55:22 -06:00
Tuomas Tynkkynen
b1916b45a3 Merge remote-tracking branch 'upstream/staging' into gcc-7
Conflicts:
	pkgs/development/libraries/libidn/default.nix
	pkgs/top-level/all-packages.nix
2018-02-15 15:45:37 +02:00
Will Dietz
9bd4e00ce3 gcc6: cross-musl disable libmpx 2018-02-13 09:45:03 -06:00
Will Dietz
7eba45d063 gcc5: patch for musl compat/support 2018-02-13 09:44:52 -06:00
Will Dietz
3b0d3248c9 gcc7: tweak check, target -> host 2018-02-13 09:44:43 -06:00
Will Dietz
f566e3f987 gcc7: more selftest disabling, whenever building cross 2018-02-13 09:44:42 -06:00
Will Dietz
ff9b494103 gcc7: Apply patch to fix selftest w/musl? 2018-02-13 09:44:39 -06:00
Will Dietz
f146a3c316 gcc5, 7: same fixes as gcc6 2018-02-13 09:44:38 -06:00
Will Dietz
fbf41b9ee2 gcc6: try to fix LOCAL_INCLUDE_DIR problem w/musl 2018-02-13 09:44:38 -06:00
Will Dietz
5eea9e82f4 gcc6: try patching MUSL_DYNAMIC_LINKER as well 2018-02-13 09:44:38 -06:00
Will Dietz
ece06deee4 gcc6: try to fix gccCrossStageStati 2018-02-13 09:44:38 -06:00
Will Dietz
15d401dcfa gcc: disable libsanitizer, libgomp on musl 2018-02-13 09:44:38 -06:00
Ben Gamari
d625f181bd autoconf: Enable cross-compilation 2018-02-13 09:44:28 -06:00
Franz Pletz
e2c1c76fd0
Merge remote-tracking branch 'origin/master' into gcc-7 2018-01-28 23:17:32 +01:00
Tuomas Tynkkynen
11e98eaae7 gcc7: More resync from gcc6
I think I managed to lose these during a merge conflict.
2018-01-28 03:15:05 +02:00
Clemens Fruhwirth
2f83f52ab8 gcc: 7.2.0 -> 7.3.0 2018-01-26 15:59:22 +01:00
Tuomas Tynkkynen
99fc949330 gcc7: Drop flex again
I think I lost this during merge conflict resolution
2018-01-26 16:50:13 +02:00
John Ericson
c98e6b6771 gcc, binutils: Narrow down ARM hack so only native builds are affected 2018-01-09 17:25:49 -05:00
Drew Hess
3ed545ab31
Revert "gcc, binutils: Get rid of 32-bit ARM configure flag exception"
This commit breaks native armv7l-linux builds. Revert it until it can
be root-caused. This reversion does not affect other platforms or
cross-compiling.

This reverts commit 0f5c804631.
2018-01-08 20:03:33 -08:00
Vladimír Čunát
1fcd92ce92
Merge branch 'master' into staging
A few thousand rebuilds from master, again.
Hydra: ?compare=1422362
2017-12-31 09:53:49 +01:00
John Ericson
4ad9a97e96 gcc: Don't let solaris hack pollute CC elsehwere 2017-12-30 22:04:22 -05:00
John Ericson
0f5c804631 gcc, binutils: Get rid of 32-bit ARM configure flag exception
Now that we do `--enable-targes=all`, there is no risk of missing the
needed emulation.

This reverts commit ebc9b161cd.
This reverts commit 88efc22b44.
2017-12-30 22:04:22 -05:00
John Ericson
9cda2f5559 gcc: Fix deps, for cross and consistency
Mainly making sure we have tools to build target libs
2017-12-30 22:04:22 -05:00
John Ericson
114a9b6253 gcc: Let cc-wrapper's setup hook define any tool env vars we need 2017-12-30 22:04:21 -05:00
John Ericson
bc23afe5c7 gcc: Add build->build dep for C compilers
5 already had this, but I forgot the other versions.
2017-12-30 22:04:21 -05:00
John Ericson
5b74540c5b treewide: Use depsBuildBuild for buildPackges.stdenv.cc 2017-12-30 22:04:21 -05:00
Dmitry Kalinkin
6d9769663d
cc-wrapper: allow compilers to specify unsupported hardening modes
Fixes: 0fd7ef61b2 ('clang_34: Disable hardening bits (#28543)')
2017-12-30 12:23:25 -05:00
John Ericson
5db559f855 Merge branch 'mingw32-w64-fix' into ericson2314-cross-base 2017-12-29 15:46:02 -05:00
John Ericson
52a4a7c3bb
Merge pull request #33167 from bnikolic/mingw32-w64-fix
Mingw_w64 fix to get cross-compilation working again
2017-12-29 15:44:17 -05:00
John Ericson
bc3a6e260a Merge commit '3afe325a3e2f906ba512fb7a2f28f79496711592' into mingw32-w64-fix 2017-12-29 15:28:56 -05:00
John Ericson
5d336d36bb Merge commit 'e82bd498d1a2a28fb20249569a6f49fcaab9aca8' into mingw32-w64-fix 2017-12-29 15:28:49 -05:00
John Ericson
169227bfd2 Merge commit '3a59cd87f26cc59c91fb821749b1ec0d64922f87' into mingw32-w64-fix 2017-12-29 14:24:10 -05:00
John Ericson
2365e2ffcd Merge commit '51948eab9415fde1825dea5c7d31b99b2e1a0fdb' into mingw32-w64-fix 2017-12-29 14:23:05 -05:00
Bojan Nikolic
771bae04e8 gcc: Enable SSP and shared libs in the final stage for MinGW
Hardening on by default now that we don't use the cross wrapper. In
turn, hardening requires libssp in particular.
2017-12-29 13:27:02 -05:00
John Ericson
12e0672d88 gcc: Adjust builder.sh to find some things in bintools-wrapper instead 2017-12-13 16:08:19 -05:00
John Ericson
4e4520a0f3 gcc: Don't choke if there is no lib output 2017-12-10 17:36:15 -05:00
John Ericson
3afe325a3e Merge commit '43d5c5d6db3ce33f3cf1d17ba43c7374257466ec' into gcc-modernize-builder 2017-12-07 02:19:04 -05:00
John Ericson
e82bd498d1 Merge commit '992bd2f6d34b2f560fc17df6fa3708fcade1abac' into gcc-modernize-builder 2017-12-07 02:13:24 -05:00
John Ericson
3a59cd87f2 Merge commit '93cd0685c5ac4d8f21d8586d3e5c45cd7394fab9' into gcc-modernize-builder 2017-12-07 01:49:31 -05:00
John Ericson
51948eab94 gcc: Fix after merge
- NIX_CC_CROSS is now completely gone!

- NIX_CC is defined reliably, so no manual def needed

- stdenv.ccCross -> stdenv.cc, also removing need for "or" fallback
2017-12-07 01:42:43 -05:00
John Ericson
974b9201a5 Merge commit 'c9ca54199409324101bdee38f5b16e7656a16a22' into gcc-modernize-builder 2017-12-07 01:42:35 -05:00
John Ericson
d96cf0f46c gcc: Handle CPATH and LIBRARY_PATH purely in Nix 2017-12-06 19:12:51 -05:00
John Ericson
d4595b38e9 gcc: Modernize builder.sh for Cross
Instead of `NIX_CC` vs `NIX_CC_CROSS` spagetti, unconditionally use
`NIX_BUILD_CC` and `NIX_CC` in a consistent manner.
2017-12-06 19:12:50 -05:00
John Ericson
43d5c5d6db Merge commit '703a9f93c1254f7bdf0350ca0462de0d78033c62' into gcc-simplify-flags 2017-12-05 17:58:16 -05:00
John Ericson
992bd2f6d3 Merge commit 'ab77a6bb1e7d2ff475210ad392f1a9bd1bb6ba3a' into gcc-simplify-flags 2017-12-05 17:41:15 -05:00
John Ericson
93cd0685c5 Merge commit '71186e73455a4e06e96a31da34b76f84e545ba1f' into gcc-simplify-flags 2017-12-05 17:09:41 -05:00
John Ericson
c9ca541994 Merge commit '198dceccbe5414a5fd72ca83624c0cc715db1aad' into gcc-simplify-flags 2017-12-05 16:55:11 -05:00
John Ericson
a3e35fbbe1 gcc: Use platformFlags in crossConfigureFlags
A nice code deduplication
2017-12-05 14:01:18 -05:00
John Ericson
1fe9798ac2 lib, gcc: No inherit (platform) gcc; in {host,build,target}Platform 2017-12-05 13:52:20 -05:00
John Ericson
74cbb5796e gcc: Get rid of crossAttrs.configureFlags 2017-12-04 20:50:59 -05:00
John Ericson
cabfe1885f gcc: Don't try to enable plugins with host != build 2017-12-04 16:27:18 -05:00
John Ericson
2fdca4db69 gcc: Lock down more tools for cross-builds
That is, build != host == target
2017-12-04 16:27:18 -05:00
Tuomas Tynkkynen
703a9f93c1 gcc6: Restore missing platform flags
This was missed in commit 1c1207220f
("gcc: Refactor treatment of configure flags"), all other GCC versions
have it right.
2017-11-29 23:09:17 +02:00
Tuomas Tynkkynen
0f249a7354 gccSnapshot: Reduce diff to gcc7 2017-11-29 23:09:17 +02:00
Tuomas Tynkkynen
d7a0695c43 gcc7: Reduce diff to gcc6 2017-11-29 23:09:17 +02:00
Tuomas Tynkkynen
825b953bf5 gcc48: Reduce diff to gcc49 2017-11-29 23:09:17 +02:00
Tuomas Tynkkynen
77b409b2cf gcc49: Reduce diff to gcc5 2017-11-29 23:09:17 +02:00
Tuomas Tynkkynen
aa3d195a30 gcc5: Reduce diff to gcc6 2017-11-29 23:09:16 +02:00
Orivej Desh
d99a2fc093 Merge branch 'master' into staging
* master: (293 commits)
  go_1_9: skip flaky TestServerCancelsReadTimeoutWhenIdle
  qsyncthingtray: fix build
  qt56.qtwebengine: fix build
  stdman: d860212 -> 2017.04.02
  jackett: use mono50
  hg-git: disable with python3
  hg-git: 0.8.5 -> 0.8.10
  xfce4-settings: enable parallel building
  gcc-snapshot: mark as broken
  heaptrack: 2017-02-14 -> 2017-10-30
  nixos-container: Modify existing test to cover show-ip command
  nixos-container: Make show-ip work together with ipv4 + netmask
  linux-copperhead: 4.13.12.a -> 4.13.13.a
  matterbridge: 1.1.0 -> 1.4.1
  nixos/nghttpx: add module for the nghttpx proxy server (#31680)
  mattermost: 4.3.0 -> 4.4.0
  breakpad: delete
  simp_le: 0.2.0 -> 0.6.1
  certbot: 0.11.1 -> 0.19.0
  afl: 2.51b -> 2.52b
  ...
2017-11-17 05:35:09 +00:00
Orivej Desh
e188747d89 gcc-snapshot: mark as broken
It is older than gcc7 and fails to compile due to ucontext_t changes in glibc 2.26.
2017-11-16 20:22:10 +00:00
John Ericson
ab77a6bb1e gcc: Misc indentation and whitespace-in-string fixes 2017-11-14 18:32:50 -05:00
Ben Gamari
1c1207220f gcc: Refactor treatment of configure flags
Previously configureFlags was defined as one giant interpolated string.
Here we refactor this definition to instead use the usual stdenv string
combinators. This seems more in-line with the average nixpkgs expression
and it seems a bit more natural to things of these as lists of flags
rather than monolithic strings.
2017-11-14 16:23:46 -05:00
Piotr Bogdan
7112718a20 gcj: fix build with glibc 2.26 2017-11-09 20:50:21 +00:00
John Ericson
0101856765
Merge pull request #30549 from obsidiansystems/bintools
treewide: Introduce stdenv.cc.bintools
2017-11-08 14:20:48 -05:00
Vladimír Čunát
f04b64c1e9
gcc-4.5: fixup build with glibc-2.26
The older the GCC, the easier the backporting :-)
2017-11-07 15:39:24 +01:00
Vladimír Čunát
54c14e2fa3
gcc-4.8: fix with glibc-2.26 2017-11-07 14:53:10 +01:00
Vladimír Čunát
8da04338d7
gcc-4.9: fixup build with glibc-2.26
Upstream didn't backport this, but fortunately it wasn't too hard.
2017-11-07 12:56:57 +01:00
John Ericson
4d4f94cde4 treewide: Depend on targetPackages.stdenv.cc.bintools instead of binutils directly
One should do this when needed executables at run time. It is more
honest and cross-friendly than refering to binutils directly, if one
neeeds the default binary tools for the target platform, rather than
binutils in particular.
2017-11-05 17:10:53 -05:00
Vladimír Čunát
0c01c58aec
gcc6: fix build with new glibc, by upstream patches 2017-11-05 19:09:53 +01:00
Will Dietz
a4d5586d47 gcc: 5.4.0 -> 5.5.0
Switch to xz since there is no bz2 variant (apparently)
2017-11-01 06:00:28 -05:00
Vladimír Čunát
80c57fd96a
gcj, gccgo: port fixes for 4.9 to 6
Tested that pdftk builds on linux again, and gccgo6 builds hello-world.
The default gcc doesn't rebuild.
2017-09-28 21:52:28 +02:00
John Ericson
1dd63de9a0 Merge some Master PRs into staging
No native hashes should be changed
2017-09-21 20:11:59 -04:00
John Ericson
54282b9610 gcc: Change default of crossStageStatic param to false
This gets us one step closer to removing `gccCrossStageFinal`.

Care is taken to avoid a mass rebuild; will clean up with one later.
2017-09-21 15:49:18 -04:00
Vladimír Čunát
16cf448933
gettext, gcc5: enable stackprotector now
This has been forgotten in #29349 ?
2017-09-19 17:52:32 +02:00
Frederik Rietdijk
febd5e323d Merge remote-tracking branch 'upstream/master' into HEAD 2017-09-08 20:48:14 +02:00
Nikolay Amiantov
1704eeb930 gcc7: 7.1.0 -> 7.2.0 2017-09-07 17:04:29 +03:00
Eelco Dolstra
ec8d41f08c
Revert "Merge pull request #28557 from obsidiansystems/binutils-wrapper"
This reverts commit 0a944b345e, reversing
changes made to 61733ed6cc.

I dislike these massive stdenv changes with unclear motivation,
especially when they involve gratuitous mass renames like NIX_CC ->
NIX_BINUTILS. The previous such rename (NIX_GCC -> NIX_CC) caused
months of pain, so let's not do that again.
2017-09-07 12:51:21 +02:00
Frederik Rietdijk
38dc9a870f Merge remote-tracking branch 'upstream/master' into HEAD 2017-09-06 14:01:25 +02:00
Daiderd Jordan
907222098a
clang-stdenv: use libstdcxxHook when targeting linux 2017-09-05 21:37:06 +02:00
John Ericson
6a089581f8 gcc-4.5: Fix typo 2017-09-04 15:53:02 -04:00
Daiderd Jordan
0ea92a3c24
libstdc++: add setup-hook 2017-09-04 21:07:05 +02:00
John Ericson
3f30cffa55 misc pkgs: Use $NIX_BINUTILS for when needed
Certain files are now only there instead of $NIX_CC (some are in both)
2017-09-01 11:44:55 -04:00
Tuomas Tynkkynen
2fc7651b25 Merge remote-tracking branch 'upstream/master' into staging 2017-08-24 02:08:32 +03:00
Tuomas Tynkkynen
0c0fad6141 treewide: Consistently call ARM 'arm'
No need for silly differences.
2017-08-24 01:17:01 +03:00
John Ericson
ebc9b161cd gcc: Add configurePlatforms exception for Arm 32
...just as we did for binutils. When the underlying issue is resolved
(probably with a configure script patch or lib/systems/parse.nix
change), this should be reverted.
2017-08-23 14:38:08 -04:00
John Ericson
71186e7345 gcc: Use configurePlatforms to control --build, --host, and --target 2017-08-23 14:28:59 -04:00
Vladimír Čunát
2afb096e83
gcc-4.5: fix build
It's fallout after output changes #27424.
gnat seems OK now, except that the wrapper is broken, so it's probably
not really usable.
2017-08-23 10:11:21 +02:00
Vladimír Čunát
beaad85500
gcc-4.8: fix build
Problems: building with gcc-6 now, and fallout after output changes #27424.
2017-08-20 11:11:44 +02:00
Vladimír Čunát
956c266fb7
gcc49: remove Darwin patch that's included in 4.9 2017-08-20 10:30:34 +02:00
John Ericson
0a4d102b98 gcc 5: Don't quote propagatedBuildInputs in ?-check for consistency
Forgot to do this in last commit.
2017-08-18 14:09:24 -04:00
John Ericson
b11889e6a4 gcc: Homogenize syntax in one small spot
Less noise in the diff help maintain these behemoths.
2017-08-18 14:03:48 -04:00
Daiderd Jordan
1b89036cdf
gcc7: port darwin changes from 5.x 2017-08-17 21:00:10 +02:00
Daiderd Jordan
261cbdbe19
gcc6: port darwin changes from 5.x 2017-08-17 21:00:05 +02:00
Daiderd Jordan
6e245440d4
gcc: remove CPP workaround 2017-08-16 21:38:41 +02:00
Daiderd Jordan
206faacbcb
gcc: fix clang build
Fixes #27889

This works properly now that LD_DYLD_PATH is fixed
2017-08-13 17:58:18 +02:00
Daiderd Jordan
d93c636737
Revert "gcc: fix clang build"
This fixes the gcc build but results in a gcc that doesn't generate
valid binaries.

gcc -o hello hello.c
./hello
Killed: 9

This reverts commit 2adf36ab8c.
2017-08-09 21:37:29 +02:00
Daiderd Jordan
2adf36ab8c
gcc: fix clang build 2017-08-08 23:22:24 +02:00
Silvan Mosberger
f5fa5fa4d6 pkgs: refactor needless quoting of homepage meta attribute (#27809)
* pkgs: refactor needless quoting of homepage meta attribute

A lot of packages are needlessly quoting the homepage meta attribute
(about 1400, 22%), this commit refactors all of those instances.

* pkgs: Fixing some links that were wrongfully unquoted in the previous
commit

* Fixed some instances
2017-08-01 22:03:30 +02:00
Eelco Dolstra
07176ed6f1
gcc: 6.3.0 -> 6.4.0 2017-07-04 18:39:18 +02:00
Ross MacLeod
198dceccbe gcc5: set --build and --host in the case where those differ and make sure to have a build cc-wrapper around as well 2017-06-22 17:53:55 -04:00
John Ericson
12795a7068 misc: Remove almost all uses of stdenv.{ccCross,binutils} 2017-06-22 17:53:52 -04:00
John Ericson
7a13457253 gcc 7: Remove cross arguments and don't use stdenv.is*
These changes were already done for the older GCCs, but 7 slipped
through the cracks.
2017-06-08 14:08:31 -04:00
John Ericson
35ed21d096 gcc*: Replace stdenv.is* with {host,target}Platform.is*
Host everywhere would be guaranteed to preserve the old semantics,
but in a few places it doesn't matter in practice, target is used
instead for clarity.
2017-06-06 19:28:16 -04:00
Ross MacLeod
e854685d65 gcc*: Remove cross argument and instead use hostPlatform and targetPlatform 2017-06-06 19:28:16 -04:00
Nikolay Amiantov
0dc5473730 gcc7: init at 7.1.0 2017-06-04 00:38:30 +03:00
John Ericson
eaa509f33a stdenv: Rename isGNU to isHurd as GNU is a userland
Elsewhere, things called GNU indeed includes GNU/Linux or GNU/Hurd, but this
predicate was defined excluding Linux regardless of userland.
2017-05-22 13:55:26 -04:00
John Ericson
20fa6fd871 gcc: When cross compiling, always expect prefixed binutils
Previously this was just done on Darwin.
2017-05-17 15:33:05 -04:00
John Ericson
761af14778 Merge pull request #25227 from obsidiansystems/cross-purge-binutilsCross
Purge binutilsCross
2017-04-26 09:09:06 -04:00
John Ericson
295315cc87 binutilsCross: Remove and use binutils instead always
See previous commit for what was done to `binutils` to make this
possible.

There were some uses of `forcedNativePackages` added. The
combination of overrides with that attribute is highly spooky: it's
often important that if an overridden package comes from it, the
replaced arguments for that package come from it. Long term this
package set and all the spookiness should be gone and irrelevant:

  "Move along, nothing to see here!"

No hashes should be changed with this commit
2017-04-25 21:36:19 -04:00
John Ericson
75441dd64a Merge pull request #25194 from obsidiansystems/host-target-unconfuse
stdenv.cross is a silly attribute that needs to go leaving the well-defined hostPlatform and targetPlatform. This PR doesn't remove it, but changes its definition: before it tracked the target platform which is sometimes more useful for compilers, and now it tracks the host platform which is more useful for everything else. Most usages are libraries, falling in the "everything else" category, so changing the definition makes sense to appease the majority. The few compiler (gcc in particular) uses that exist I remove to use targetPlatform --- preserving correctness and becoming more explicit in the process.

I would also update the documentation aside mentioning stdenv.cross as deprecated, but the definition given actually erroneously assumes this PR is already merged!
2017-04-24 19:07:48 -04:00
John Ericson
a7068ace35 Rewrite a few stdenv.cross uses that *should* be targetPlatform
The previous commit redefines `stdenv.cross` for the sake of normal
libaries, the most common use-case of that attribute. Some compilers
however relied on the old definition so we have them use
`targetPlatform` instead. This special casing is fine because we
eventually want to remove `stdenv.cross` and use either `hostPlatform`
or `targetPlatform` instead.
2017-04-24 16:31:45 -04:00
Vladimír Čunát
f7a4f146c9
Merge branch 'master' into staging
This includes a fix for a bad merge.
2017-04-14 19:22:02 +02:00
Vladimír Čunát
1a1f2262b4
Merge #24637: gcc: include dylibs for darwin build 2017-04-14 10:53:16 +02:00
Eelco Dolstra
d3c737a080
gcc-snapshot: 7-20161211 -> 7-20170409 2017-04-13 13:07:45 +02:00
Dan Peebles
0cacae6a5f gcc6: fix for LLVM 4.0 2017-04-06 23:20:35 -04:00
Daiderd Jordan
9896cf1028
gcc: include dylibs for darwin build 2017-04-04 23:53:39 +02:00
Dan Peebles
a2a82db7cf gfortran/gcc: simplify & clean up on Darwin
This should eliminate the branched logic for gfortran on Darwin, as well
as preventing accidental inclusion of impure paths in gcc and gfortran
builds.
2017-03-21 01:36:28 -04:00