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.
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
Since glibc 2.26, struct ucontext no longer exists but is wrapped in a
typedef ucontext_t.
This is basically a backport of the patch to gcc version 4.5 which was
introduced by @vcunat in f04b64c1e9.
Building against x86_64-linux and i686-linux now succeeds.
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @abbradar
Update to the latest version (note versioning change).
From the changelog for 'mediainfo' (libzen changelog is unavailable):
===
Version 17.10, 2017-11-02
--------------
+ We need your support! Visit https://mediaarea.net/SupportUs
+ Version scheme is now YY.MM (year dot month, 2 digits each)
+ New MediaInfo XML output, with XSD, more suitable for automatic
parsing. Use Option("Inform", "OLDXML") for keeping previous behavior
+ New "Info_OutputFormats" option for listing supported output formats
+ Universal Ad ID: refactored display, better display of value and
registry, XML name slightly modified
+ MOV: support of HDR metadata (MasteringDisplayColorVolume, MaxCLL,
MaxFALL)
+ BWF: display of UMID and loudness info
+ AAC: show program_config_element in trace
+ MPEG Audio: frame rate info
+ PCM in WAV and Matroska: Support of ValidBitsPerSample
+ I197, EBUCore: 1.8 output uses now final version of XSD and final XSD
location
+ Matroska: tweaking frame rate empirical detection for some corner
cases
x I1070, LAME 3.100 info tag was incorrectly parsed
x B1068, MPEG Audio: Incoherent duration between General and Audio
parts, Audio part duration fixed
x Matroska: showing "A_MS/ACM" Matroska CodecID
x MXF: Fix crash with some buggy files
x MXF: was not well supporting MXF referencing only 1 file
x PCM in WAV: 8-bit content is unsigned and without endianess
x PCM in WAV and Matroska: More coherency between Wave info and
ExtensibleWave Info (bitdepth, sign)
x WAV: GUID display was with first 8 bytes in wrong order
x Several crash fixes
Main change: glibc: 2.25-x -> 2.26-y, containing security fixes,
and various features and deprecations. Unfortunately, some of the
latter still cause (transitively) a couple hundred newly failing jobs.
I'm not delaying anymore, so that we have the security fix on master.
I mainly patched gcc, llvm and icu, but I can't fix everything...