| 27 Jun 2023 |
raitobezarius | Plutôt que cmake directement | 22:14:02 |
raitobezarius | J'ai lu le contexte en diagonale cela dit | 22:14:12 |
raitobezarius | Si tu poses ta Q dans le canal de cross compil, je suis sûr que les suspects usuels t'aideront plus vite cela dit | 22:14:30 |
raitobezarius | P'tet que le splicing échoue ou est confus | 22:14:54 |
Gaël Reyrol | Ah mais je savais qu'il y avait un canal ^^ | 22:34:37 |
Gaël Reyrol | * Ah mais je savais pas qu'il y avait un canal ^^ | 22:34:43 |
Gaël Reyrol | Dala: https://matrix.to/#/#cross-compiling:nixos.org | 22:34:52 |
| 28 Jun 2023 |
Minijackson | Dala: je pense avoir trouvé une bonne solution à ton soucis | 06:31:47 |
Minijackson | si tu sépare le mkDerivation dans un autre fichier package.nix, et que dans flake.nix tu le remplace par pkgs.callPackage ./package.nix {}, ça devrait fonctionner | 06:32:39 |
Minijackson | je pense que c'est callPackage qui fait le splicing | 06:33:14 |
@victor_mignot:matrix.org | Dac, je tente ça dès que j'ai mon PC sous la main ! | 06:39:46 |
@victor_mignot:matrix.org | Pour info, qu'est ce que vous appelez le splicing du coup ? | 06:40:34 |
Minijackson | pour Nix, deux paquets sont différents à partir du moment où les instructions de builds sont différents (globalement) | 06:41:20 |
Minijackson | du coup, le cmake natif et le cmake pour host devraient être différents paquets | 06:41:38 |
Minijackson | mais dans nixpkgs, les gens ne s'en soucient pas parce qu'il y a de la triche derrière | 06:41:58 |
@victor_mignot:matrix.org | Je vois haha | 06:42:10 |
Minijackson | un paquet "spliced" contient à l'intérieur de lui même sa variation native, et d'autres variations | 06:42:27 |
Minijackson | s'il est pas spliced, il ne contient rien de plus que lui-même, donc mkDerivation ne peut pas être intelligent avec nativeBuildInputs et autre | 06:42:58 |
@victor_mignot:matrix.org | Mais typiquement dans ce cas, il devrait pas se compiler pour l'architecture system uniquement ? | 06:43:56 |
Minijackson | quand tu spécifie la cross-compilation, tous les paquets sous pkgs sont ceux cross-compilé | 06:44:33 |
Minijackson | sinon, il faut spécifier pkgs.buildPackages.cmake | 06:44:47 |
@victor_mignot:matrix.org | Dac, ça explique tout | 06:44:53 |
@victor_mignot:matrix.org | Mais du coup, le stdenv sera pas lui aussi compilé pour ARM dans ce cas là ? | 06:46:59 |
Minijackson | stdenv est un peu particulier | 06:47:22 |
Minijackson | il est configuré pour la cross-compilation | 06:47:38 |
Minijackson | vu qu'il lui faut forcément le bash pour l'hôte pour exécuter les instructions de build | 06:48:14 |
@victor_mignot:matrix.org | Et dernière question, le system doit forcément build tout le stdenv lui même ?
Ça fait typiquement parti des choses où y'a pas de binary dispo pour la compilation directement ?
Ou une toolchain doit forcément être compilée spécifiquement pour chaque combinaison de Host et de Target | 06:52:46 |
Minijackson | souvent, les paquets dont dépend le stdenv sont dans le cache | 06:53:08 |
Minijackson | c'est valable je crois pour toutes les platforms pré-configurée dans nixpkgs | 06:53:32 |
Minijackson | ici: https://github.com/NixOS/nixpkgs/blob/master/lib/systems/examples.nix | 06:53:46 |