This has been not touched in 6 years. Let's remove it to cause less
problems when adding new cross-compiling infrastructure.
This also simplify gcc significantly.
Outside of the nix-build the target is `x86_64-apple-darwin17.4.0`,
while inside the target is `x86_64-apple-darwin`. This difference
causes the fallback target configuration for darwin, which disables
gdb. Add a patch to make the target matching more flexible.
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?!
This setup hook is propagated by gdb. Thus, a typical use is:
$ nix-shell -p gdb nix nix.debug sqlite.debug ...
and gdb will be able find the debug symbols of nix etc. automatically.
- `isGNU` to `isHurd`, my sedding did not catch
- Simplify cross compilation in general
- Be more careful about python
- no more `gdbCross` in all-packages
Multitarget option builds gdb with support for all targets. That's
similar to gdb-multiarch package in Ubuntu or gdb with multitarget
USE-flag in Gentoo.
The previous default was $out/lib/debug, which wasn't very useful.
This ensures that you can do
environment.systemPackages = [ pkgs.hello.debug ];
to install debug info.
The configure script doesn't detect guile, so there is no sense in
having a build dependency on it:
checking for usable guile from /nix/store/hpnsswyh6qkjy5yvrf0a50k6cgm8cws8-pkg-config-0.28/bin/pkg-config... no
GDB 7.8 adds Guile scripting support. This is now enabled by default as
well. Checking for guile also adds a pkg-config dependency.
It seems Python is explicitly excluded from cross building. I'm not
sure if Guile should also be excluded.
(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.
Note that it doesn't actually work unless you run it as root, because
the Darwin kernel disallows unsigned debuggers (you'll get an error
message "please check gdb is codesigned").
This is for consistency with terminology in stdenv (and the terms
"hostDrv" and "buildDrv" are not very intuitive, even if they're
consistent with GNU terminology).