!OqhvaDMJdKYUicLDiE:nixos.org

Nixpkgs Stdenv

229 Members
74 Servers

Load older messages


SenderMessageTime
11 Nov 2024
@reckenrode:matrix.orgRandy EckenrodeOf course it is. It references the absolute path to the host linker.22:27:08
@reckenrode:matrix.orgRandy Eckenrode * 22:28:46
@emilazy:matrix.orgemily do you just reference stdenv.hostPlatform.isDarwin in the ld-wrapper derivation and it means stdenv.targetPlatform.isDarwin when you put it in pkgsBuildTarget? 22:29:29
@reckenrode:matrix.orgRandy Eckenrode

Hmm. Would it be disgustingly hacky to set NIX_DONT_SET_RPATH_aarch64_apple_darwin=1 and NIX_DONT_SET_RPATH_x86_64_apple_darwin=1unconditionally?

23:08:53
@reckenrode:matrix.orgRandy Eckenrode *

Hmm. Would it be disgustingly hacky to set NIX_DONT_SET_RPATH_aarch64_apple_darwin=1 and NIX_DONT_SET_RPATH_x86_64_apple_darwin=1 unconditionally?

23:08:59
@reckenrode:matrix.orgRandy Eckenrode

(I’m guessing yes.)

23:09:14
@reckenrode:matrix.orgRandy Eckenrode

I guess just revert the commit that set NIX_DONT_SET_RPATH_FOR_TARGET for now.

23:11:10
@reckenrode:matrix.orgRandy Eckenrode

I wonder if NIX_DONT_SET_RPATH should be set in a hook that properly does role mangling.

23:11:35
@reckenrode:matrix.orgRandy EckenrodeDoes that have the same problem?23:11:58
@reckenrode:matrix.orgRandy EckenrodeI assume it would have to be a hook that is run on every platform and detects the target platform at build time. 🫤23:14:08
@emilazy:matrix.orgemily
In reply to @reckenrode:matrix.org

Hmm. Would it be disgustingly hacky to set NIX_DONT_SET_RPATH_aarch64_apple_darwin=1 and NIX_DONT_SET_RPATH_x86_64_apple_darwin=1 unconditionally?

this seems fine.
23:19:31
@emilazy:matrix.orgemily
In reply to @emilazy:matrix.org
do you just reference stdenv.hostPlatform.isDarwin in the ld-wrapper derivation and it means stdenv.targetPlatform.isDarwin when you put it in pkgsBuildTarget?
would this not work though? do you always have a build→target toolchain available by default?
23:20:01
@emilazy:matrix.orgemilyhow does it get set for Darwin build/host anyway?23:21:35
@emilazy:matrix.orgemily that stdenv thing only sets it for target 23:21:40
@reckenrode:matrix.orgRandy Eckenrode
preHook = preHook + lib.optionalString buildPlatform.isDarwin ''
  export NIX_DONT_SET_RPATH_FOR_BUILD=1
'' + lib.optionalString (hostPlatform.isDarwin || (!hostPlatform.isElf && !hostPlatform.isMacho)) ''
  export NIX_DONT_SET_RPATH=1
  export NIX_NO_SELF_RPATH=1
'' + lib.optionalString (hostPlatform.isDarwin && hostPlatform.isMacOS) ''
  export MACOSX_DEPLOYMENT_TARGET=${hostPlatform.darwinMinVersion}
'' + lib.optionalString targetPlatform.isDarwin ''
  export NIX_DONT_SET_RPATH_FOR_TARGET=1
'';
23:22:58
@reckenrode:matrix.orgRandy Eckenrode

Just to make sure I understand, the expectation is that clang.cc == pkgsCross.x86_64-darwin.buildPackages.clang.cc == pkgsCross.gnu64.buildPackages.clang.cc?

23:23:39
@reckenrode:matrix.orgRandy EckenrodeSince clang is a multi-target cross-compiler by default.23:23:54
@reckenrode:matrix.orgRandy EckenrodeWas there an issue on GitHub? I thought I got pinged, but my notifications aren’t showing anything.23:24:33
@emilazy:matrix.orgemilythere's a discourse thread23:26:27
@emilazy:matrix.orgemily
In reply to @reckenrode:matrix.org

Just to make sure I understand, the expectation is that clang.cc == pkgsCross.x86_64-darwin.buildPackages.clang.cc == pkgsCross.gnu64.buildPackages.clang.cc?

I think this is the idea, yes
23:26:40
@reckenrode:matrix.orgRandy Eckenrode
In reply to @emilazy:matrix.org
I think this is the idea, yes

I tried reverting the NIX_DONT_SET_RPATH_FOR_TARGET change. It didn’t seem to make a difference.

23:27:03
@emilazy:matrix.orgemily
In reply to @reckenrode:matrix.org
preHook = preHook + lib.optionalString buildPlatform.isDarwin ''
  export NIX_DONT_SET_RPATH_FOR_BUILD=1
'' + lib.optionalString (hostPlatform.isDarwin || (!hostPlatform.isElf && !hostPlatform.isMacho)) ''
  export NIX_DONT_SET_RPATH=1
  export NIX_NO_SELF_RPATH=1
'' + lib.optionalString (hostPlatform.isDarwin && hostPlatform.isMacOS) ''
  export MACOSX_DEPLOYMENT_TARGET=${hostPlatform.darwinMinVersion}
'' + lib.optionalString targetPlatform.isDarwin ''
  export NIX_DONT_SET_RPATH_FOR_TARGET=1
'';
honestly, just replacing all of that with NIX_DONT_SET_RPATH_aarch64_apple_darwin/NIX_DONT_SET_RPATH_x86_64_apple_darwin seems cool to me
23:27:14
@emilazy:matrix.orgemily
In reply to @reckenrode:matrix.org

I tried reverting the NIX_DONT_SET_RPATH_FOR_TARGET change. It didn’t seem to make a difference.

there's the nostdlibinc patch
23:27:24
@emilazy:matrix.orgemilytry removing it entirely23:27:32
@reckenrode:matrix.orgRandy Eckenrode
In reply to @emilazy:matrix.org
honestly, just replacing all of that with NIX_DONT_SET_RPATH_aarch64_apple_darwin/NIX_DONT_SET_RPATH_x86_64_apple_darwin seems cool to me
It’s exposing a cc-wrapper internal detail, which is also different on static Darwin builds.
23:27:38
@reckenrode:matrix.orgRandy Eckenrode
In reply to @emilazy:matrix.org
try removing it entirely
Doesn’t matter either.
23:28:47
@reckenrode:matrix.orgRandy Eckenrode
In reply to @emilazy:matrix.org
try removing it entirely
*
23:28:54
@reckenrode:matrix.orgRandy Eckenrode

Does every clang dependency have to be audited for targetPlatform stuff?

23:29:59
@reckenrode:matrix.orgRandy Eckenrode

Note that this includes my “Darwin as useLLVM” work.

23:30:30
@emilazy:matrix.orgemily well, ideally targetPlatform would be null so they would have no way of depending on it 23:30:58

Show newer messages


Back to Room ListRoom Version: 9