!ayCRiZriCVtuCUpeLp:nixos.org

Nix Cross Compiling

580 Members
128 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
8 Apr 2025
@thesola10:matrix.orgTheSola10 changed their display name from thesola10 to TheSola10.16:57:31
11 Apr 2025
@cellmoose:matrix.org@cellmoose:matrix.org left the room.22:00:05
12 Apr 2025
@oak:universumi.fioak πŸ³οΈβ€πŸŒˆβ™₯️ changed their display name from oak to oak - mikatammi.fi ÄÄNESTΓ„.12:12:02
@oak:universumi.fioak πŸ³οΈβ€πŸŒˆβ™₯️ changed their profile picture.12:13:51
@oak:universumi.fioak πŸ³οΈβ€πŸŒˆβ™₯️ changed their display name from oak - mikatammi.fi ÄÄNESTΓ„ to oak - mikatammi.fi.12:56:27
13 Apr 2025
@2xsaiko:tchncs.de@2xsaiko:tchncs.de left the room.00:35:58
@zekeriyaoz:matrix.orgmao zedong joined the room.08:20:08
@zekeriyaoz:matrix.orgmao zedong changed their display name from zekeriya ΓΆz to nixosfanboy.08:25:19
@zekeriyaoz:matrix.orgmao zedong changed their profile picture.08:26:48
15 Apr 2025
@kx_:matrix.orgWillow joined the room.18:23:26
@kx_:matrix.orgWillow

I'm trying to cross compile a rust binary from x86_64-linux to windows using Nix. I built a flake (https://github.com/Kek5chen/syrillian/blob/0e2aa5f65039eddf9a790c76f9f7538c05e2ad50/flake.nix#L56)

The rust dependencies need some c libraries that also need to be compiled.

Here's the issue:

syrillian-x86_64-w64-mingw32> error: linking with `/nix/store/b5bkhvxw5wm7mbqfvls6x1qc9jiqkfp5-x86_64-w64-mingw32-gcc-wrapper-14-20241116/bin/x86_64-w64-mingw32-cc` failed: exit status: 1
syrillian-x86_64-w64-mingw32>   |

.....
syrillian-x86_64-w64-mingw32>   = note: some arguments are omitted. use `--verbose` to show all linker arguments
syrillian-x86_64-w64-mingw32>   = note: /nix/store/z2h4v7d7mrslcnxmpq195czvjiwd9vgv-x86_64-w64-mingw32-binutils-2.43.1/bin/x86_64-w64-mingw32-ld: /nix/store/1nyv07jn5hj04f5j10gwzyafh07fr2p6-x86_64-w64-mingw32-gcc-14-20241116/lib/gcc/x86_64-w64-mingw32/14.2.1/libgcc_eh.a(emutls.o):(.text+0x5c): undefined reference to `_MCF_tls_key_new'
syrillian-x86_64-w64-mingw32>           /nix/store/z2h4v7d7mrslcnxmpq195czvjiwd9vgv-x86_64-w64-mingw32-binutils-2.43.1/bin/x86_64-w64-mingw32-ld: /nix/store/1nyv07jn5hj04f5j10gwzyafh07fr2p6-x86_64-w64-mingw32-gcc-14-20241116/lib/gcc/x86_64-w64-mingw32/14.2.1/libgcc_eh.a(emutls.o):(.text+0x9b): undefined reference to `_MCF_thread_self'
syrillian-x86_64-w64-mingw32>           /nix/store/z2h4v7d7mrslcnxmpq195czvjiwd9vgv-x86_64-w64-mingw32-binutils-2.43.1/bin/x86_64-w64-mingw32-ld: /nix/store/1nyv07jn5hj04f5j10gwzyafh07fr2p6-x86_64-w64-mingw32-gcc-14-20241116/lib/gcc/x86_64-w64-mingw32/14.2.1/libgcc_eh.a(emutls.o):(.text+0xb4): undefined reference to `__MCF_tls_table_get'
syrillian-x86_64-w64-mingw32>           /nix/store/z2h4v7d7mrslcnxmpq195czvjiwd9vgv-x86_64-w64-mingw32-binutils-2.43.1/bin/x86_64-w64-mingw32-ld: /nix/store/1nyv07jn5hj04f5j10gwzyafh07fr2p6-x86_64-w64-mingw32-gcc-14-20241116/lib/gcc/x86_64-w64-mingw32/14.2.1/libgcc_eh.a(emutls.o):(.text+0x110): undefined reference to `_MCF_once_wait_slow'
syrillian-x86_64-w64-mingw32>           /nix/store/z2h4v7d7mrslcnxmpq195czvjiwd9vgv-x86_64-w64-mingw32-binutils-2.43.1/bin/x86_64-w64-mingw32-ld: /nix/store/1nyv07jn5hj04f5j10gwzyafh07fr2p6-x86_64-w64-mingw32-gcc-14-20241116/lib/gcc/x86_64-w64-mingw32/14.2.1/libgcc_eh.a(emutls.o):(.text+0x126): undefined reference to `__MCF_gthr_call_once_seh_take_over'
syrillian-x86_64-w64-mingw32>           /nix/store/z2h4v7d7mrslcnxmpq195czvjiwd9vgv-x86_64-w64-mingw32-binutils-2.43.1/bin/x86_64-w64-mingw32-ld: /nix/store/1nyv07jn5hj04f5j10gwzyafh07fr2p6-x86_64-w64-mingw32-gcc-14-20241116/lib/gcc/x86_64-w64-mingw32/14.2.1/libgcc_eh.a(emutls.o):(.text+0x16b): undefined reference to `_MCF_mutex_unlock_slow'
syrillian-x86_64-w64-mingw32>           /nix/store/z2h4v7d7mrslcnxmpq195czvjiwd9vgv-x86_64-w64-mingw32-binutils-2.43.1/bin/x86_64-w64-mingw32-ld: /nix/store/1nyv07jn5hj04f5j10gwzyafh07fr2p6-x86_64-w64-mingw32-gcc-14-20241116/lib/gcc/x86_64-w64-mingw32/14.2.1/libgcc_eh.a(emutls.o):(.text+0x1a6): undefined reference to `__MCF_tls_table_xset'
syrillian-x86_64-w64-mingw32>           /nix/store/z2h4v7d7mrslcnxmpq195czvjiwd9vgv-x86_64-w64-mingw32-binutils-2.43.1/bin/x86_64-w64-mingw32-ld: /nix/store/1nyv07jn5hj04f5j10gwzyafh07fr2p6-x86_64-w64-mingw32-gcc-14-20241116/lib/gcc/x86_64-w64-mingw32/14.2.1/libgcc_eh.a(emutls.o):(.text+0x2c1): undefined reference to `_MCF_mutex_lock_slow'
syrillian-x86_64-w64-mingw32>           collect2: error: ld returned 1 exit status

I can post the full invocation on gist.

18:27:57
@curid:matrix.org@curid:matrix.orgwhat pulls openssl-sys?18:32:57
@kx_:matrix.orgWillowi don't understand the question?18:33:21
@kx_:matrix.orgWillow* i don't understand the question, could you rephrase?18:33:28
@kx_:matrix.orgWillowI think assimp needs it as a built time dependency18:34:49
@curid:matrix.org@curid:matrix.orgI don't see anything in the dependency list that would need it https://crates.io/crates/scyllax/0.2.1/dependencies18:35:00
@kx_:matrix.orgWillow* I think russimp needs it as a built time dependency18:35:02
@kx_:matrix.orgWillowthat's not my tool.18:35:17
@kx_:matrix.orgWillowhttps://crates.io/crates/syrillian/0.1.2/dependencies which depends on https://crates.io/crates/russimp/3.2.0/dependencies which depends on https://crates.io/crates/russimp-sys/2.0.2/dependencies which depends on reqwest which depends on openssl18:36:15
@curid:matrix.org@curid:matrix.orgRedacted or Malformed Event18:36:31
@kx_:matrix.orgWillowbut even with openssl-sys gone, russimp-sys still is a c library that needs compilation18:38:34
@curid:matrix.org@curid:matrix.orgI don't think rustls-tls depend on openssl https://github.com/jkvargas/russimp-sys/blob/main/Cargo.toml#L5618:40:07
@curid:matrix.org@curid:matrix.orgmight save you some headache though18:40:19
@kx_:matrix.orgWillow
β”‚   β”œβ”€β”€ russimp-sys v2.0.2
β”‚   β”‚   [build-dependencies]
β”‚   β”‚   β”œβ”€β”€ reqwest v0.11.27
β”‚   β”‚   β”‚   β”œβ”€β”€ hyper-tls v0.5.0
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bytes v1.9.0
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ hyper v0.14.32 (*)
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ native-tls v0.2.12
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ log v0.4.25
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ openssl v0.10.68
β”‚   β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ bitflags v2.8.0
β”‚   β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ cfg-if v1.0.0
β”‚   β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ foreign-types v0.3.2
β”‚   β”‚   β”‚   β”‚   β”‚   β”‚   β”‚   └── foreign-types-shared v0.1.1
β”‚   β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ libc v0.2.169
β”‚   β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ once_cell v1.20.2
β”‚   β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ openssl-macros v0.1.1 (proc-macro)
β”‚   β”‚   β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ proc-macro2 v1.0.93 (*)
β”‚   β”‚   β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ quote v1.0.38 (*)
β”‚   β”‚   β”‚   β”‚   β”‚   β”‚   β”‚   └── syn v2.0.96 (*)
β”‚   β”‚   β”‚   β”‚   β”‚   β”‚   └── openssl-sys v0.9.104
β”‚   β”‚   β”‚   β”‚   β”‚   β”‚       └── libc v0.2.169
β”‚   β”‚   β”‚   β”‚   β”‚   β”‚       [build-dependencies]
β”‚   β”‚   β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ cc v1.2.10 (*)
β”‚   β”‚   β”‚   β”‚   β”‚   β”‚       β”œβ”€β”€ pkg-config v0.3.31
β”‚   β”‚   β”‚   β”‚   β”‚   β”‚       └── vcpkg v0.2.15
β”‚   β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ openssl-probe v0.1.5
β”‚   β”‚   β”‚   β”‚   β”‚   └── openssl-sys v0.9.104 (*)

18:43:05
@kx_:matrix.orgWillowreqwest is totally overkill there, and i've already complained about their shitty build time stuff. i don't think this is the issue though.18:44:32
@rosssmyth:matrix.org@rosssmyth:matrix.org For the targets listed in lib/systems/examples.nix, what is generally considered "canon"? My guess is GCC since that's what the default stdenv uses. As far as I can tell there is no concept of a "Clang triple," only a "rustTarget," in terms of platform translations. But there are cases where Clang and GCC (and Zig (at least it used to, I'd have to check now days), Bazel, ...) diverge. Should more mappings be added to lib/systems? 18:54:07

Show newer messages


Back to Room ListRoom Version: 6