IRC channel logs
2026-03-02.log
back to list of logs
<aggi>ok, with the current approach tinycc is re/compiled 8times total and the system isn't bootable at that stage <aggi>missed another one, there's a 9th re-compilation of tinycc shortly before gcc-4.0.4 <aggi>then there is another 4 re/compilations of gcc <aggi>then grub follows, and make_bootable <aggi>anyone knows what the limitations of tcc-0.9.27 were which is emitted by MES-replacement? <aggi>would this tcc-0.9.27 suffice to do the following, compile/link/assemble: as86/yasm, busybox, linux-tcc syslinux-3.86? <aggi>among those steps, it would be as86.elf/yasm.elf and syslinux.elf which must execute atop/with rickmaster-kernel (without musl-libc) <aggi>busybox must successfuly compile/link against the minified libc at that stage, and be executable atop linux-tcc kernel when booted <matrix_bridge><cosinusoidally> aggi: looking at https://github.com/FransFaase/MES-replacement/tree/main I think mes-replacement is building the "bootstrappable" version of tcc from live-bootstrap (which live-bootstrap calls "0.9.26", but it's actually somewhere between 0.9.26 and 0.9.27, plus some patches). After 0.9.26 it does the initial 0.9.27 build. That 0.9.27 build can build all the way up to bash so I'd guess it might be... <matrix_bridge><cosinusoidally> Actually the PR against my fork of pnut doesn't use cjsawk, it just uses my fork of an old version of pnut that I ported to a dialect of JS that is also valid C. The https://github.com/fosslinux/live-bootstrap/pull/554 is probably more relevant as it was created by the author of pnut and uses a recent upstream version. <aggi>cosinusoidally: thanks for the notes! <aggi>i am certain already a tcc/busybox/linux2 system can be spawn, but i would want to accomplish this with a minified dependency chain and the least amount of complexity and confusion (of mine) involved <aggi>so the question isn't if, but exactly when in the live-bootstrap dependency chain a linux2/busybox/syslinux/as86/yasm etc could be hooked into: <aggi>BEFORE kexec-fiwix/musl, or AFTER kexec-fiwix... i would prefer the former option, if possible <aggi>with regards to tinycc, it's re-compiled 9times total i think, so we had to be precise exactly which one of these was referred to with tcc <aggi>and instead of a kexec-fiwix, if fiwix was involved, that's a desirable option of cause, i would prefer a make_bootable of fiwix early, instead of kexec-fiwix - simplified speaking <aggi>for that matter, in parallel to all this, i am/was still occupied with a little bureaucratic insanity (since there's no funding nor income at all i have to report to some financial department here over energy bills and income) <aggi>i am trying to not loose sanity over this alike <matrix_bridge><cosinusoidally> It probably depends whether you are wanting to bootstrap under a chroot/bubblewrap or bare metal. For a chroot you could probably start before fiwix, but if you are on bare metal you may struggle to run some build steps under builder-hex0 (as it is a very limited env). <aggi>as outlined already, both: chroot and NATIVE/qemu <aggi>steps/manifest does NOT express the build-time and run-time dependency graph with regards to the feasibility of a make_bootable BEFORE or of steps/fiwix itself <aggi>some of this can be tested with chroot, some other aspects MUST be tested NATIVE <matrix_bridge><cosinusoidally> It will be possible to build some version of grub earlier in the live-bootstrap process (after all gcc-4.0.4 will be able to build a version of grub). I assume tcc can build grub too? I don't know whether the live-bootstrap build of fiwix could actually install grub though (as in I've never tried). <matrix_bridge><cosinusoidally> It's worth noting that for testing purposes it is possible to insert prebuilt binaries into the live-bootstrap disk image. The contents of "steps/" gets copied into the image so if I binary is copied into that directory it will be available during the bootstrap process. This could be used, for example, to test a prebuilt busybox under fiwix. <aggi>ok, the idea here is that lilve-bootstrap is finished at MES-replacement that is shortly before or with make_bootable fiwix/linux2/busybox <matrix_bridge><cosinusoidally> Someone like Googulator or Rick Masters could probably answer more authoritatively (since they wrote the code), but I would think that hypothetically it would be possible to replace "build:fiwix" with "build:linux-tcc" and then boot linux 2.4 via kexec-fiwix. After that busybox could be built under linux 2.4. <aggi>yes, in this case a kexec linux-2.4 could provide SMP even for following stages, which isn't too too relevant nonetheless <aggi>because the most heavyweight scheme-dependent build-jobs were done alredy <aggi>or done with MES-replacement instead <aggi>so in this context a kexec-fiwix is good as it is <aggi>the real question seems to be, if a make_bootable <fiwix|linux-tcc> was feasible instead of kexec-fiwix <aggi>there's several options available <chroot|native><mes|MES-replacement>, then the question if a kexec was necessary to swap kernel-ABI for some musl-libc, and if that's really necessary for some fully capable tinycc (after all original tccboot did not need any external libc at all to compile and launch a kernel) <aggi>so far i am certain the entire dependency graph of gcc,binutils,perl,autotools can be dropped to remain optional for an initial development host <aggi>i do not know yet how much effort it's worth it to arrive at minified dependency graph for a bootapped <linux|fiwix>-floppy-size.img type of thing which contains a busybox and funtional tcc + as86|yasm