!OqhvaDMJdKYUicLDiE:nixos.org

Nixpkgs Stdenv

220 Members
70 Servers

Load older messages


SenderMessageTime
30 Apr 2025
@aleksana:mozilla.orgaleksana (force me to bed after 18:00 UTC) It doesn't look like an exhausive list of either gcc features or /proc/cpuinfo 15:03:42
@aleksana:mozilla.orgaleksana (force me to bed after 18:00 UTC) Also what is the difference between lib.systems.platforms and lib.systems.examples? Why is armv7a-android in platforms while aarch64-android in examples? 15:59:36
1 May 2025
@rosariopulella:matrix.orgRosuavio changed their display name from Rosario Pulella to Rosuavio.20:09:28
3 May 2025
@reckenrode:matrix.orgRandy EckenrodeAny thoughts on changing the target check to treat arm64-apple-darwin and arm64-apple-macosxY.X as equivalent? Swift and SwiftPM heavily use the latter. It’s apparently the way that setting the deployment target is done.17:06:05
@qyliss:fairydust.spaceAlyssa RossI think we have to pick one17:09:21
@qyliss:fairydust.spaceAlyssa RossAssuming I'm correctly understanding what you mean by "target check"?17:10:12
@reckenrode:matrix.orgRandy Eckenrode The one that spams lots of warnings when you clang-wrapper -target <some triple>, and the triple is different from what the wrapper was built for. 17:11:16
@qyliss:fairydust.spaceAlyssa RossOh that sounds fine17:11:46
@qyliss:fairydust.spaceAlyssa RossAssuming LLVM treats them the same17:12:00
@reckenrode:matrix.orgRandy Eckenrode You can change the deployment target a bunch of different ways. The way Swift does it (and when invoking Clang) is via the triple. The wrapper tries to set the target via -mmacos-version-min=. I think there’s another way it can also fall back to do. 17:12:03
@reckenrode:matrix.orgRandy EckenrodeSo maybe Darwin can settle on following Swift’s lead and consolidate all those. Probably a 25.11 thing.17:12:38
@reckenrode:matrix.orgRandy Eckenrode

It would also fix the following warnings when SwiftPM invokes Clang.

Warning: supplying the --target arm64-apple-macosx10.13 != arm64-apple-darwin argument to a nix-wrapped compiler may not work correctly - cc-wrapper is currently not designed with multi-target compilers in mind. You may want to use an un-wrapped compiler instead.
17:14:42
@reckenrode:matrix.orgRandy Eckenrode *

It would also fix the following warnings when SwiftPM invokes Clang.

clang: warning: overriding '-mmacos-version-min=11.3' option with '-target arm64-apple-macosx10.13'
17:15:07
4 May 2025
@aleksana:mozilla.orgaleksana (force me to bed after 18:00 UTC)Two PRs aiming to fix "cross compilation" between different march https://github.com/NixOS/nixpkgs/pull/403549 https://github.com/NixOS/nixpkgs/pull/40396007:08:19
@numinit:matrix.orgMorgan (@numinit)

Randy Eckenrode: Hey there, Darwin question for you. ponyc does this and we have to patch:

https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/po/ponyc/fix-darwin-build.patch

However, hydra is complaining about:

ld: warning: directory not found for option '-L/nix/store/6fg11q5s4xpgfpvps1hy7w9vjhfl14mx-Libsystem-11.0/lib'
ld: library not found for -lSystem

Feel like I'm just missing something stupid here.

21:58:08
@reckenrode:matrix.orgRandy Eckenrode Don’t use darwin.Libsystem. It’s an empty stub with nothing in it. It’s scheduled for removal too. If you need to find the location of libSystem.tbd, it’s in $SDKROOT/usr/lib. 22:00:16
@numinit:matrix.orgMorgan (@numinit)Gotcha, that explains it22:01:12
@numinit:matrix.orgMorgan (@numinit)Thanks, I'll give that a shot22:01:27
@numinit:matrix.orgMorgan (@numinit)Aha, solved it. Thank you23:38:43
9 May 2025
@p14:matrix.orgp14

Wait, does this make sense?

https://github.com/NixOS/nixpkgs/blob/907e98d6cc08e3261b63e3f8d2831841817b0041/pkgs/build-support/bintools-wrapper/ld-wrapper.sh#L84-L95

NIX_LDFLAGS_@suffixSalt@ and NIX_LDFLAGS_BEFORE_@suffixSalt@ are gated on the link type being empty. But NIX_LDFLAGS_AFTER_@suffixSalt@ is not.

An oversight, I presume? I just hit it with a bit of confusion as to why my override was not having effect in a static build (where the link type is set). It also looks to me like any tests should be using $linkType, per https://github.com/NixOS/nixpkgs/blob/907e98d6cc08e3261b63e3f8d2831841817b0041/pkgs/build-support/bintools-wrapper/ld-wrapper.sh#L32

06:01:05
@p14:matrix.orgp14 *

Wait, does this make sense?

https://github.com/NixOS/nixpkgs/blob/907e98d6cc08e3261b63e3f8d2831841817b0041/pkgs/build-support/bintools-wrapper/ld-wrapper.sh#L84-L95

NIX_LDFLAGS_@suffixSalt@ and NIX_LDFLAGS_BEFORE_@suffixSalt@ are gated on the link type being empty. But NIX\_LDFLAGS\_AFTER\_@suffixSalt@ is not.

An oversight, I presume? I just hit it with a bit of confusion as to why my override was not having effect in a static build (where the link type is set). It also looks to me like any tests should be using $linkType, per https://github.com/NixOS/nixpkgs/blob/907e98d6cc08e3261b63e3f8d2831841817b0041/pkgs/build-support/bintools-wrapper/ld-wrapper.sh#L32

06:01:27
@p14:matrix.orgp14 *

Wait, does this make sense?

https://github.com/NixOS/nixpkgs/blob/907e98d6cc08e3261b63e3f8d2831841817b0041/pkgs/build-support/bintools-wrapper/ld-wrapper.sh#L84-L95

NIX_LDFLAGS_@suffixSalt@ and NIX_LDFLAGS_BEFORE_@suffixSalt@ are gated on the link type being empty. But NIX_LDFLAGS_AFTER_@suffixSalt@ is not.

An oversight, I presume? I just hit it with a bit of confusion as to why my override was not having effect in a static build (where the link type is set). It also looks to me like any tests should be using $linkType, per https://github.com/NixOS/nixpkgs/blob/907e98d6cc08e3261b63e3f8d2831841817b0041/pkgs/build-support/bintools-wrapper/ld-wrapper.sh#L32

06:01:35
@p14:matrix.orgp14 It looks to me like the second condition ($linkType == dynamic) doesn't especially make sense to be gated by if [ -z "${NIX_LINK_TYPE_@suffixSalt@:-}" ], so it doesn't belong nested in that conditional. And I don't see a good reason to gate the availability of 'NIX_LDFLAGS_*` on the link type. 06:03:34
@p14:matrix.orgp14 *

Wait, does this make sense?

https://github.com/NixOS/nixpkgs/blob/907e98d6cc08e3261b63e3f8d2831841817b0041/pkgs/build-support/bintools-wrapper/ld-wrapper.sh#L84-L95

NIX_LDFLAGS_@suffixSalt@ and NIX_LDFLAGS_BEFORE_@suffixSalt@ are gated on the link type being empty. But NIX_LDFLAGS_AFTER_@suffixSalt@ is not.

An oversight, I presume? I just hit it with a bit of confusion as to why my override was not having effect in a static build (where the link type is set to static, but $NIX_LINK_TYPE is empty). It also looks to me like any tests should be using $linkType, per https://github.com/NixOS/nixpkgs/blob/907e98d6cc08e3261b63e3f8d2831841817b0041/pkgs/build-support/bintools-wrapper/ld-wrapper.sh#L32

06:04:24
@p14:matrix.orgp14Oh, meanwhile, NIX_LDFLAGS_BEFORE are also handled in the cc-wrapper, and added as -Wl, to add to the confusion. And the actual reason my flags weren't taking effect was because I had the wrong suffixSalt in effect.06:17:29
10 May 2025
@p14:matrix.orgp14

I'm messing with my own stdenvStages as an experiment and to learn about the stdenv.

I've hit upon a fun problem. If I add my own stage which makes use of a suffixed compiler from an earlier stage, the wrapped compiler is suffixed but the unwrapped compiler is not. This line:

https://github.com/NixOS/nixpkgs/blob/1a5bd697adecf27385b69352485baa52a6e02fe9/pkgs/build-support/cc-wrapper/setup-hook.sh#L93

Ends up putting the $CC_FOR_BUILD's unwrapped compiler in the $PATH before the host compiler. So which $CC resolves as the unwrapped $CC_FOR_BUILD instead of $CC's wrapped compiler.

This works fine for most standard scenarios, I think, because normally you'd be using some native (and unsuffixed) compiler as $CC_FOR_BUILD (=gcc) and the $CC would be set to some suffixed compiler.

So if $PATH = cc-for-build:cc-for-build-unwrapped:cc:cc-unwrapped; the path search works fine because it find the suffixed compiler in :cc:.

Not sure exactly how to solve it; I don't yet see why you'd want the unwrapped compiler in the path at all.

12:05:51
@p14:matrix.orgp14 *

I'm messing with my own stdenvStages as an experiment and to learn about the stdenv.

I've hit upon a fun problem. If I add my own stage which makes use of a suffixed compiler from an earlier stage, the wrapped compiler is suffixed but the unwrapped compiler is not. This line:

https://github.com/NixOS/nixpkgs/blob/1a5bd697adecf27385b69352485baa52a6e02fe9/pkgs/build-support/cc-wrapper/setup-hook.sh#L93

Ends up putting the $CC_FOR_BUILD's unwrapped compiler in the $PATH before the host compiler. So which $CC resolves as the unwrapped $CC_FOR_BUILD instead of $CC's wrapped compiler.

This works fine for most standard scenarios, I think, because normally you'd be using some native (and unsuffixed) compiler as $CC_FOR_BUILD (=gcc) and the $CC would be set to some suffixed compiler.

So if $PATH = cc-for-build:cc-for-build-unwrapped:cc:cc-unwrapped; the path search works fine because it finds the suffixed compiler in :cc:.

Not sure exactly how to solve it; I don't yet see why you'd want the unwrapped compiler in the path at all.

12:06:16
@p14:matrix.orgp14 *

I'm messing with my own stdenvStages as an experiment and to learn about the stdenv.

I've hit upon a fun problem. If I add my own stage which makes use of a target-prefixed compiler from an earlier stage, the wrapped compiler is prefixed but the unwrapped compiler is not. This line:

https://github.com/NixOS/nixpkgs/blob/1a5bd697adecf27385b69352485baa52a6e02fe9/pkgs/build-support/cc-wrapper/setup-hook.sh#L93

Ends up putting the $CC_FOR_BUILD's unwrapped compiler in the $PATH before the host compiler. So which $CC resolves as the unwrapped $CC_FOR_BUILD instead of $CC's wrapped compiler.

This works fine for most standard scenarios, I think, because normally you'd be using some native (and unprefixed) compiler as $CC_FOR_BUILD (=gcc) and the $CC would be set to some prefixed compiler.

So if $PATH = cc-for-build:cc-for-build-unwrapped:cc:cc-unwrapped; the path search works fine because it finds the prefixed compiler in :cc:.

Not sure exactly how to solve it; I don't yet see why you'd want the unwrapped compiler in the path at all.

12:12:50
11 May 2025
@trofi:matrix.orgtrofiIdeally wrappers should always expose prefixed binaries.14:34:59
@trofi:matrix.orgtrofi(like abandoned https://github.com/NixOS/nixpkgs/pull/181724)14:35:49

Show newer messages


Back to Room ListRoom Version: 9