-
Notifications
You must be signed in to change notification settings - Fork 62
Conversation
@fosslinux
fosslinux
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ooh, good find!
35f7acb to
55316f4
Compare
Ah, I think I know why findutils wasn't working right, musl-1.1.24 misses reallocarray and I haven't put a fallback in utils-std so tr, cut, df, join got excluded.
Diff of perl-5.36.3_0 looks quite interesting but sadly gives off no hints as to why.
diff --git a/reference_artifact/internal_pass2_image/perl-5.36.3_0/usr/lib/perl5/5.36.3/i686-linux/Config.pm b/utils-std_artifacts/perl-5.36.3_0/usr/lib/perl5/5.36.3/i686-linux/Config.pm index f17d6a6..8cae4b6 100644 --- a/reference_artifact/internal_pass2_image/perl-5.36.3_0/usr/lib/perl5/5.36.3/i686-linux/Config.pm +++ b/utils-std_artifacts/perl-5.36.3_0/usr/lib/perl5/5.36.3/i686-linux/Config.pm @@ -96,7 +96,7 @@ sub AUTOLOAD { inc_version_list => '5.30.3 5.24.4 5.22.4 5.18.4 5.17.4 5.17.2 5.16.3 5.15.7 5.12.5 5.8.9', intsize => '4', ldlibpthname => 'LD_LIBRARY_PATH', - libpth => '/usr/lib /lib', + libpth => '/usr/lib', osname => 'linux', osvers => '4.14.0', path_sep => ':', diff --git a/reference_artifact/internal_pass2_image/perl-5.36.3_0/usr/lib/perl5/5.36.3/i686-linux/Config_heavy.pl b/utils-std_artifacts/perl-5.36.3_0/usr/lib/perl5/5.36.3/i686-linux/Config_heavy.pl index c9b6ca8..4deed3c 100644 --- a/reference_artifact/internal_pass2_image/perl-5.36.3_0/usr/lib/perl5/5.36.3/i686-linux/Config_heavy.pl +++ b/utils-std_artifacts/perl-5.36.3_0/usr/lib/perl5/5.36.3/i686-linux/Config_heavy.pl @@ -1086,12 +1086,12 @@ sub myconfig { libc='' libdb_needs_pthread='N' libperl='libperl.a' -libpth='/usr/lib /lib' +libpth='/usr/lib' libs=' ' libsdirs='' libsfiles='' libsfound='' -libspath=' /usr/lib /lib' +libspath=' /usr/lib' libswanted='cl pthread socket inet nsl gdbm dbm db malloc dl ld sun m crypt sec util c cposix posix ucb BSD gdbm_compat' libswanted_uselargefiles='' line=''
stikonas
commented
Feb 13, 2026
Diff of
perl-5.36.3_0looks quite interesting but sadly gives off no hints as to why.diff --git a/reference_artifact/internal_pass2_image/perl-5.36.3_0/usr/lib/perl5/5.36.3/i686-linux/Config.pm b/utils-std_artifacts/perl-5.36.3_0/usr/lib/perl5/5.36.3/i686-linux/Config.pm index f17d6a6..8cae4b6 100644 --- a/reference_artifact/internal_pass2_image/perl-5.36.3_0/usr/lib/perl5/5.36.3/i686-linux/Config.pm +++ b/utils-std_artifacts/perl-5.36.3_0/usr/lib/perl5/5.36.3/i686-linux/Config.pm @@ -96,7 +96,7 @@ sub AUTOLOAD { inc_version_list => '5.30.3 5.24.4 5.22.4 5.18.4 5.17.4 5.17.2 5.16.3 5.15.7 5.12.5 5.8.9', intsize => '4', ldlibpthname => 'LD_LIBRARY_PATH', - libpth => '/usr/lib /lib', + libpth => '/usr/lib', osname => 'linux', osvers => '4.14.0', path_sep => ':', diff --git a/reference_artifact/internal_pass2_image/perl-5.36.3_0/usr/lib/perl5/5.36.3/i686-linux/Config_heavy.pl b/utils-std_artifacts/perl-5.36.3_0/usr/lib/perl5/5.36.3/i686-linux/Config_heavy.pl index c9b6ca8..4deed3c 100644 --- a/reference_artifact/internal_pass2_image/perl-5.36.3_0/usr/lib/perl5/5.36.3/i686-linux/Config_heavy.pl +++ b/utils-std_artifacts/perl-5.36.3_0/usr/lib/perl5/5.36.3/i686-linux/Config_heavy.pl @@ -1086,12 +1086,12 @@ sub myconfig { libc='' libdb_needs_pthread='N' libperl='libperl.a' -libpth='/usr/lib /lib' +libpth='/usr/lib' libs=' ' libsdirs='' libsfiles='' libsfound='' -libspath=' /usr/lib /lib' +libspath=' /usr/lib' libswanted='cl pthread socket inet nsl gdbm dbm db malloc dl ld sun m crypt sec util c cposix posix ucb BSD gdbm_compat' libswanted_uselargefiles='' line=''
very strange... And so late in the bootstrap. That's well after we switch to coreutils 9.4... How much do we care about this given that /lib is a symlink to /usr/lib
Seems to be due to having a which(1) implementation.
Here's the full list of stuff which utils-std-0.1.1_0 includes but coreutils-9.4_0 doesn't:
$ tar tvf target-2026年02月14日T04\:20\:25+01\:00/external/repo/utils-std-0.1.1_0.tar.bz2 | awk '{ print 9ドル }' > target-2026年02月14日T04\:20\:25+01\:00-utils-std-0.1.1_0.ls
$ tar tvf target-2026年02月14日T04\:20\:25+01\:00/external/repo/coreutils-9.4_0.tar.bz2 | awk '{ print 9ドル }' > target-2026年02月14日T04\:20\:25+01\:00-coreutils-9.4_0.ls
$ grep -vFx -f ./target-2026年02月14日T04\:20\:25+01\:00-coreutils-9.4_0.ls target-2026年02月14日T04\:20\:25+01\:00-utils-std-0.1.1_0.ls
./usr/bin/arch
./usr/bin/cmp
./usr/bin/mesg
./usr/bin/renice
./usr/bin/strings
./usr/bin/time
./usr/bin/uuencode
./usr/bin/which
./usr/share/man/man1/arch.1
./usr/share/man/man1/cmp.1
./usr/share/man/man1/mesg.1
./usr/share/man/man1/renice.1
./usr/share/man/man1/strings.1
./usr/share/man/man1/time.1
./usr/share/man/man1/uuencode.1
./usr/share/man/man1/which.1
cc57ed4 to
2f75ecf
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not really sure what's happening with this one, fetching CI artifacts from master branch it seems like javaversion.class isn't getting removed while running this branch on both CI and my workstation it is getting properly removed, with find(1) being from findutils and touch from coreutils-9.4
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hm. weird....
Tested it in qemu, ends up with at least wc(1) throwing a ton of page faults errors:
screen
And sadly I can't reproduce with ./configure CC=musl-gcc in FiwixOS 3.5 image.
fosslinux
commented
Feb 20, 2026
On which specific build does that occur?
fosslinux
commented
Feb 20, 2026
Also, do you have a list of things coreutils-5.0 includes and utils-std doesn't?
lanodan
commented
Feb 21, 2026
On which specific build does that occur?
With building the boot image on this branch like so: ./rootfs.py -b --external-sources --build-kernels --mirror ${local_mirror} --interactive
And manually giving it to qemu like so: qemu-system-x86_64 -enable-kvm -smp 8 -m 5120 -hda target/init.img -hdb target/external.img -spice addr=${local_ip},port=8000,disable-ticketing=on -machine kernel-irqchip=split
(I know rootfs.py has a qemu option but was away from my workstation)
Also, do you have a list of things coreutils-5.0 includes and utils-std doesn't?
Yeah, can just swap arguments passed to the grep done earlier, much bigger list as utils-std is still quite new:
Details
$ grep -vFx -f ./target-2026年02月14日T04\:20\:25+01\:00-utils-std-0.1.1_0.ls ./target-2026年02月14日T04\:20\:25+01\:00-coreutils-9.4_0.ls ./usr/bin/b2sum ./usr/bin/base32 ./usr/bin/basenc ./usr/bin/chcon ./usr/bin/comm ./usr/bin/cp ./usr/bin/csplit ./usr/bin/dd ./usr/bin/dir ./usr/bin/dircolors ./usr/bin/du ./usr/bin/expand ./usr/bin/factor ./usr/bin/fmt ./usr/bin/fold ./usr/bin/groups ./usr/bin/hostid ./usr/bin/kill ./usr/bin/ls ./usr/bin/md5sum ./usr/bin/nl ./usr/bin/numfmt ./usr/bin/od ./usr/bin/pinky ./usr/bin/pr ./usr/bin/printenv ./usr/bin/ptx ./usr/bin/runcon ./usr/bin/sha224sum ./usr/bin/sha384sum ./usr/bin/shred ./usr/bin/sort ./usr/bin/stat ./usr/bin/stdbuf ./usr/bin/stty ./usr/bin/sum ./usr/bin/tac ./usr/bin/tail ./usr/bin/tsort ./usr/bin/unexpand ./usr/bin/uptime ./usr/bin/users ./usr/bin/vdir ./usr/bin/who ./usr/libexec/ ./usr/libexec/coreutils/ ./usr/libexec/coreutils/libstdbuf.so ./usr/share/info/ ./usr/share/man/man1/b2sum.1 ./usr/share/man/man1/base32.1 ./usr/share/man/man1/basenc.1 ./usr/share/man/man1/chcon.1 ./usr/share/man/man1/chgrp.1 ./usr/share/man/man1/comm.1 ./usr/share/man/man1/cp.1 ./usr/share/man/man1/csplit.1 ./usr/share/man/man1/dd.1 ./usr/share/man/man1/dir.1 ./usr/share/man/man1/dircolors.1 ./usr/share/man/man1/du.1 ./usr/share/man/man1/expand.1 ./usr/share/man/man1/factor.1 ./usr/share/man/man1/fmt.1 ./usr/share/man/man1/fold.1 ./usr/share/man/man1/groups.1 ./usr/share/man/man1/hostid.1 ./usr/share/man/man1/kill.1 ./usr/share/man/man1/ls.1 ./usr/share/man/man1/md5sum.1 ./usr/share/man/man1/nl.1 ./usr/share/man/man1/numfmt.1 ./usr/share/man/man1/od.1 ./usr/share/man/man1/pinky.1 ./usr/share/man/man1/pr.1 ./usr/share/man/man1/printenv.1 ./usr/share/man/man1/ptx.1 ./usr/share/man/man1/runcon.1 ./usr/share/man/man1/sha224sum.1 ./usr/share/man/man1/sha384sum.1 ./usr/share/man/man1/shred.1 ./usr/share/man/man1/sort.1 ./usr/share/man/man1/stat.1 ./usr/share/man/man1/stdbuf.1 ./usr/share/man/man1/stty.1 ./usr/share/man/man1/sum.1 ./usr/share/man/man1/tac.1 ./usr/share/man/man1/tail.1 ./usr/share/man/man1/tsort.1 ./usr/share/man/man1/unexpand.1 ./usr/share/man/man1/uptime.1 ./usr/share/man/man1/users.1 ./usr/share/man/man1/vdir.1 ./usr/share/man/man1/who.1
Bit surprising to see b2sum already present, and I guess stdbuf (relies on LD_PRELOAD) is at best useless given static binaries are used.
Also, do you have a list of things coreutils-5.0 includes and utils-std doesn't?
Yeah, can just swap arguments passed to the grep done earlier, much bigger list as utils-std is still quite new:
Erf, misread that one, here's comparison between coreutils-5.0 and utils-std-0.1.2, non-indented are ones present only in utils-std, indented are ones present only in coreutils-5.0, and common ones are suppressed(-3).
Details
comm -3 hist/2026-02-24-utils-std-0.1.2_0.ls hist/coreutils-5.0.0.ls | grep -v /share/man/ < ./usr/bin/[ ./usr/bin/arch ./usr/bin/base64 ./usr/bin/chgrp ./usr/bin/chown ./usr/bin/cmp ./usr/bin/comm ./usr/bin/cp ./usr/bin/csplit ./usr/bin/date ./usr/bin/dd ./usr/bin/df ./usr/bin/expand ./usr/bin/fmt ./usr/bin/fold ./usr/bin/kill ./usr/bin/ls ./usr/bin/md5sum ./usr/bin/mesg ./usr/bin/mktemp ./usr/bin/nice ./usr/bin/nl ./usr/bin/nohup ./usr/bin/nproc ./usr/bin/od ./usr/bin/ptx ./usr/bin/realpath ./usr/bin/renice ./usr/bin/sha256sum ./usr/bin/sha512sum ./usr/bin/shuf ./usr/bin/sort ./usr/bin/stat ./usr/bin/strings ./usr/bin/sum ./usr/bin/tac ./usr/bin/tail ./usr/bin/time ./usr/bin/timeout ./usr/bin/truncate ./usr/bin/tsort ./usr/bin/tty ./usr/bin/unexpand ./usr/bin/uuencode
fosslinux
commented
Mar 4, 2026
hmm... I will attempt to reproduce the QEMU error some point next week
With a POSIX conforming getopt() options ends at first non-option, so the -p has to be before the arguments.
utils-std-0.1.2 doesn't replaces coreutils-5.0/pass1 due to depending on: * A shell for ./configure, making the bash implicit jump messy * POSIX C interfaces which mes-libc lacks Also coreutils-6.10 is only for utilities which utils-std provides: date, mktemp, sha256sum
Only difference is javaversion.class getting properly removed.
Changelog at: https://distfiles.hacktivis.me/releases/utils-std/utils-std-0.2.0.txt Notably adds comm(1) command and `ln -r` For the syscalls not supported on Fiwix it would probably be better to remove them from pre-linux-kexec musl as otherwise it means broken compile+link ./configure tests as we can see here.
Managed to go further for Fiwix, somehow calling posix_fadvise() would trigger page faults instead of returning ENOSYS like the others.
But then get stuck again due to similar lack of unlinkat():
rm: error: Couldn't remove 'awktab.c': Function not implemented
Uh oh!
There was an error while loading. Please reload this page.
Doesn't fully replaces coreutils-5.0 as utils-std-0.1.1 is still missing some utilities.