!ayCRiZriCVtuCUpeLp:nixos.org

Nix Cross Compiling

570 Members
124 Servers

Load older messages


SenderMessageTime
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 philipp: the mingw versions were updated recently 13:01:55
@siraben:matrix.orgsirabenhttps://github.com/NixOS/nixpkgs/pull/13086413:02:10
@siraben:matrix.orgsiraben * philipp: the mingw versions were updated recently (23 hours ago) 13:02:20
@philipp:xndr.dephilippI filed the pr. Thanks for merging 😄13:17:13
@mic92:nixos.devMic92 joined the room.19:58:45
23 Jul 2021
Room Avatar Renderer.23:22:33
24 Jul 2021
@sternenseemann:systemli.orgsternigotten GNAT to build a cross-compiler, but at the cost of disabling libada in the build which doesn't seem to be supported / working: https://github.com/NixOS/nixpkgs/pull/13113610:44:05
@sternenseemann:systemli.orgsterniso cross GNAT is not that useful unfortunately this way, but I haven't found any good pointers so far how to cross compile libada, may try to do something similar to our libgcc derivation at some point10:44:47
@sternenseemann:systemli.orgsterni * so cross GNAT is not that useful unfortunately this way, but I haven't found any good pointers so far how to cross compile libada, may try to do something similar to our libgcc derivation at some point, but I don't really have the energy presently10:45:00
@ius:nltrix.netius

At the risk of sounding like a broken record - I still can't manage to override patchelf for my cross setup only (ie. so it just affects cross packages being built).

My 'solution' was to prepend my modified patchelf to extraNativeBuildInputs in the cross stdenv. That works (it appears to end up in front of the PATH), unless a package specifies patchelf as a nativeBuildInput (for example: systemd).

All my other attempts either do nothing (e.g. overlaying pkgs.buildPackages) or affect all packages, so an evaluation ends up rebuilding large parts of my host OS.

12:27:59
@ius:nltrix.netiusMain issue seems to be that patchelf is a host executable, but I'm trying to override it based on the context it's used in.. Alternatively, merging this patchelf PR would obsolete my need for patching patchelf: https://github.com/NixOS/patchelf/pull/269 (I just submitted a test case) .. though I assume it would take some time to trickle down to nixpkgs..12:32:41
@symphorien:xlumurb.eusymphorienHonnestly you should probably work on top of a fork and not try to override such deep dependencies. Not that it would be useless to support that, but I fear you are losing much time sticking to overlays12:43:42
@siraben:matrix.orgsirabenI'd love reviews for (m68k) https://github.com/NixOS/nixpkgs/pull/131310 and (s390) https://github.com/NixOS/nixpkgs/pull/131317 . I've tested both the PRs and they cross-compile various programs.13:28:41
@siraben:matrix.orgsiraben Maybe someone can help advise me for how to deal with the double pdp11-aout in https://github.com/NixOS/nixpkgs/pull/131332 13:29:04

Show newer messages


Back to Room ListRoom Version: 6