3
0
Fork 0
forked from mirrors/nixpkgs
Commit graph

131037 commits

Author SHA1 Message Date
John Ericson d7160f39bd Merge branch 'linux-pam-cross' into HEAD 2018-05-14 22:56:48 -04:00
John Ericson 29b62e07d6 pam: Remove crossAttrs
It turns out none of this stuff is needed. The docs aren't evenly built
properly anyways so the build trivially succeeds either way, due to what
looks like upstream misunderstanding automake. If I try to build the
docs manually in a cross shell (before and after this change), there's a
make rule error such that some HTML files aren't even attempted to be
built and then a copy fails.

Even if this was all fixed, these been a good number of cross fixes
upstream getting them to use CC_FOR_BUILD and other good stuff, so I
doubt such hacks would be needed.

Progress towards #40531 and #33302.
2018-05-14 22:28:37 -04:00
John Ericson 84868b8b06 misc hurd stuff: Get rid of crossConfig
This stuff is horribly bit-rotted anyways, but I'm getting rid of
crossConfig so it must be changed.
2018-05-14 20:47:08 -04:00
John Ericson 9be118223b misc mingw: Get rid of crossConfig and clean up
Style of dual implementation and headers derivations is take from
bb7067f882.
2018-05-14 20:32:42 -04:00
John Ericson de169a5950 Merge commit '3a9654bfe29ebd987b7426faa25f00af1fab02c5' into HEAD 2018-05-14 14:20:40 -04:00
John Ericson 3a9654bfe2 gcc: Simplify this old Hurd condition
Steps towards getting rid of crossConfig.
2018-05-14 13:13:11 -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
John Ericson 29db817003 gnu-config: Update to support ARM and 4 quardruples
I recently upstreamed

 - https://git.savannah.gnu.org/cgit/config.git/commit/?id=50a0413a5ba9684aa9247444c60a5cea47c4435d
 - https://git.savannah.gnu.org/cgit/config.git/commit/?id=09df750b994963a47f7c450f74b7e3f8567a6355
2018-05-14 10:55:32 -04:00
John Ericson eebd455dc0 linux stdenv: Update gnu-config on all non-x86
Not just Aarch64. Other non-x86 platforms might be old enough, but I am
about to update gnu-config to handle things better across the board.
2018-05-14 10:55:32 -04:00
John Ericson 29ef982af4 Merge commit '130a0cbde6feae6b51f35a007c78cc8a25a6c3c9' into strict-deps-base 2018-05-13 16:17:26 -04:00
Tuomas Tynkkynen ba172467cc U-Boot: Disable parallel build
https://hydra.nixos.org/build/71880710
(cherry picked from commit 50dc85ed62)
(cherry picked from commit 91b09422cf)
2018-05-13 16:12:11 -04:00
Tuomas Tynkkynen d884ece1da U-Boot: Make ubootJetsonTK1 install even more files
(cherry picked from commit 4fe75d11b2)
(cherry picked from commit a68e60f450)
2018-05-13 16:12:11 -04:00
Tuomas Tynkkynen f2ea9e0ebf U-Boot: Add Pine64 build
(cherry picked from commit 4b77663edf)
(cherry picked from commit 1896fcff60)
2018-05-13 16:12:11 -04:00
Samuel Dionne-Riel 566d3feb4e U-Boot: Add SOPINE Baseboard build
This build is compatible with PINE A64-LTS.

[dezgeg changed the original device tree patch to v4 of the patch series
"sunxi: sync H3, H5, A64 DTs from mainline Linux" submitted to the
upstream mailing list by Andre Przywara. Also install the
u-boot-sunxi-with-spl.bin binary similar to 32-bit boards
since it's now being built by the upstream build system.]

(cherry picked from commit 2ff31f71ae)
(cherry picked from commit 176d151f4d)
2018-05-13 16:12:10 -04:00
Tuomas Tynkkynen 7dffe0d38c U-Boot: Add AArch64 QEMU build
See

https://github.com/u-boot/u-boot/blob/master/doc/README.qemu-arm

on how to use it.

(cherry picked from commit 6b069c656a)
(cherry picked from commit eff6d9628c)
2018-05-13 16:12:10 -04:00
Ben Wolsieffer b63124dfc5 uboot: fix cross-build of ubootTools
(cherry picked from commit 28fd7d9594)
(cherry picked from commit 4c669db598)
2018-05-13 16:12:10 -04:00
Ben Wolsieffer d50bcaa816 uboot: sheevplug and guruplug: use mainline U-Boot
These derivations have not seen any updates since they were created in 2010,
and some of their sources have disappeared. There are upstream configs for
these boards, so these are now used, and they build correctly. I have no way
of testing them, and I don't if anyone even uses either board with Nix anymore.

(cherry picked from commit 01020b3263)
(cherry picked from commit 48ade50d8e)
2018-05-13 16:12:08 -04:00
Ben Wolsieffer 2a450cec19 uboot: add patch to increase maximum path length in extlinux.conf
This fixes problems with cross compiled kernels failing to boot.

(cherry picked from commit 1f4bb8c61d)
(cherry picked from commit 828fdd61b9)
2018-05-13 16:09:00 -04:00
Ben Wolsieffer d29202bc48 uboot: 2017.11 -> 2018.03, cross fixes
(cherry picked from commit 5804547243)
(cherry picked from commit 7c46833b04)
2018-05-13 16:09:00 -04:00
John Ericson 130a0cbde6 guile: Remove old crossAttrs
We fixed the linker issue with propagated dependencies.

(cherry picked from commit 515ca1a7c8)
2018-05-13 11:36:30 -04:00
Michael Alan Dorman d77dab3ecc guile: Fix and clean up libtool propagation fixes
Fixes #37548

(cherry picked from commit 72984210ab)
2018-05-13 11:36:30 -04:00
Michael Alan Dorman 9a4cc93522 guile-1.8: Fix and clean up libtool propagation fixes
Fixes #37548

(cherry picked from commit 2119041dbf)
2018-05-13 11:36:29 -04:00
John Ericson 8415682658 guile: Fix cross more, including 1.8
(cherry picked from commit 76bc1d3fae)
2018-05-13 11:36:29 -04:00
Shea Levy 0fcad047b9 Guile: Fix cross-compilation
(cherry picked from commit f79fa77941)
2018-05-13 11:36:29 -04:00
John Ericson f2004e6287 lib: Fix float handling for Aarch32
Forgot to adjust default so abi with explicit float attr would be used.
2018-05-12 15:18:31 -04:00
John Ericson 6f40d18d44 prebuilt android cc: Edit wrapper to pass the right -m flags for armv7a
(cherry picked from commit 827ef09140)
2018-05-12 15:16:16 -04:00
John Ericson e3f6c6d18d lib: Add 32-bit Android platforms 2018-05-11 18:41:55 -04:00
John Ericson 341794a4b9 lib/systems: Sort platforms, and space CPUs 2018-05-11 15:02:18 -04:00
John Ericson e98814461d glibc: Remove old-style nullable "cross" variable
Much better to just use {build,host}Platform directly.
2018-05-10 18:05:08 -04:00
John Ericson 1fe81a4bcd lib: Clean up float/fpu options
ARM ABIs now have a float field. This is used as a fallback to lessen
our use of `platform.gcc.float`. I didn't know what the MIPs convention
is so I kept using `platform.gcc.float` in that case.
2018-05-10 18:02:00 -04:00
John Ericson c9f6a82b61 gcc: Factor out "platform flags" 2018-05-10 18:00:57 -04:00
John Ericson a02be2bd85 treewide: Get rid of *Platform.arch
Use `parsed.cpu.name` or `platform.gcc.arch` instead.
2018-05-10 01:37:31 -04:00
John Ericson a31984ecda uclibc: Bump to uclibc-ng 1.0.30 2018-05-10 00:17:44 -04:00
John Ericson d65fe65616 uclibc: Fix eval 2018-05-10 00:17:43 -04:00
John Ericson f063a860d6 xbursttools: Cleanup slightly 2018-05-09 23:40:13 -04:00
John Ericson e42a7a5c0b lib/systems: Add uClibc just like MUSL 2018-05-09 23:39:23 -04:00
John Ericson 3fa0ba9177 lib/systems: Parse more arm cpu types 2018-05-09 18:57:39 -04:00
John Ericson 302c4c5f2d stdenv: Put back isArm, with deprecation notice.
This was always meant to be deprecated rather than removed.
2018-05-07 20:14:52 -04: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 1a72330ab0 cc-wrapper: Utilize patched cctools ld for more robust macOS Sierra hack
Also fix numberous bugs, such as:

 - Not getting confused on more flags taking file arguments.

 - Ensuring children reexport their children, but the original
   binary/library doesn't.

 - Not spawning children when it turns out we just dynamically link
   under the threshold but our total number of inputs exceeeds it.

 - Children were always named `libunnamed-*`, when that name was
   supposed to be the last resort only.

ld-wrapper's own RPATH check hardcodes `.so`, but darwin uses `.dylib`
*and* (in practice due to lousy build systems) `.so`. We don't care
however because we never inject `--rpath` like that in practice on
Darwin. Hopefully someday we won't on linux either.
2018-04-13 13:17:03 -04:00
John Ericson 1001311280 cctools: Add alternative source for sierra hack
Source master rebase of my [PR #34].

Eventually, we might consider doing something for GNU binutils too, in
order that we switch (the normal) ld-wrapper to always use this to
leverage ld to resolve libraries, rather than faking it in bash.

[PR #34]: https://github.com/tpoechtrager/cctools-port/pull/34
2018-04-12 19:16:51 -04:00
John Ericson 01e1722e8f cctools: Make assert meta.broken instead
This more politely expresses the same thing
2018-04-12 19:15:47 -04:00
John Ericson 175d4ab1db lib: Make platform predicates greppable
Should have commited on here and on merged master to begin with, but I
didn't, so instead I cherry-pick.

(cherry picked from commit 88c04a8b6b)
2018-03-20 12:35:20 -04:00
John Ericson ec2aff0be6 lib: Messed up or operator precedence
Github broke oddly on my previous PR, so I tested and merged by hand.
Otherwise ofborg would have caught this.
2018-03-19 22:25:49 -04:00
John Ericson 192f4144b2 release-lib: Filter supportedSystems with meta.platforms-style patterns
Instead of intersecting system strings, we filter with the sort of
patterns used in `meta.platforms`.

Indicating this change `forTheseSystems` has been renamed to
`forMatchingSystems`, since the given list is now patterns to match, and
not the systems themselves. [Just as with `meta.platforms`, systems
strings are also supported for backwards compatibility.]

This is more flexible, and makes the `forMatchingSystems` and
packagePlatforms` cases more analogous.
2018-03-19 21:32:28 -04:00
John Ericson e547bd0dc4 lib: Factor in tiny bit of meta.platform checking
I need it in stdenv and release-lib, so that seems motivation enough.
2018-03-19 19:29:16 -04:00
John Ericson eae19f3c28 release-lib: Adapt to work with new meta.platforms
`packagePlatforms` now filters `supportedSystems` with the new-style
`meta.platforms`, rather than just plopping it in as is.
2018-03-15 00:44:38 -04:00
John Ericson c26252af3e lib, stdenv: Check meta.platforms against host platform and be open world
First, we need check against the host platform, not the build platform.
That's simple enough.

Second, we move away from exahustive finite case analysis (i.e.
exhaustively listing all platforms the package builds on). That only
work in a closed-world setting, where we know all platforms we might
build one. But with cross compilation, we may be building for arbitrary
platforms, So we need fancier filters. This is the closed world to open
world change.

The solution is instead of having a list of systems (strings in the form
"foo-bar"), we have a list of of systems or "patterns", i.e. attributes
that partially match the output of the parsers in `lib.systems.parse`.
The "check meta" logic treats the systems strings as an exact whitelist
just as before, but treats the patterns as a fuzzy whitelist,
intersecting the actual `hostPlatform` with the pattern and then
checking for equality. (This is done using `matchAttrs`).

The default convenience lists for `meta.platforms` are now changed to be
lists of patterns (usually a single pattern) in
`lib/systems/for-meta.nix` for maximum flexibility under this new
system.

Fixes #30902
2018-03-15 00:44:34 -04:00
John Ericson 4c52e34ca6 stdenv: Clean up check meta args 2018-03-14 18:58:07 -04:00
John Ericson f79f80dbf2 treewide: get rid of platforms.allBut
Negative reasoning like `allBut` is a bad idea with an open world of
platforms. Concretely, if we add a new, quite different sort of
platform, existing packages with `allBut` will claim they work on it
even though they probably won't.
2018-03-14 18:44:42 -04:00