Commit Graph

212 Commits

Author SHA1 Message Date
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
Shea Levy
ca6710b2e6
binutils: Add 2.30. 2018-02-19 07:57:32 -05: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
John Ericson
cebe1b4c08 darwin binutils: Better handling of man pages and info 2017-12-13 16:08:18 -05:00
John Ericson
e755a8a27d treewide: Use targetPrefix instead of prefix for platform name prefixes
Certain tools, e.g. compilers, are customarily prefixed with the name of
their target platform so that multiple builds can be used at once
without clobbering each other on the PATH. I was using identifiers named
`prefix` for this purpose, but that conflicts with the standard use of
`prefix` to mean the directory where something is installed. To avoid
conflict and confusion, I renamed those to `targetPrefix`.
2017-11-27 03:15:50 -05:00
Orivej Desh
c76890f2fe binutils: disambiguate ARM targets
https://github.com/NixOS/nixpkgs/pull/30484#issuecomment-345472766

Since [1] libbfd is compiled with support for all available targets. However, it
can not choose whether an ARM ELF file is elf32-littlearm,
elf32-littlearm-symbian, or elf32-littlearm-vxworks, and fails with the "File
format is ambiguous" error.  Here [2] Alan Modra intended to prioritize the
first of the three, but although his patch was merged and reportedly solved the
issue, currently glibc 2.28.1 and 2.29.1 again fail to disambiguate these
targets.  This commit makes it prioritize elf32-littlearm over the other two.

[1] f8741c38cd
[2] https://sourceware.org/ml/binutils/2013-05/msg00271.html
2017-11-19 03:36:53 +00:00
John Ericson
eaacf47ff4 binutils: Make myself a maintainer 2017-11-14 10:51:01 -05:00
John Ericson
f8741c38cd binutils, gdb: Do not expose libbfd or libopcodes, and be multitarget
There are separate derivations for these libraries and we don't want
conflict. Multitarget is generally more useful, and will eventually
speed up cross builds, so why not?!
2017-11-13 08:46:15 -05:00
John Ericson
de28bd4832 bfd, opcodes: Init separate derivations for binutils libraries
On most distros, these are just built and distributed as part of
binutils. We don't use binutils across the board, however, but rather
switch between binutils and a cctools-binutils mashup, and change the
outputs on binutils too. This creates a combinatorial conditional soup
which is hard to maintain.

My hope is to lower the the state space. While my patch isn't the most
maintainable, they make downstream packages become more maintainable to
compensate. The additional derivations themselves are completely
platform-agnostic, always they always supports all possible target
platforms, and always yield "out" and "dev" outputs. That, in turn,
allows downstream packages to not worry about a dependency
shape-shifting under them.

In fact, the actual binutils package can avoid needing multiple outputs
now that these serve the requisite libraries, so that also can become
simpler on all platforms, too, removing the original wart this PR
circumnavigates for now. Actually changing the binutils package to
leverage is a mass rebuild, however, so I'll leave that for a separate
PR.

I do hope to upstream something like my patch too, but until then I'll
make myself maintainer of these derivations
2017-11-13 00:47:37 -05:00
John Ericson
e5567bae2d treewide: Do not limit hardenging because gcc 4.9 in bootstrap
Bootstrap tools has since been bumped
2017-09-14 10:27:13 -04:00
Tuomas Tynkkynen
0c0fad6141 treewide: Consistently call ARM 'arm'
No need for silly differences.
2017-08-24 01:17:01 +03:00
John Ericson
41abe41fd9 binutils: Pass --build --host on non-arm
This is needed for build != host == target builds. Moreoever, we want
to move towards always passing all 3, and the previous change to
unbreak Arm moved us away from that.
2017-08-18 13:00:24 -04:00
Tuomas Tynkkynen
88efc22b44 binutils: Don't pass --host etc. when not cross-compiling
Or linuxHeaders build fails on ARM (non-cross) since e826a6a247:

````
  HOSTCC  scripts/basic/fixdep
/nix/store/9glws7v2j28blv1n7azqr3b43qadjd1j-binutils-2.28.1/bin/ld: unrecognised emulation mode: armelf_linux_eabi
Supported emulations: armelf_linux armelf armelfb armelfb_linux
collect2: error: ld returned 1 exit status
````
2017-08-17 18:37:10 +03:00
Tuomas Tynkkynen
d8bea2498d binutils: Add upgrade notes 2017-08-17 18:37:10 +03:00
Tuomas Tynkkynen
390ccbbf29 binutils: 2.28 -> 2.28.1 2017-08-17 18:37:10 +03:00
Tuomas Tynkkynen
f9b2d7b4dd Revert "binutils: 2.28 -> 2.29"
This reverts commit 733e20fee4.

Downgrading to 2.28.1, 2.29 is too buggy.
2017-08-17 18:37:04 +03:00
Tuomas Tynkkynen
23547ac24a Revert "binutils: patch bugs in 2.29"
This reverts commit 0e18f28cec.

Downgrading to 2.28.1, 2.29 is too buggy.
2017-08-17 18:36:58 +03:00
Tuomas Tynkkynen
f660f58c83 Revert "binutils: add missing patches..."
This reverts commit ad83979e59.

Downgrading to 2.28.1, 2.29 is too buggy.
2017-08-17 18:36:38 +03:00
Vladimír Čunát
6899c7fdb9
Merge branch 'master' into gcc-6 2017-08-12 10:09:41 +02:00
Robin Gloster
ad83979e59
binutils: add missing patches... 2017-08-04 08:36:44 +02:00
Robin Gloster
0e18f28cec
binutils: patch bugs in 2.29
All are upstream patches, the last two added by handy to work around
them not applying on the changelog.

2.29.1/2.30 will contain the fixes, too.
2017-08-04 08:22:20 +02:00
Tim Steinbach
733e20fee4
binutils: 2.28 -> 2.29
Binutils 2.29 no longer allows .semver symbols, which is why
we need to patch glibc to avoid them
2017-07-29 13:23:59 -04:00
Eelco Dolstra
a13802b2c8
Merge remote-tracking branch 'origin/master' into gcc-6 2017-07-21 11:05:58 +02:00
John Ericson
95c8277701 misc pkgs: Remove unneeded *Platform == *Platform comparisons
PR #26007 used these to avoid causing a mass rebuild. Now that we know
things work, we do that to clean up.
2017-06-30 10:09:31 -04:00
John Ericson
af8d1a4ace binutils: Fix build != host == target 2017-06-22 17:53:54 -04:00
Robin Gloster
15f6dcb668
Merge remote-tracking branch 'upstream/master' into gcc-6 2017-06-20 11:24:39 +02:00
John Ericson
200ac02d0f binutils: Modernize derivation
No hashes of any sort should be changed
2017-06-06 19:28:16 -04:00
Robin Gloster
da9adb8fab
Merge remote-tracking branch 'upstream/master' into gcc-6 2017-05-20 14:55:44 +02:00
John Ericson
7018dfb9f4 binutils and cctools: Prefix derivation names with target for cross
We want platform triple prefixes and suffixes on derivation names to
be used consistently. The ideom this commit strives for is

 - suffix means build != host, i.e. cross *built* packages. This is
   already done.

 - prefix means build != target, i.e. cross tools. This matches the
   tradition of such binaries themselves being prefixed to disambiguate.]
   Binutils and cctools, as build tools, now use the latter
2017-05-17 15:33:05 -04:00
John Ericson
88ea6463a3 binutils on darwin: Clean up the rats nest
- No more *Cross duplication for binutils on darwin either.
   `cctools_cross` is merged into plain `cctools`, so `buildPackages`
   chains alone are used to disambiguate.

 - Always use a mashup of cctools and actual GNU Binutils as `binutils`.
   Previously, this was only done in the native case as nobody had
   bothered to implement the masher in the cross case. Implemented it
   basically consisted of extending the wrapper to deal with prefixed
   binaries.
2017-05-17 15:33:05 -04:00
Dan Peebles
1a4ca220e1 treewide: fix assorted issues revealed by the meta checker
Turns out a couple of the licenses were wrong, as well as being strings.
2017-04-28 23:07:42 -04:00
John Ericson
4c0d7da183 Get rid of all with { inherit... } and just used let inherit...
The old forms presumably predates, or were made in ignorance of,
`let inherit`. This way is better style as the scoping as more lexical,
something which Nix can (or might already!) take advantage of.
2017-03-30 03:05:05 -04:00
Lancelot SIX
ecd849b267
binutils: 2.27 -> 2.28
See http://lists.gnu.org/archive/html/info-gnu/2017-03/msg00002.html
for release announcement
2017-03-07 12:09:41 +01:00
Vladimír Čunát
e2e270d1e2
binutils: drop the $dev/bin symlink
Fixes #18839.  I suspect I once added this just because of some
deficiencies in an early development version of the multiple-output
framework in stdenv.
2017-02-27 20:08:26 +01:00
Tuomas Tynkkynen
01d03cb5e7 binutils: Fix cross build
Broken after commit 17a344a ("binutils: Add lib output").
2017-02-04 23:39:25 +02:00
Vladimír Čunát
db896154d1
binutils: minimize rebuilds after parent revert
Only revert the addition of the output and only on Darwin.
2017-01-30 14:10:13 +01:00
Robin Gloster
eaa9e01c1d
Revert "binutils: Add lib output"
This reverts commit 17a344a5da.
2017-01-30 13:03:48 +01:00
Eelco Dolstra
17a344a5da
binutils: Add lib output
Some packages depend on libbfd. This prevents them from having all of
binutils in their closure (which is 29 MiB).
2017-01-25 20:12:33 +01:00
Eelco Dolstra
bbc204cd98 binutils: Add lib output
Some packages depend on libbfd. This prevents them from having all of
binutils in their closure (which is 29 MiB).
2016-10-14 18:12:20 +02:00
Tuomas Tynkkynen
89833c0c72 binutils: Shuffle outputs 2016-08-29 14:49:54 +03:00
Lancelot SIX
0c12ae5615
binutils: 2.26.1 -> 2.27
Release announcement at
http://lists.gnu.org/archive/html/info-gnu/2016-08/msg00012.html
2016-08-26 08:51:09 +02:00
Robin Gloster
63c7b4f9a7 Merge remote-tracking branch 'upstream/master' into hardened-stdenv 2016-07-31 20:51:34 +00:00
Lancelot SIX
281449424f binutils: 2.26 -> 2.26.1
See announcement at
http://lists.gnu.org/archive/html/info-gnu/2016-07/msg00000.html
2016-07-22 10:20:10 +02:00
Robin Gloster
5185bc1773 Merge remote-tracking branch 'upstream/master' into hardened-stdenv 2016-07-15 14:41:01 +00:00
Tobias Geerinckx-Rice
61ba956cc8
binutils: remove unused pt-pax-flags-20121023.patch 2016-06-22 01:25:26 +02:00
Robin Gloster
d020caa5b2 Merge remote-tracking branch 'upstream/master' into hardened-stdenv 2016-04-18 13:49:22 +00:00
Robin Gloster
3e68106afd Merge remote-tracking branch 'upstream/master' into hardened-stdenv 2016-04-07 21:52:26 +00:00
Vladimír Čunát
d1df28f8e5 Merge 'staging' into closure-size
This is mainly to get the update of bootstrap tools.
Otherwise there were mysterious segfaults:
https://github.com/NixOS/nixpkgs/pull/7701#issuecomment-203389817
2016-04-07 14:40:51 +02:00
Vladimír Čunát
ab15a62c68 Merge branch 'master' into closure-size
Beware that stdenv doesn't build. It seems something more will be needed
than just resolution of merge conflicts.
2016-04-01 10:06:01 +02:00
Evgeny Egorochkin
5982591afc binutils: cherry-pick a patch from master; this fixes build failure for akonadi; see https://sourceware.org/bugzilla/show_bug.cgi?id=19698 2016-03-29 22:46:22 +03:00
Robin Gloster
f60c9df0ba Merge remote-tracking branch 'upstream/master' into hardened-stdenv 2016-03-28 15:16:29 +00:00
Franz Pletz
aff1f4ab94 Use general hardening flag toggle lists
The following parameters are now available:

  * hardeningDisable
    To disable specific hardening flags
  * hardeningEnable
    To enable specific hardening flags

Only the cc-wrapper supports this right now, but these may be reused by
other wrappers, builders or setup hooks.

cc-wrapper supports the following flags:

  * fortify
  * stackprotector
  * pie (disabled by default)
  * pic
  * strictoverflow
  * format
  * relro
  * bindnow
2016-03-05 18:55:26 +01:00
Eelco Dolstra
89742e6b05 binutils: Apply upstream bug fix
This broke syslinux: http://hydra.nixos.org/build/32430411/nixlog/89/raw
2016-02-29 15:33:57 +01:00
Eelco Dolstra
817145ebbc binutils: 2.23.1 -> 2.26
There has been an abortive attempt to upgrade binutils in the past
(see #909). Since we can't stay stuck at 2.23.1 forever, let's try
again.
2016-02-28 01:10:35 +01:00
Robin Gloster
402d57ee8e bootstrap env: disable stackprotector hardening until gcc >=4.9 2016-02-22 18:32:53 +00:00
Vladimír Čunát
ae74c356d9 Merge recent 'staging' into closure-size
Let's get rid of those merge conflicts.
2016-02-03 16:57:19 +01:00
Vladimír Čunát
1f2b819783 binutils: extend meta.platforms to unix to fix #12606
Also refactor meta.
Maybe we could have platforms.all in there, but I leave it here.
2016-01-25 11:18:10 +01:00
Tuomas Tynkkynen
f62dbc0121 binutils: Add platforms
There are some variants of binutils in all-packages.nix that aren't
getting built by Hydra currently.
2016-01-24 08:47:46 +02:00
Tuomas Tynkkynen
ad1eb36dac binutils: Don't use multiple-outputs when cross compiling 2015-10-03 16:43:23 +02:00
Vladimír Čunát
5227fb1dd5 Merge commit staging+systemd into closure-size
Many non-conflict problems weren't (fully) resolved in this commit yet.
2015-10-03 13:33:37 +02:00
Vladimír Čunát
61596bf405 Merge #8363: pure-darwin stdenv 2015-06-18 22:38:08 +02:00
Jude Taylor
fa9c81f694 pure darwin stdenv 2015-06-18 12:37:41 -07:00
Shea Levy
90fd9a55d9 binutils: don't build with Werror 2015-05-13 18:17:25 +02:00
Vladimír Čunát
bf414c9d4f Merge 'staging' into closure-size
- there were many easy merge conflicts
- cc-wrapper needed nontrivial changes

Many other problems might've been created by interaction of the branches,
but stdenv and a few other packages build fine now.
2015-04-18 11:22:20 +02:00
William A. Kennington III
91221f5941 Revert "binutils: 2.23.1 -> 2.25"
This reverts commit 4adae43646.

This breaks the building of samba and likely other binaries as some
libraries are never linked.
2015-04-08 12:14:08 -07:00
William A. Kennington III
4adae43646 binutils: 2.23.1 -> 2.25 2015-03-26 00:24:17 -07:00
Ambroz Bizjak
ec38dbe64b binutils: Move bison to nativeBuildInputs. 2015-02-05 21:26:24 +01:00
Michael Raskin
d81303813a Merge pull request #3465 from joelteon/picky-binutils
Stop binutils from trying to build on Darwin
2014-09-03 19:57:09 +04:00
Vladimír Čunát
8da52a642a Merge branch 'staging' into v/modular
Conflicts (easy):
	pkgs/development/interpreters/perl/5.10/setup-hook.sh
	pkgs/development/interpreters/perl/5.8/setup-hook.sh
	pkgs/development/libraries/gtk+/2.x.nix
2014-08-31 12:23:18 +02:00
Vladimír Čunát
a70180ba73 mutiout: make it builtin 2014-08-30 08:27:43 +02:00
Vladimír Čunát
fb59f27a43 WIP: getting good 2014-08-27 01:14:09 +02:00
Bjørn Forsman
c9baba9212 Fix many package descriptions
(My OCD kicked in today...)

Remove repeated package names, capitalize first word, remove trailing
periods and move overlong descriptions to longDescription.

I also simplified some descriptions as well, when they were particularly
long or technical, often based on Arch Linux' package descriptions.

I've tried to stay away from generated expressions (and I think I
succeeded).

Some specifics worth mentioning:
 * cron, has "Vixie Cron" in its description. The "Vixie" part is not
   mentioned anywhere else. I kept it in a parenthesis at the end of the
   description.

 * ctags description started with "Exuberant Ctags ...", and the
   "exuberant" part is not mentioned elsewhere. Kept it in a parenthesis
   at the end of description.

 * nix has the description "The Nix Deployment System". Since that
   doesn't really say much what it is/does (especially after removing
   the package name!), I changed that to "Powerful package manager that
   makes package management reliable and reproducible" (borrowed from
   nixos.org).

 * Tons of "GNU Foo, Foo is a [the important bits]" descriptions
   is changed to just [the important bits]. If the package name doesn't
   contain GNU I don't think it's needed to say it in the description
   either.
2014-08-24 22:31:37 +02:00
Eelco Dolstra
5c53f22492 Revert "binutils: Enable sysroot support"
This reverts commit 773595540b. It
breaks stuff and we don't need it anymore.

http://hydra.nixos.org/build/13517591
2014-08-20 11:13:46 +02:00
Eelco Dolstra
773595540b binutils: Enable sysroot support 2014-08-17 17:25:12 +02:00
Joel Taylor
a232a2d2c5 prevent usage of binutils on darwin 2014-08-04 13:30:05 -07:00
Mateusz Kowalczyk
7a45996233 Turn some license strings into lib.licenses values 2014-07-28 11:31:14 +02:00
Ricardo M. Correia
2902c8f628 binutils: Add PaX patch 2014-05-15 13:25:49 +02:00
Eelco Dolstra
1e986d8de3 binutils: Use dynamic instead of shared libraries
This reduces the size of binutils from 29 to 17 MiB.
2014-01-07 15:01:59 +01:00
Eelco Dolstra
4b31f920b6 binutils: Get rid of a redundant copy of gold 2014-01-07 14:55:55 +01:00
Eelco Dolstra
320209a618 Merge deterministicStdenv into the default stdenv
This means that (on Linux) strip uses
"--enable-deterministic-archives" and ld uses the
BFD_DETERMINISTIC_OUTPUT flag.
2014-01-07 13:57:42 +01:00
Vladimír Čunát
2c7c65595d Revert "binutils: minor update 2.23.1 -> .2"
This reverts commit 15f96c840f.
See #909.

Conflicts (trivial, auto-resolved):
	pkgs/development/tools/misc/binutils/default.nix
2013-09-16 15:53:40 +02:00
Peter Simons
701937b085 binutils: remove unused flex2535, bc, and dejagnu arguments 2013-09-09 10:34:37 +02:00
Vladimír Čunát
c074433fc6 binutils: add support for x86_64 in i686 builds (close #857)
Also some style refactoring around repeating "stdenv.lib.optional*".
The author of the idea is @errge.
2013-09-02 22:03:43 +02:00
Vladimír Čunát
74488e2b58 Merge branch 'x-updates' into stdenv-updates
Conflicts (simple):
	pkgs/development/libraries/glib/default.nix
	pkgs/development/libraries/mesa/default.nix
2013-09-02 15:44:57 +02:00