!ayCRiZriCVtuCUpeLp:nixos.org

Nix Cross Compiling

125 Members
44 Servers

Load older messages


SenderMessageTime
4 Aug 2022
@rick:matrix.ciphernetics.nlRick (Mindavi)
In reply to @tpw_rules:matrix.org
was an issue with perl failing to cross compile some stuff saying something along the lines of "this perl can't load dynamic libraries" fixed recently, or such is in the pipeline?
It's only ever worked around for now
05:52:02
@artturin:matrix.orgArtturin
In reply to @artturin:matrix.org
(not-yet-pr'd-but-fixed)
https://github.com/NixOS/nixpkgs/pull/185097
05:53:52
@trofi:matrix.orgtrofi Restored stripping of gcc on some recently-lost files: https://github.com/NixOS/nixpkgs/pull/184908. Not a big closure difference, but still nice for consistency. 07:00:38
@tpw_rules:matrix.orgtpw_rulesok it seems my issue has in fact been fixed on master15:02:43
5 Aug 2022
@daxvena:matrix.orgKira Bruneau joined the room.00:43:19
@daxvena:matrix.orgKira Bruneau changed their display name from daxvena to Kira Bruneau.00:43:22
@daxvena:matrix.orgKira Bruneau changed their display name from Kira Bruneau to daxvena.00:44:46
@artturin:matrix.orgArtturinwith https://github.com/NixOS/nixpkgs/pull/185097 we can revert https://github.com/nixos/nixpkgs/commit/eb829035c938022bb064faef56a7b1346443e03400:57:39
@artturin:matrix.orgArtturinso no need to add gobject-introspection to buildInputs 00:57:58
@daxvena:matrix.orgKira Bruneau changed their display name from daxvena to Kira Bruneau.03:24:50
@trofi:matrix.orgtrofibinutils-2.39, lightly tested so far: https://github.com/NixOS/nixpkgs/pull/18529720:40:12
6 Aug 2022
@Minijackson:matrix.orgMinijackson trofi: I see you've removed the ppc patch from the nix file, but not the .patch file itself, is there any particular reason? 09:03:18
@trofi:matrix.orgtrofiNone. Probably just forgot. Looking.14:48:47
@trofi:matrix.orgtrofiYeah. Removed the file as well and pushed.14:52:12
7 Aug 2022
@trofi:matrix.orgtrofi A bit more stripping, this time for glibc and other separate-debug packages: https://github.com/NixOS/nixpkgs/pull/185537 11:29:50
@yuka:yuka.devYuka (she/her)

Libgpg-error needs to figure out some platform specific properties.
These are used to build the platform specific gpg-error.h file. The
detection is done during build time but can't be done when
cross-compiling.

We could fix this by using the qemu-user emulator right?

11:46:31
@artturin:matrix.orgArtturin
In reply to @yuka:yuka.dev

Libgpg-error needs to figure out some platform specific properties.
These are used to build the platform specific gpg-error.h file. The
detection is done during build time but can't be done when
cross-compiling.

We could fix this by using the qemu-user emulator right?

Read the configure script and hardcode the values
11:50:53
@artturin:matrix.orgArtturinAnd check other distros build definitions for that package 11:51:34
@artturin:matrix.orgArtturinOpenembedded-core and void11:51:51
@yuka:yuka.devYuka (she/her)Yeah but I mean a generic fix11:53:12
@yuka:yuka.devYuka (she/her)Not something where you need to add support for each new platform individually11:53:25
@yuka:yuka.devYuka (she/her)

the list of manual conditional fixes is already pretty long:

  '' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.buildPlatform != stdenv.hostPlatform) ''
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-gnueabihf.h
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-gnueabi.h
  '' + lib.optionalString (stdenv.hostPlatform.isx86_64 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.x86_64-pc-linux-musl.h src/syscfg/lock-obj-pub.linux-musl.h
  '' + lib.optionalString (stdenv.hostPlatform.isi686 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.i686-unknown-linux-gnu.h src/syscfg/lock-obj-pub.linux-musl.h
  '' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.arm-unknown-linux-musleabihf.h
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-musleabihf.h
  '' + lib.optionalString (stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.aarch64-unknown-linux-gnu.h src/syscfg/lock-obj-pub.linux-musl.h
  '';
11:54:27
@yuka:yuka.devYuka (she/her) *

the list of manual conditional fixes is already pretty long:

  '' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.buildPlatform != stdenv.hostPlatform) ''
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-gnueabihf.h
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-gnueabi.h
  '' + lib.optionalString (stdenv.hostPlatform.isx86_64 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.x86_64-pc-linux-musl.h src/syscfg/lock-obj-pub.linux-musl.h
  '' + lib.optionalString (stdenv.hostPlatform.isi686 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.i686-unknown-linux-gnu.h src/syscfg/lock-obj-pub.linux-musl.h
  '' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.arm-unknown-linux-musleabihf.h
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-musleabihf.h
  '' + lib.optionalString (stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.aarch64-unknown-linux-gnu.h src/syscfg/lock-obj-pub.linux-musl.h
  '';
11:54:31
@yuka:yuka.devYuka (she/her) *

the list of manual conditional fixes is already pretty long:

  ''
  '' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.buildPlatform != stdenv.hostPlatform) ''
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-gnueabihf.h
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-gnueabi.h
  '' + lib.optionalString (stdenv.hostPlatform.isx86_64 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.x86_64-pc-linux-musl.h src/syscfg/lock-obj-pub.linux-musl.h
  '' + lib.optionalString (stdenv.hostPlatform.isi686 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.i686-unknown-linux-gnu.h src/syscfg/lock-obj-pub.linux-musl.h
  '' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.arm-unknown-linux-musleabihf.h
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-musleabihf.h
  '' + lib.optionalString (stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.aarch64-unknown-linux-gnu.h src/syscfg/lock-obj-pub.linux-musl.h
  '';
11:54:35
@yuka:yuka.devYuka (she/her) *

the list of manual conditional fixes is already pretty long:

  postPatch = ''
[...]
  '' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.buildPlatform != stdenv.hostPlatform) ''
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-gnueabihf.h
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-gnueabi.h
  '' + lib.optionalString (stdenv.hostPlatform.isx86_64 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.x86_64-pc-linux-musl.h src/syscfg/lock-obj-pub.linux-musl.h
  '' + lib.optionalString (stdenv.hostPlatform.isi686 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.i686-unknown-linux-gnu.h src/syscfg/lock-obj-pub.linux-musl.h
  '' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.arm-unknown-linux-musleabihf.h
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-musleabihf.h
  '' + lib.optionalString (stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.aarch64-unknown-linux-gnu.h src/syscfg/lock-obj-pub.linux-musl.h
  '';
11:54:47
@yuka:yuka.devYuka (she/her) *

the list of manual conditional fixes (symlinking stuff from existing configs which happen to be the same as the required target) is already pretty long:

  postPatch = ''
[...]
  '' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.buildPlatform != stdenv.hostPlatform) ''
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-gnueabihf.h
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-gnueabi.h
  '' + lib.optionalString (stdenv.hostPlatform.isx86_64 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.x86_64-pc-linux-musl.h src/syscfg/lock-obj-pub.linux-musl.h
  '' + lib.optionalString (stdenv.hostPlatform.isi686 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.i686-unknown-linux-gnu.h src/syscfg/lock-obj-pub.linux-musl.h
  '' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.arm-unknown-linux-musleabihf.h
    ln -s lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-musleabihf.h
  '' + lib.optionalString (stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isMusl) ''
    ln -s lock-obj-pub.aarch64-unknown-linux-gnu.h src/syscfg/lock-obj-pub.linux-musl.h
  '';
11:55:22
@yuka:yuka.devYuka (she/her)nvm, upstream updates make all of these fixes unnecessary, I could only find one very niche platform that is still broken (riscv32 musl)12:26:13
@yuka:yuka.devYuka (she/her)https://github.com/NixOS/nixpkgs/pull/18554112:26:16
@qyliss:fairydust.spaceAlyssa Rossyuka: we could but IIRC they have lists of those upstream for cross-compiling16:37:22
@qyliss:fairydust.spaceAlyssa Rossso that would be the proper way to fix it16:37:31

There are no newer messages yet.


Back to Room ListRoom Version: 6