Commit graph

179 commits

Author SHA1 Message Date
Michael Bishop 4aa1ffae04
initial implementation of vc4 cross-compile 2019-11-19 22:19:15 -04:00
volth 08f68313a4 treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
volth f3282c8d1e treewide: remove unused variables (#63177)
* treewide: remove unused variables

* making ofborg happy
2019-06-16 19:59:05 +00:00
Frederik Rietdijk ef0dbef7f1 Merge master into staging-next 2019-05-12 19:59:09 +02:00
Matthew Bauer 3c5188ccb6 binutils: disable gold when building on darwin
Needed to build anything, otherwise get this error:

https://hydra.nixos.org/build/93192355/
2019-05-11 11:24:35 -04:00
Frederik Rietdijk 87a5d8fede Merge staging-next into staging 2019-05-07 19:30:14 +02:00
Matthew Bauer 02e9697471 binutils: add gettext dependency
Needed on libc without gettext bundled.

Fixes #11420
2019-04-30 22:50:21 -04:00
Matthew Bauer 457b48cc03 binutils: apply patch when cross compiling from darwin
Fixes #60546
2019-04-30 20:24:09 -04:00
Will Dietz cd836b57ec binutils: and apply in right order 2019-01-22 06:36:16 -06:00
Will Dietz bf0a0d424b binutils: patches from upstream to unbreak linking musl
https://sourceware.org/bugzilla/show_bug.cgi?id=23428
2019-01-22 06:36:13 -06:00
Tim Steinbach 53e1db960a
binutils: 2.30.0 -> 2.31.1 2019-01-20 13:03:00 -05:00
Jörg Thalheim 1b146a8c6f
treewide: remove paxutils from stdenv
More then one year ago we removed grsecurity kernels from nixpkgs:
https://github.com/NixOS/nixpkgs/pull/25277

This removes now also paxutils from stdenv.
2018-12-22 12:55:05 +01:00
Piotr Bogdan c302474077 binutils: remove dtneeded.patch 2018-12-19 09:20:38 +01:00
Frederik Rietdijk a510aa2672 Merge master into staging-next 2018-12-03 12:18:43 +01:00
c0bw3b 0498ccd076 Treewide: use HTTPS on GNU domains
HTTP -> HTTPS for :
- http://gnu.org/
- http://www.gnu.org/
- http://elpa.gnu.org/
- http://lists.gnu.org/
- http://gcc.gnu.org/
- http://ftp.gnu.org/ (except in fetchurl mirrors)
- http://bugs.gnu.org/
2018-12-02 15:51:59 +01:00
Léo Gaspard 8ecd555ded
Merge branch 'pr-46056' into staging
* pr-46056:
  binutils: use shared libs
  binutils: fix #44936 the huge size regression
2018-11-28 09:55:05 +09:00
Matthew Bauer 76c956be5c treewide: disable pie in more places
Some packages don’t work correctly with pie. Here I disable it for:

- busybox
- linux kernel
- kexectools

I also get rid of the Musl conditional for disabling pie in GCC and
Binutils. Some day we might want to enable PIE without Musl and it
will be useful to have the *just* work with our compiler and linkers.
2018-11-13 07:03:31 -06:00
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
Vladimír Čunát beb063a103
binutils: use shared libs 2018-09-04 21:36:07 +02:00
Vladimír Čunát fb3ed07a2b
binutils: fix #44936 the huge size regression
206 -> 32 MiB, i.e. not like the previous 26, but much better now.
2018-09-04 21:36:07 +02: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
Jan Malakhovski 35c9435d15 binutils: disable installcheck for different targetPlatforms 2018-08-11 09:35:40 +00:00
Matthew Stewart 18f517fbd6 Enable new dtags in a way that works with binutils 2.30.
In 3027bca, binutils was upgraded from 2.28.1 to 2.30. However, in 2.30,
the ldmain.c file within binutils, which the nixpkgs new-dtags.patch
file is meant to modify, was changed in such a way that the patch no
longer works. As a result, the new dtags are not actually enabled, and
binaries are built with RPATH set instead of RUNPATH, thereby preventing
LD_LIBRARY_PATH from overriding this built-in path. This change corrects
this. The patch file is no longer necessary because binutils's ldmain.c
now sets link_info.new_dtags based on the configuration flags.

This was probably not noticed immediately because, when the derivation
is built with nix-build, the fixupPhase runs patchelf --shrink-rpath.
patchelf converts any RPATH in the binary into RUNPATH (unless
--force-rpath is specified).  Of course, if the binary is built without
nix-build (such as in a nix-shell), this never occurs, and any RPATH in
the binary is left in place.
2018-07-24 11:09:36 +03:00
Jörg Thalheim 218298b30f
Merge branch 'master' into unused5 2018-07-21 15:41:22 +01:00
volth 52f53c69ce pkgs/*: remove unreferenced function arguments 2018-07-21 02:48:04 +00:00
volth 6d2857a311 [bot] treewide: remove unused 'inherit' in let blocks 2018-07-20 19:38:19 +00:00
Matthew Justin Bauer 412e823f29
binutils: disable format hardening
This fails for me:

> compressed_output.cc:320:20: error: format string is not a string literal (potentially insecure) [-Werror,-Wformat-security]
>       gold_warning(_("not compressing section data: zlib error"));
>                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ./system.h:40:20: note: expanded from macro '_'
> # define _(String) gettext (String)
>                    ^~~~~~~~~~~~~~~~
> compressed_output.cc:320:20: note: treat the string as an argument to avoid this
>       gold_warning(_("not compressing section data: zlib error"));
>                    ^
>                    "%s",
> ./system.h:40:20: note: expanded from macro '_'
> # define _(String) gettext (String)
                   ^

Disabling format hardening should hopefully be harmless here. If it's a problem we can also make it conditional.

/cc @Ericson2314
2018-06-12 22:54:10 -04:00
John Ericson ee9dc37e04
Merge pull request #40933 from obsidiansystems/linux-to-darwin
stdenv, binutils: Build cctools targeting macOS on Linux without pointless rebuilds
2018-05-23 11:37:43 -04:00
John Ericson 4ffa8b6125 binutils: Do not needless redownload sources cascading more rebuilds
Unfortunately this is a crude hack that we use the same binutils source
everywhere in the bootstrap chain.
2018-05-23 10:06:08 -04:00
John Ericson 75638e2de9
Merge pull request #40930 from obsidiansystems/binutils-always-patch
binutils: Always apply Aarch64 patch
2018-05-22 13:31:53 -04:00
John Ericson afc439d57b binutils: Always apply Aarch64 patch
Otherwise various things which depend on `--enable-targets=all`
lib{bfd,opcodes}...like LLVM.
2018-05-21 20:30:25 -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
Matthew Justin Bauer eeb016e8f0
Merge branch 'staging' into fix-ncurses-darwin-extensions 2018-05-02 15:40:38 -05:00
georgewhewell e22ba26c7b binutils: apply patch on aarch64 to fix https://sourceware.org/bugzilla/show_bug.cgi?id=22764
(cherry picked from commit 5ce2d3355d)
2018-04-28 19:46:05 +01: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
Tuomas Tynkkynen 3c6e077301 Merge remote-tracking branch 'upstream/master' into HEAD
Conflicts:
	pkgs/development/tools/misc/binutils/default.nix
2018-04-22 22:31:30 +03:00
Ken Micklas ebc2243778 binutils: Add iOS as a supported platform 2018-04-19 11:37:10 -04:00
georgewhewell 5ce2d3355d binutils: apply patch on aarch64 to fix https://sourceware.org/bugzilla/show_bug.cgi?id=22764 2018-04-17 16:21:28 +01:00
Shea Levy f8d38c31ae
binutils: Add comment about the limited lifetime of gold-symbol-visibility.patch 2018-03-28 12:40:44 -04:00
Shea Levy 1fa4b7149c
binutils: Revert apparently-broken multiple-definition support in gold.
Fixes llvm at least.
2018-03-20 17:22:10 -04:00
Shea Levy 3027bca02a
binutils: Bump default to 2.30 2018-03-20 17:22:10 -04: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
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 5b74540c5b treewide: Use depsBuildBuild for buildPackges.stdenv.cc 2017-12-30 22:04:21 -05:00
Ben Gamari c15c449236 binutils: Always search DT_RPATH 2017-12-29 17:32:28 -05:00