!ayCRiZriCVtuCUpeLp:nixos.org

Nix Cross Compiling

571 Members
125 Servers

Load older messages


SenderMessageTime
15 Jul 2021
@piegames:matrix.orgpiegames Instead of libc = "newlib";, i need to use libnano. Is this generally possible in nixpkgs? 12:26:50
@sternenseemann:systemli.orgsterni (he/him)libnano is not packaged so no12:27:29
@sternenseemann:systemli.orgsterni (he/him)but it is not impossible in general :)12:27:37
17 Jul 2021
@symphorien:xlumurb.eusymphorien this PR is probably worth mentionning here: https://github.com/NixOS/nixpkgs/issues/130349 14:01:52
@siraben:matrix.orgsiraben (he/him)That seems like a good idea, it's recurring pattern in Nixpkgs and I sometimes have to second-guess what to compare.15:27:02
@symphorien:xlumurb.eusymphorienIt used to exist and was removed so I'd like yo hear why 😃15:57:42
@symphorien:xlumurb.eusymphorienI think there was stdenv.isCross17:23:11
@rick:matrix.ciphernetics.nlRick (Mindavi)
In reply to @symphorien:xlumurb.eu
It used to exist and was removed so I'd like yo hear why 😃
John has a good point
17:24:49
@symphorien:xlumurb.eusymphorienOh that's the reason17:27:00
@rick:matrix.ciphernetics.nlRick (Mindavi)In short: there's no one-size-fits-all solution, and being explicit is better17:41:14
@sternenseemann:systemli.orgsterni (he/him)sometimes you'd need to check targetPlatform equality for example20:53:55
@sternenseemann:systemli.orgsterni (he/him)also x86_64 -> i686 is still cross compiling, but you could e. g. run tests20:54:18
@sternenseemann:systemli.orgsterni (he/him)so yeah one size does not fit all20:54:30
18 Jul 2021
@philipp:xndr.dephilipp joined the room.20:25:13
@philipp:xndr.dephilipp Can somebody explain to me where the non 32 bit version of the mingw headers are? One would assume it's pkgsCross.mingwW64.windows.mingw_w64_headers but that evalutes to /nix/store/m7mvg8ldx7fj0rliz60gjyrzy7rm6ig2-mingw-w64-x86_64-w64-mingw32-6.0.0-headers and throws an #error Only Win32 target is supported! error. 20:27:15
@philipp:xndr.dephilipp

Package for reference:

{ stdenv, lib, fetchFromGitHub, glslang, meson, ninja, wine, pkgsCross }:

stdenv.mkDerivation rec {
  pname = "dxvk-installer";
  version = "1.9";

  src = fetchFromGitHub {
    owner = "doitsujin";
    repo = "dxvk";
    rev = "v${version}";
    sha256 = "01db23ncbrrq0cqnp25fg5plp88v5i5ri0i38m0wida8mw3mmjsa";
  };

  mesonFlags = [ "--cross-file build-win64.txt" "--buildtype release" ];
  nativeBuildInputs = [
    glslang
    meson
    ninja
    pkgsCross.mingwW64.buildPackages.gcc
    pkgsCross.mingwW64.windows.mingw_w64
    pkgsCross.mingwW64.windows.mingw_w64_headers
    wine
  ];
}
20:27:52
@philipp:xndr.dephilipp *

Package for reference:

{ stdenv, lib, fetchFromGitHub, glslang, meson, ninja, wine, pkgsCross }:

stdenv.mkDerivation rec {
  pname = "dxvk-installer";
  version = "1.9";

  src = fetchFromGitHub {
    owner = "doitsujin";
    repo = "dxvk";
    rev = "v${version}";
    sha256 = "01db23ncbrrq0cqnp25fg5plp88v5i5ri0i38m0wida8mw3mmjsa";
  };

  mesonFlags = [ "--cross-file build-win64.txt" "--buildtype release" ];
  nativeBuildInputs = [
    glslang
    meson
    ninja
    pkgsCross.mingwW64.buildPackages.gcc
    pkgsCross.mingwW64.windows.mingw_w64_headers
    wine
  ];
}
20:52:35
19 Jul 2021
@symphorien:xlumurb.eusymphorien You need to take all your packages from pkgCross.ming.... 05:29:30
@symphorien:xlumurb.eusymphorienThe easiest way is to take callPackage from it like in https://nixos.wiki/wiki/Cross_Compiling05:31:46
@philipp:xndr.dephilippthx, will look into that.08:18:33
@philipp:xndr.dephilipp

I ended up with

{ stdenv, lib, fetchFromGitHub, glslang, meson, ninja,  pkgsCross, gcc, buildPackages }:

stdenv.mkDerivation rec {
  pname = "dxvk-installer";
  version = "1.9";

  src = fetchFromGitHub {
    owner = "doitsujin";
    repo = "dxvk";
    rev = "v${version}";
    sha256 = "01db23ncbrrq0cqnp25fg5plp88v5i5ri0i38m0wida8mw3mmjsa";
  };

  mesonFlags = [ "--cross-file build-win64.txt" "--buildtype release" ];
  depsBuildBuild = [ buildPackages.stdenv.cc buildPackages.meson buildPackages.ninja ];
  depsBuildTarget = [
    pkgsCross.mingwW64.windows.mingw_w64_headers
    glslang
    buildPackages.gcc
  ];
}

called via nix-build -E 'with import <nixpkgs> {}; pkgsCross.mingwW64.callPackage ./dxvk.nix { }' but I still end up with the same error. Do I have to get mingwW64 from somewhere else now? I can't find it.

15:00:17
@philipp:xndr.dephilippRedacted or Malformed Event22:23:14
@philipp:xndr.dephilippRedacted or Malformed Event22:23:27
20 Jul 2021
@symphorien:xlumurb.eusymphorienDon't use pkgCross at all in the callPackaged file06:03:28
@symphorien:xlumurb.eusymphorienInstead of depsBuildTarget it's probably buildInputs ie depsBuildHost06:03:39
@symphorien:xlumurb.eusymphorienHmmm I have a doubt, I'm not used to the rigorous names06:15:44
@philipp:xndr.dephilipp When I don't use pkgsCross, how do I get the mingw_w64_headers then? They only live in the crossPackages afaik. 10:09:38
@symphorien:xlumurb.eusymphorienIt's magic and called splicing: you get a different one depending on whether you use it in buildInputs or nativeBuildInputs10:26:08
@philipp:xndr.dephilippAh, turns out I conflated general cross compiling issues with issues stemming from the mingw64 version in nixpkgs being pretty old.15:57:19
22 Jul 2021
@siraben:matrix.orgsiraben (he/him) philipp: the mingw versions were updated recently 13:01:55

Show newer messages


Back to Room ListRoom Version: 6