!ayCRiZriCVtuCUpeLp:nixos.org

Nix Cross Compiling

580 Members
125 Servers

Load older messages


SenderMessageTime
24 Feb 2026
@crazychaoz:matrix.orgcrazychaozthanks for the invested time ^^12:51:45
25 Feb 2026
@rosssmyth:matrix.org@rosssmyth:matrix.org tbh you are holding it wrong a bit.
You are manually doing the splicing which may be messing it up. You are declaring that you are building for x64 linux, so that is what stdenv thinks.
You put compilers into depsBuildBuild, which stdenv thinks "this is a compiler that runs on build (x64 linux) and targets build (x64 linux)". I'm not sure if stdenv.cc is spliced though. It may not be.
But you are telling stdenv that the headers will be used for a linux host, so it refuses to compile. This was most likely "broken" by me here
https://github.com/NixOS/nixpkgs/pull/430165
But in reality I would call this, mostly "working as intended"
15:06:04
@rosssmyth:matrix.org@rosssmyth:matrix.org The "proper" way of doing this is making a derivation function and pkgsCross.mingwW64.callPackageing it 15:06:38
@rosssmyth:matrix.org@rosssmyth:matrix.org * tbh you are holding it wrong a bit.
You are manually doing the splicing which may be messing it up. You are declaring that you are building for x64 linux, so that is what stdenv thinks.
You put compilers into depsBuildBuild, which stdenv thinks "this is a compiler that runs on build (x64 linux) and targets build (x64 linux)". I'm not sure if stdenv.cc is spliced though. It may not be.
But you are telling stdenv that the headers will be used for a linux host, so it refuses to compile. This was most likely "broken" by me here
https://github.com/NixOS/nixpkgs/pull/430165
But in reality I would call this, mostly, "working as intended"
15:08:01
@artturin:matrix.orgArtturinTheres no manual slicing in that, instead they're not getting spliced packages at all15:23:19
@artturin:matrix.orgArtturin * Theres no manual splicing in that, ~~instead they're not getting spliced packages at all~~ disregard that, I forgot that pkgs is now spliced 15:24:35
@artturin:matrix.orgArtturin.cc isn't spliced because it's a derivation inside a derivation15:25:38
@rosssmyth:matrix.org@rosssmyth:matrix.orgmakes sense15:26:31
@artturin:matrix.orgArtturin So actually now that pkgs is spliced the issue is that they're spliced now :D 15:27:31
@artturin:matrix.orgArtturin To not splice you need to be explicit pkgsCross.mingwW64.pkgsBuildHost.windows.pthreads. This will get rid of the error 15:28:57
@crazychaoz:matrix.orgcrazychaozit did not get rid of my error sadly, could anybody test my build please?16:00:10
@dramforever:matrix.orgdramforever pkgsCross.mingwW64.pkgsHostTarget.windows.pthreads 16:05:08
@dramforever:matrix.orgdramforever HT is the normal one, BH is buildPackages, BB is buildPackages.buildPackages 16:07:04
@dramforever:matrix.orgdramforeverthe rest are cursed16:07:08
26 Feb 2026
@rosscomputerguy:matrix.orgTristan Ross

pkgsLLVM.freetype fails huh

libtool: compile:  aarch64-unknown-linux-gnu-clang -pedantic -std=c99 -I/build/freetype-2.13.3/src/base -I/build/freetype-2.13.3/objs -I./builds/unix -I/build/freetype-2.13.3/include -c -Wall -fvisibility=hidden -I/nix/store/kf8y80j08xard2g6ly6kiv95irxh3k0d-zlib-aarch64-unknown-linux-gnu-1.3.1-dev/include -I/nix/store/86f3r04x20hacjjalkkh9025ysndi667-bzip2-aarch64-unknown-linux-gnu-1.0.8-dev/include -I/nix/store/asar6vn00qxkahs2xhwiw7srnrf5nahm-libpng-apng-aarch64-unknown-linux-gnu-1.6.55-dev/include/libpng16 -I/nix/store/r42r691764ajdchf9fzgmxvqdlwgds83-brotli-aarch64-unknown-linux-gnu-1.2.0-dev/include -pthread "-DFT_CONFIG_CONFIG_H=<ftconfig.h>" "-DFT_CONFIG_MODULES_H=<ftmodule.h>" "-DFT_CONFIG_OPTIONS_H=<ftoption.h>" -DFT2_BUILD_LIBRARY /build/freetype-2.13.3/src/base/fttype1.c -o /build/freetype-2.13.3/objs/fttype1.o >/dev/null 2>&1
/build/freetype-2.13.3/src/base/ftver.rc:19:9: fatal error: 'windows.h' file not found
   19 | #include<windows.h>
      |         ^~~~~~~~~~~
1 error generated.
01:45:51
@rosscomputerguy:matrix.orgTristan Ross Wait, is it because RC=aarch64-unknown-linux-gnu-windres... 02:05:24
@rosscomputerguy:matrix.orgTristan RossOh no, unsetting it fixes the issue02:06:08
@rosscomputerguy:matrix.orgTristan Rosshttps://github.com/NixOS/nixpkgs/pull/482391 might've caused it02:08:45
@rosscomputerguy:matrix.orgTristan Rosshttps://github.com/NixOS/nixpkgs/pull/494215 I have a fix02:15:22
@lily:lily.flowersLily Foster changed their profile picture.14:01:23
@crazychaoz:matrix.orgcrazychaoz

alright, that fixed it

but why does it have to be fixed?!?

i am specifically cross compiling to windows (my usage of pkgsCross.mingwW64), and i want to compile stuff that is only for windows (windows specific pthread stuff), so why do i have to specify the designation of this package is for windows?

also why was that changed (it worked before)?

14:24:41
@k900:0upti.meK900 windows is a general namespace for Windows specific packages 14:25:46
@k900:0upti.meK900 There's no pthreads package at top level because it's normally provided by libc 14:25:54
@crazychaoz:matrix.orgcrazychaoz

obviously, but i am compiling with pkgsCross.mingwW64.stdenv, why do i have to give additional information as to where the windows specific headers should end up at?

i have had issues before with tools that need to get compiled on host&target (eg. protobuf) but here the situation should be clear? i run compilation for windows, with win pthreads, why would i ever want to compile windows.pthreads for non windows targets?

14:32:30
@k900:0upti.meK900Look, that's just how nixpkgs is structured14:34:43
@crazychaoz:matrix.orgcrazychaozack14:38:01
@rosssmyth:matrix.org@rosssmyth:matrix.orgI would like to fix it, but testing and implementing cross is annoying due to different people telling me different things of what to do and what not to do. 15:42:06
@rosssmyth:matrix.org@rosssmyth:matrix.org* I would like to fix it, but testing and implementing it is annoying due to different people telling me different things of what to do and what not to do. 15:42:13
@artturin:matrix.orgArtturinpthreads should be in buildInputs15:44:00
@artturin:matrix.orgArtturinThe reason it works for you is that you're not using a cross stdenv so strictDeps isn't enabled15:44:19

Show newer messages


Back to Room ListRoom Version: 6