Commit Graph

31 Commits

Author SHA1 Message Date
Randy Eckenrode
3c0088e8a8
darwin.binutils: properly handle cctools-llvm
- Only link `libexec` when using cctools-port. cctools-llvm does not
  have a `libexec` folder;
- Use `as` provided by cctools-llvm, which is already using the
  clang-integrated assembler on both platforms; and
- Clean up inconsistent use of `builtins`.
2024-03-19 19:04:55 -04:00
Manuel Mendez
31d6802773 gnatboot: rename to gnat-bootstrap
Most other bootstrap compilers are named -bootstrap so lets follow that
pattern.
2023-04-15 18:52:14 -04:00
Gabriella Gonzalez
79484b1707
bintools: Add response file support to ld-wrapper (#213831)
The motivation behind this is to alleviate the problem
described in https://github.com/NixOS/nixpkgs/issues/41340.
I'm not sure if this completely fixes the problem, but it
eliminates one more area where we can exceed command line
length limits.

This is essentially the same change as in #112449,
except for `ld-wrapper.sh` instead of `cc-wrapper.sh`.

However, that change alone was not enough; on macOS the
`ld` provided by `darwin.cctools` fails if you use process
substitution to generate the response file, so I put up a
PR to fix that:

https://github.com/tpoechtrager/cctools-port/pull/131

… and I included a patch referencing that fix so that the
new `ld-wrapper` still works on macOS.
2023-02-23 17:05:18 -08:00
Boey Maun Suang
82b88d2db6 bintoolsDualAs: Add package
For reasons explained in the commit contents, in order to build the
native gnat package for x86_64-darwin, the native gnatboot package for
x86_64-darwin must have access to both the Clang integrated assembler
and the cctools GNU assembler for that platform.  This commit creates a
package with both of those assemblers that x86_64-darwin gnatboot can
then be wrapped with.
2023-01-07 18:32:12 +11:00
Janne Heß
c911240e9c
Revert "Add mingwW64-llvm cross-system." 2022-05-18 13:50:23 +02:00
Shea Levy
dee9af9323
bintools: Add isXXX flags to check linker type 2022-05-09 10:03:48 -04:00
Jasper
00037f7403
darwin.binutils: fix wrapper of as when cross-compiling to aarch64-darwin (#134097) 2021-08-16 22:12:51 -04:00
Andrew Childs
0ba7a04743 darwin/binutils: include codesign_allocate 2021-05-17 00:27:01 +09:00
Ivan Babrou
a730703e6f
darwin.binutils: use clang for as on aarch64-darwin (#115167)
Without this change `as` on `aarch64-darwin` is defunct:

```
$ /nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/bin/as -v
/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/bin/as: assembler (/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/arm64/as or /nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/arm64/as) for architecture arm64 not installed
Installed assemblers are:
/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/ppc64/as for architecture ppc64
/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/x86_64/as for architecture x86_64
/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/ppc/as for architecture ppc
/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/i386/as for architecture i386
/nix/store/g11xba8ch20zndaf32hfnap46z47b5k3-cctools-port-949.0.1/libexec/as/arm/as for architecture arm
```

Apple defaults to Clang in all cases from what I see, but nixpkgs prefers `cctools`: #51881.
2021-03-17 00:27:34 -04:00
Ben Siraphob
16d91ee628 pkgs/os-specific: stdenv.lib -> lib 2021-01-17 23:26:08 +07:00
Dmitry Kalinkin
125c469d3e
darwin.binutils.bintools: propagate man pages from cctools 2020-04-20 23:49:02 -04:00
John Ericson
ef328622e0 cctools, darwin biutils: Use pname and version 2019-11-24 18:36:40 +00:00
Matthew Bauer
8cabf4d5c5 treewide: rename llvm-dsymutil to dsymutil
This is a change introduced between llvm 5 and llvm 7.
2019-04-26 21:54:50 -04:00
Matthew Bauer
a4fbfe4217 darwin.binutils: set low priority 2019-02-18 21:09:14 -05:00
Matthew Bauer
c5639650b8 darwin.binutils: add myself as maintainer 2019-02-18 20:56:09 -05:00
Matthew Bauer
0a996c8ef3 darwin: use llvm’s dsymutil instead of dummy version
We were previously using a dummy wrapper for dsymutil. This meant that
debug symbols were not getting generated when dsymutil was otherwise
available. This should fix that issue & provide a real dsymutil from
llvm.

Fixes #52148.
2018-12-15 12:26:11 -06:00
volth
52f53c69ce pkgs/*: remove unreferenced function arguments 2018-07-21 02:48:04 +00:00
John Ericson
adaa110a72 binutils: No more darwin conditionals
Since at least d7bddc27b2, 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
cebe1b4c08 darwin binutils: Better handling of man pages and info 2017-12-13 16:08:18 -05:00
John Ericson
2bba929062 bintools-wrapper: Import separately from cc-wrapper 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
John Ericson
652c2beda9 cctools: Don't always bring in headers
- Give cctools a dev output for the headers

 - Update Libsystem to grab the headers from that dev output

 - Don't include the headers in Darwin binutils, just as GNU Binutils no
   longer does.
2017-11-16 17:45:41 -05:00
John Ericson
32a6838bc6 darwin-bintuils: Don't try to bring in missing bits of GNU Binutils
libbfd and libopcdes are separate derivations which now provide all
headers and libraries. Binutils should just provide executables.
2017-11-16 17:40:38 -05:00
John Ericson
bf7b521500 treewide: Fix some references to binutils
- Compiler's shouldn't use `binutils.dev` as that doesn't yet exist
   with a cross binutils.

 - Last two `binutils.binutils` which weren't reverted
2017-09-14 18:12:54 -04: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
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
Tuomas Tynkkynen
47784e55e1 darwin binutils: Fix binutils-raw output references 2016-08-30 02:57:43 +03:00
Tuomas Tynkkynen
3865e739de treewide: Make explicit that 'dev' output of binutils-raw is used 2016-05-19 10:00:26 +02:00
Tuomas Tynkkynen
79738a639a treewide: Mass replace 'binutils-raw}/lib' to refer the 'out' output 2016-01-24 10:03:33 +02:00
Jude Taylor
fa9c81f694 pure darwin stdenv 2015-06-18 12:37:41 -07:00