Commit Graph

9 Commits

Author SHA1 Message Date
John Ericson
adaa110a72 binutils: No more darwin conditionals
Since at least d7bddc27b23da8ce7bc19cfeeeb0cbebdb5a4410, we've had a
situation where one should depend on:

 - `stdenv.cc.bintools`: for executables at build time
 - `libbfd` or `libiberty`: for those libraries
 - `targetPackages.cc.bintools`: for exectuables at *run* time
 - `binutils`: only for specifically GNU Binutils's executables,
   regardless of the host platform, at run time.

and that commit cleaned up this usage to reflect that. This PR flips the
switch so that:

 - `binutils` is indeed unconditionally GNU Binutils
 - `binutils-raw`, which previously served that role, is gone.

so that the correct usage will be enforced going forward and everything
is simple.

N.B. In a few cases `binutils-unwrapped` (which before and now was
unconditionally actual GNU binutils), rather than `binutils` was used to
replace old `binutils-raw` as it is friendly towards some cross
compilation usage by avoiding a reference to the next bootstrapping
change.
2018-04-03 13:34:52 -04:00
John Ericson
1c00a8afd7 libiberty, libbfd: Make hash less fickle
These shouldn't respond to targetPlatform, but previously did. The
reason is somewhat complex: they would rely on the sources of gcc and
binutils, respectively, which *do* depend on the target platform.
Obviously the source is the same in all cases, but when those packages
are no longer preserved from bootstrapping stages their `src` attributes
use a different fetchurl resulting in a changed hash.
2018-02-24 01:43:09 -05:00
Will Dietz
767bddbd80 libbfd: manually update config.guess/config.sub
Workaround for building "from" the bfd directory but needing
to update files a level above.

This needs to be done *after* autoreconf since autoreconf
will replace these itself, apparently.
2018-02-13 13:42:21 -06:00
Will Dietz
42a17d638b libbfd: back to postPatch, restore configurePlatforms 2018-02-13 13:42:21 -06:00
Will Dietz
a65aa78e14 libbfd: simplify per reviewer feedback
Changing postPatch to postAutoreconf is needed
when updateAutotoolsGnuConfigScriptsHook is used
or the directory change happens too early.
2018-02-13 11:20:08 -06:00
Will Dietz
2d772d52ae libbfd: fix for cross (based on same from @bgamari) 2018-02-13 09:44:29 -06:00
John Ericson
2bba929062 bintools-wrapper: Import separately from cc-wrapper 2017-12-13 16:08:18 -05:00
John Ericson
9a24437411 libbfd, libopcodes: Fix eval on Darwin
Not sure how I missed this...
2017-11-15 11:59:54 -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