| 16 Oct 2025 |
matthewcroughan | I have another issue after I set security.enableWrappers = false anyway | 18:59:39 |
matthewcroughan | Which is that somehow, glibc-nolibgcc gets involved and fails to build gettimeofday | 18:59:53 |
matthewcroughan | ┣━ Dependency Graph:
┃ ┌─ ✔ etc
┃ ├─ ⏸ boot.json waiting for 3 ⏵
┃ │ ┌─ ⏵ glibc-nolibgcc-aarch64-unknown-linux-musl-2.40-66 (buildPhase) ⏱ 2m12s
┃ │ ┌─ ⏸ libgcc-aarch64-unknown-linux-musl-14.3.0
┃ │ ┌─ ⏸ glibc-aarch64-unknown-linux-musl-2.40-66
┃ │ ├─ ⏵ initrd-udev-rules ⏱ 6s
┃ │ ├─ ⏵ initrd-units ⏱ 55s
┃ ├─ ⏸ initrd-linux-aarch64-unknown-linux-musl-6.17.3
┃ ┌─ ⏸ nixos-system-nixos-25.11.20251016.6bec4e9
┃ ┌─ ⏸ closure-info
┃ │ ┌─ ✔ unit-nixos-activation.service
┃ │ ┌─ ✔ user-units
┃ │ │ ┌─ ✔ unit-serial-getty-.service
┃ │ │ ├─ ✔ unit-systemd-fsck-.service
┃ │ │ ├─ ✔ unit-systemd-makefs-.service
┃ │ │ ├─ ✔ unit-systemd-mkswap-.service
┃ │ │ ├─ ✔ unit-getty-.service
┃ │ │ │ ┌─ ✔ mdadm-aarch64-unknown-linux-musl-4.4 ⏱ 2s
┃ │ │ │ ┌─ ✔ udev-rules
┃ │ │ │ ┌─ ✔ X-Restart-Triggers-systemd-udevd
┃ │ │ ├─ ✔ unit-systemd-udevd.service
┃ │ ├─ ✔ system-units
┃ │ ┌─ ✔ etc-json
┃ │ ┌─ ✔ etc-dump
┃ │ ├─ ✔ composefs-1.0.8 ⏱ 21s
┃ ├─ ✔ etc-metadata.erofs
┃ ┌─ ⏸ nixos-system-nixos-25.11.20251016.6bec4e9
┃ ┌─ ⏸ closure-info
┃ ┌─ ⏸ run-nixos-vm
┃ ⏸ nixos-vm
| 19:00:09 |
matthewcroughan | apparently to build initrd we need glibc in a pure musl build | 19:00:26 |
matthewcroughan | leaky leaky | 19:00:29 |
matthewcroughan | Hmm, apparently we have a requirement for pkgsStatic in stub-ld too? dramforever | 19:04:59 |
matthewcroughan | ┃ │ │ │ ├─ ⏵ musl-static-aarch64-unknown-linux-musl-1.2.5 (buildPhase) ⏱ 19s
┃ │ │ │ ┌─ ⏸ aarch64-unknown-linux-musl-gcc-wrapper-14.3.0
┃ │ │ │ ┌─ ⏸ stdenv-linux
┃ │ │ │ ┌─ ⏸ stub-ld-aarch64-unknown-linux-musl
┃ │ │ │ ┌─ ⏸ nixos-tmpfiles.d
┃ │ │ │ ┌─ ⏸ tmpfiles.d
┃ │ │ │ ┌─ ⏸ X-Restart-Triggers-systemd-tmpfiles-resetup
┃ │ │ ├─ ⏸ unit-systemd-tmpfiles-resetup.service
┃ │ ├─ ⏸ system-units
┃ ├─ ⏸ etc
| 19:05:02 |
dramforever | ah yes | 19:06:06 |
dramforever | that one also must be static | 19:06:13 |
dramforever | it is itself a dynamic linker so it can't rely on another dynamic linker... | 19:06:32 |
matthewcroughan | s
┃ │ │ ┌─ ⏸ libgcc-aarch64-unknown-linux-musl-14.3.0
┃ │ │ ┌─ ⏸ glibc-aarch64-unknown-linux-musl-2.40-66
┃ │ │ ┌─ ⏸ initrd-linux-aarch64-unknown-linux-musl-6.17.3
┃ │ ├─ ⏸ boot.json
┃ ├─ ⏸ nixos-system-nixos-25.11.20251016.6bec4e9
┃ ┌─ ⏸ run-nixos-vm
┃ ⏸ nixos-vm
I've gotten rid of that anyway, and now this
| 19:06:40 |
matthewcroughan | So it looks like actually initrd itself depends on glibc | 19:07:04 |
matthewcroughan | nixos/modules/system/boot/systemd/initrd.nix- "${pkgs.glibc}/lib/libnss_files.so.2" | 19:08:27 |
matthewcroughan | ah yeah ElvishJerricco already found this yesterday | 19:08:33 |
matthewcroughan | Haha! Hell yeah | 19:23:41 |
matthewcroughan | I fixed that, and now I have a native musl VM running :) | 19:23:48 |
matthewcroughan | And not just musl, but llvm built too | 19:24:00 |
matthewcroughan | Actually, musl fails with the oddest error ever | 19:24:24 |
matthewcroughan | * Actually, musl native fails with the oddest error ever | 19:24:27 |
matthewcroughan | error: Cannot build '/nix/store/sbj58dyg6cbhzsxx2kbwy9ry0jmwawi5-perl5.40.0-DBI-1.644.drv'.
┃ Reason: builder failed with exit code 2.
┃ Output paths:
┃ /nix/store/4i2c9hd1q0pbk3yfmvbpczwjc7klvd19-perl5.40.0-DBI-1.644
┃ /nix/store/w3vb6ih35x1ag2vfdzrhhiab0ygczin2-perl5.40.0-DBI-1.644-devdoc
┃ Last 25 log lines:
┃ > rm -f blib/arch/auto/DBI/DBI.so
┃ > gcc -shared -O2 -L/nix/store/c7f4fl560x8sr8znnib46c1ng8shxlvi-musl-1.2.5/lib -fstack-protector-strong DBI.o -o blib/arch/auto/DBI/DBI.so \
┃ > \
┃ >
┃ > chmod 755 blib/arch/auto/DBI/DBI.so
┃ > "/nix/store/wz6dsqy2ylsa87nc93rhaywnixd1rxhj-perl-5.40.0/bin/perl" "-Iblib/arch" "-Iblib/lib" dbilogstrip.PL dbilogstrip
┃ > Extracted dbilogstrip from dbilogstrip.PL with variable substitutions.
┃ > "/nix/store/wz6dsqy2ylsa87nc93rhaywnixd1rxhj-perl-5.40.0/bin/perl" "-Iblib/arch" "-Iblib/lib" dbiprof.PL dbiprof
┃ > Extracted dbiprof from dbiprof.PL with variable substitutions.
┃ > "/nix/store/wz6dsqy2ylsa87nc93rhaywnixd1rxhj-perl-5.40.0/bin/perl" "-Iblib/arch" "-Iblib/lib" dbiproxy.PL dbiproxy
┃ > Extracted dbiproxy from dbiproxy.PL with variable substitutions.
┃ > cp dbilogstrip blib/script/dbilogstrip
┃ > "/nix/store/wz6dsqy2ylsa87nc93rhaywnixd1rxhj-perl-5.40.0/bin/perl" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/dbilogstrip
┃ > cp dbiprof blib/script/dbiprof
┃ > "/nix/store/wz6dsqy2ylsa87nc93rhaywnixd1rxhj-perl-5.40.0/bin/perl" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/dbiprof
┃ > cp dbiproxy blib/script/dbiproxy
┃ > "/nix/store/wz6dsqy2ylsa87nc93rhaywnixd1rxhj-perl-5.40.0/bin/perl" -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/dbiproxy
┃ > Manifying 3 pod documents
┃ > Manifying 49 pod documents
┃ > Running phase: checkPhase
┃ > check flags: SHELL=/nix/store/pgpkqmkb27m3m16c58ls6387vd6ah0k0-bash-5.3p3/bin/bash VERBOSE=y test
┃ > "/nix/store/wz6dsqy2ylsa87nc93rhaywnixd1rxhj-perl-5.40.0/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- DBI.bs blib/arch/auto/DBI/DBI.bs 644
┃ > PERL_DL_NONLAZY=1 "/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
┃ > /nix/store/pgpkqmkb27m3m16c58ls6387vd6ah0k0-bash-5.3p3/bin/bash: line 1: /bin/perl: No such file or directory
┃ > make: *** [Makefile:1435: test_dynamic] Error 127
┃ For full logs, run:
┃ nix log /nix/store/sbj58dyg6cbhzsxx2kbwy9ry0jmwawi5-perl5.40.0-DBI-1.644.drv
| 19:24:38 |
matthewcroughan | I guess my perl overlay does not work as expected | 19:29:35 |
matthewcroughan | Yeah it doesn't | 19:29:52 |
dramforever | i can't reproduce the "ld" thing | 19:31:18 |
dramforever | with or without my patch | 19:31:23 |
dramforever | so i have no idea what went wrong | 19:31:35 |
matthewcroughan | id thing? | 19:35:05 |
dramforever | this | 19:35:51 |
matthewcroughan | oh, ld | 19:35:58 |
matthewcroughan | misread | 19:35:59 |
dramforever | do you have the full logs of that | 19:37:29 |