Commit graph

130 commits

Author SHA1 Message Date
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
Vladimír Čunát 6899c7fdb9
Merge branch 'master' into gcc-6 2017-08-12 10:09:41 +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 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