!ayCRiZriCVtuCUpeLp:nixos.org

Nix Cross Compiling

571 Members
125 Servers

Load older messages


SenderMessageTime
13 Oct 2025
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)that's better 12:26:49
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)https://github.com/NixOS/nixpkgs/pull/45166512:52:29
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)Next!13:15:36
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)
https://cache.nixos.org/azkr6fkw861j987imi4k5y0abvqi1b7c.narinfo
https://cache.nixos.org/8ggn6daw4hjxdlbcna9q2535890ykjii.narinfo
https://cache.nixos.org/azkr6fkw861j987imi4k5y0abvqi1b7c.narinfo
https://cache.nixos.org/8ggn6daw4hjxdlbcna9q2535890ykjii.narinfo
Sourcing python-remove-tests-dir-hook
Sourcing python-catch-conflicts-hook.sh
Sourcing python-remove-bin-bytecode-hook.sh
Sourcing setuptools-build-hook
Using setuptoolsBuildPhase
Sourcing pypa-install-hook
Using pypaInstallPhase
Sourcing python-imports-check-hook.sh
Using pythonImportsCheckPhase
Sourcing python-namespaces-hook
Sourcing python-catch-conflicts-hook.sh
Running phase: unpackPhase
@nix {"action":"setPhase","phase":"unpackPhase"}
unpacking source archive /nix/store/1y46kvp3g2w9lvgjwm16anbgj1fbxhw6-fb-re2-1.0.7.tar.gz
source root is fb-re2-1.0.7
setting SOURCE_DATE_EPOCH to timestamp 1549563635 of file "fb-re2-1.0.7/setup.cfg"
Running phase: patchPhase
@nix {"action":"setPhase","phase":"patchPhase"}
applying patch /nix/store/2ynhdqagqhhgiwwp42vs2k1rbzg4hk16-08fb06ec3ccd412ca69483d27234684a04cb91a0.patch
patching file setup.py
Hunk #1 succeeded at 21 (offset -1 lines).
Running phase: updateAutotoolsGnuConfigScriptsPhase
@nix {"action":"setPhase","phase":"updateAutotoolsGnuConfigScriptsPhase"}
Running phase: configurePhase
@nix {"action":"setPhase","phase":"configurePhase"}
no configure script, doing nothing
Running phase: buildPhase
@nix {"action":"setPhase","phase":"buildPhase"}
Executing setuptoolsBuildPhase
setup.py build flags: ''
/nix/store/i8dj359n8kpcqnf8smx04i2w79pdswpd-python3.13-setuptools-80.9.0/lib/python3.13/site-packages/setuptools/_distutils/dist.py:289: UserWarning: Unknown distribution option: 'test_suite'
  warnings.warn(msg)
/nix/store/i8dj359n8kpcqnf8smx04i2w79pdswpd-python3.13-setuptools-80.9.0/lib/python3.13/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!

        ********************************************************************************
        Please consider removing the following classifiers in favor of a SPDX license expression:

        License :: OSI Approved :: BSD License

        See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
        ********************************************************************************

!!
  self._finalize_license_expression()
running bdist_wheel
running build
running build_py
creating build/lib.linux-aarch64-cpython-313
copying re2.py -> build/lib.linux-aarch64-cpython-313
running build_ext
building '_re2' extension
creating build/temp.linux-aarch64-cpython-313
g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -I/nix/store/5grqzcflpanpjl31siiz168y8mwmv9jl-python3-3.13.8/include/python3.13 -c _re2.cc -o build/temp.linux-aarch64-cpython-313/_re2.o -std=c++17
_re2.cc:252:1: error: cannot convert ‘std::nullptr_t’ to ‘Py_ssize_t’ {aka ‘long int’} in initialization
  252 | };
      | ^
_re2.cc:296:1: error: cannot convert ‘std::nullptr_t’ to ‘Py_ssize_t’ {aka ‘long int’} in initialization
  296 | };
      | ^
_re2.cc:340:1: error: cannot convert ‘std::nullptr_t’ to ‘Py_ssize_t’ {aka ‘long int’} in initialization
  340 | };
      | ^
_re2.cc:870:1: warning: ‘PyObject* regexp_set_new(PyTypeObject*, PyObject*, PyObject*)’ defined but not used [-Wunused-function]
  870 | regexp_set_new(PyTypeObject* type, PyObject* args, PyObject* kwds)
      | ^~~~~~~~~~~~~~
_re2.cc:195:1: warning: ‘int _no_setattr(PyObject*, PyObject*, PyObject*)’ defined but not used [-Wunused-function]
  195 | _no_setattr(PyObject* obj, PyObject* name, PyObject* v) {
      | ^~~~~~~~~~~
error: command '/nix/store/hfiszd1qvqa0mbpj176s5ym4wpmk4nwx-gcc-wrapper-14.3.0/bin/g++' failed with exit code 1
13:15:38
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) Ihar Hrachyshka: Do you know why musl static might fail with llvm now? 13:55:24
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)Like this https://hercules-ci.com/accounts/github/MatthewCroughan/derivations/%2Fnix%2Fstore%2Fqk942ikx3lr5wvkwycizc4xvhj8pykwf-musl-static-aarch64-unknown-linux-musl-1.2.5.drv/log?via-job=bfdba484-5299-4137-89f5-0a94331faf9613:55:53
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) collect2: fatal error: cannot find 'ld' 13:56:00
@ihar.hrachyshka:matrix.orgIhar Hrachyshkano idea. I'm not really a cross expert... :)13:56:35
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)this isn't cross13:56:41
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)this is native13:56:42
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)cross works fine13:56:56
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) I have a full pkgs.nixos {} building with cross, both llvm/musl, but now I'm tackling the native case 13:57:18
@ihar.hrachyshka:matrix.orgIhar Hrachyshka

I think musl is cross in a way - you cross build musl binaries with glibc build packages. It's just not arch cross.

(maybe I'm using terms incorrectly though)

13:57:30
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)Untrue in this case13:57:40
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)I've already done the cross case13:57:44
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) pkgsMusl is musl -> musl 13:57:51
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)
        nixosConfigurations.gnu-musl = nixosConfigurations.base.extendModules {
          modules = [
            ./musl.nix
            {
              nixpkgs.buildPlatform = (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-gnu");
              nixpkgs.hostPlatform = inputs.nixpkgs.lib.recursiveUpdate (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl") {};
            }
          ];
        };
        nixosConfigurations.gnu-musl-llvm = nixosConfigurations.base.extendModules {
          modules = [
            ./musl-llvm.nix
            {
              nixpkgs.buildPlatform = (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-gnu");
              nixpkgs.hostPlatform = inputs.nixpkgs.lib.recursiveUpdate (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl") {
                useLLVM = true;
                linker = "lld";
                config = "aarch64-unknown-linux-musl";
              };
            }
          ];
        };
        nixosConfigurations.musl = nixosConfigurations.base.extendModules {
          modules = [
            ./musl.nix
            {
              nixpkgs.buildPlatform = (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl");
              nixpkgs.hostPlatform = inputs.nixpkgs.lib.recursiveUpdate (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl") {};
            }
          ];
        };
        nixosConfigurations.musl-llvm = nixosConfigurations.base.extendModules {
          modules = [
            ./musl-llvm.nix
            {
              nixpkgs.buildPlatform = (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl");
              nixpkgs.hostPlatform = inputs.nixpkgs.lib.recursiveUpdate (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl") {
                useLLVM = true;
                linker = "lld";
                config = "aarch64-unknown-linux-musl";
              };
            }
          ];
        };

13:58:08
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) *
        nixosConfigurations.gnu-musl = nixosConfigurations.base.extendModules {
          modules = [
            ./musl.nix
            {
              nixpkgs.buildPlatform = (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-gnu");
              nixpkgs.hostPlatform = inputs.nixpkgs.lib.recursiveUpdate (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl") {};
            }
          ];
        };
        nixosConfigurations.gnu-musl-llvm = nixosConfigurations.base.extendModules {
          modules = [
            ./musl-llvm.nix
            {
              nixpkgs.buildPlatform = (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-gnu");
              nixpkgs.hostPlatform = inputs.nixpkgs.lib.recursiveUpdate (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl") {
                useLLVM = true;
                linker = "lld";
                config = "aarch64-unknown-linux-musl";
              };
            }
          ];
        };
        nixosConfigurations.musl = nixosConfigurations.base.extendModules {
          modules = [
            ./musl.nix
            {
              nixpkgs.buildPlatform = (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl");
              nixpkgs.hostPlatform = inputs.nixpkgs.lib.recursiveUpdate (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl") {};
            }
          ];
        };
        nixosConfigurations.musl-llvm = nixosConfigurations.base.extendModules {
          modules = [
            ./musl-llvm.nix
            {
              nixpkgs.buildPlatform = (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl");
              nixpkgs.hostPlatform = inputs.nixpkgs.lib.recursiveUpdate (inputs.nixpkgs.lib.systems.elaborate "aarch64-unknown-linux-musl") {
                useLLVM = true;
                linker = "lld";
                config = "aarch64-unknown-linux-musl";
              };
            }
          ];
        };

13:58:14
@ihar.hrachyshka:matrix.orgIhar Hrachyshkaah I see. I haven't looked at non-static musl, only pkgsStatic (which I believe is glibc->musl cross). anyway, I'm not of help.13:58:34
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)well musl-static is the thing that's failing13:59:13
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)so is that not related to pkgsStatic?13:59:19
@ihar.hrachyshka:matrix.orgIhar Hrachyshka pkgsStatic is musl static. (I'm confused.) 13:59:36
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) The name of the derivation that is failing is musl-static-aarch64-unknown-linux-musl 14:00:01
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)musl-static14:00:05
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) pkgsMusl.pkgsStatic.musl is the reproducer 14:00:54
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)IDK why this ends up in the dependency graph 14:01:33
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)image.png
Download image.png
14:02:48
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192)looks like somehow the gcc-wrapper needs it14:03:02
@matthewcroughan:defenestrate.itmatthewcroughan @ 39c3 (DECT 94667 or 97340 or 67192) pkgsStatic.pkgsLLVM.musl builds just fine 14:06:19
@rosssmyth:matrix.orgrosssmyth

While the APIs that are being used for ${program}.withPackages pattern is very nice and egronomic, it does have a downside of not using a spliced package. So for example recently I needed Python with a package in nativeBuildInputs, but then when cross-compiled it only has Python from pkgsHostTarget, leading to an invalid executable being used at build time and then either manually using pkgsBuildBuild.python or using the spliced Python and package separately.

I wonder if there is a good way to solve this? Meaning a way to use the spliced package, as for folks not in the know of splicing it is probably confusing to see a package operate differently based upon whether you use the helpers or not. But many of these helpers are implemented with finalAttrs.finalPackage, which isn't spliced.

18:00:49

Show newer messages


Back to Room ListRoom Version: 6