IRC channel logs

2025-03-29.log

back to list of logs

<LaurentH>stikonas: Thanks, it seems to be working!
<fossy>LaurentH: ah, thanks, an upgrade messed up my crontab just a few days ago
<aggi>fyi: https://lists.nongnu.org/archive/html/tinycc-devel/2025-03/msg00029.html
<aggi>^ status of compiling a complete system with just tinycc
<blockhead>neat
<oriansj>aggi: thank you for your great work.
<LaurentH>fossy: I've been trying to get the checksums to match for tcc-0.9.26 using pnut and I'm curious to know how the expected hashes were determined in live-boostrap. I reach a fixed point at tcc-boot2 but the differences in paths (CONFIG_TCC_* macros and the C source path that TCC inscribes in .o files) means I can't know for sure I'm doing the right
<LaurentH>thing
<LaurentH>Bootstrapping from gcc gives me the same fixed point at least, but ideally I'd reproduce the exact same TCC-0.9.26 binary as live-boostrap
<stikonas>LaurentH: checksums are determined by running it twice, first you obtain checksum, make a commit
<stikonas>next run will have the same checksum
<stikonas>and it indeed depends on paths....
<stikonas>diffoscope might help you find differences between binaries
<matrix_bridge><cosinusoidally> LaurentH: I did manage to get identical versions of tcc-0.9.26 when integrating my tcc_bootstrap_alt project into live-bootstrap. The hashes of the earlier intermediate versions of tcc-0.9.26 did not match, but the final version did. My code did not get merged upstream, it is in my fork:...
<matrix_bridge>... https://github.com/fosslinux/live-bootstrap/compare/master...cosinusoidally:live-bootstrap:tcc_bootstrap_alt-refactor_nov24
<matrix_bridge><cosinusoidally> iirc source filename relative to cwd will leak into the o files
<matrix_bridge><cosinusoidally> As you've probably also noticed, tcc is a tangle of ifdefs that can also change the built in macro definitions in the compiler itself. I hit that when I managed to build a self hosted version of tcc that would hit a fixed point that was different depending. If I started from my tcc fork it would converge to one hash, if I started from gcc it would converge to a different hash. Turned out in my tcc...
<matrix_bridge>... fork *linux* was not being set. When I built starting from gcc, but added -U__linux__ the hashes were then identical.
<matrix_bridge><cosinusoidally> As you've probably also noticed, tcc is a tangle of ifdefs that can also change the built in macro definitions in the compiler itself. I hit that when I managed to build a self hosted version of tcc that would hit a fixed point that was different depending. If I started from my tcc fork it would converge to one hash, if I started from gcc it would converge to a different hash. Turned out in my tcc...
<matrix_bridge>... fork *linux* was not being set. When I built starting from gcc, but added -U__linux__ the hashes were then identical.
<matrix_bridge><cosinusoidally> * "__linux__"
<matrix_bridge><Andrius Štikonas> Well, hopefully though your code will be a good stepping stone for improving M2-Planet
<matrix_bridge><Andrius Štikonas> At least that's gtker's plan
<stikonas>LaurentH: ok, I've spent a bit of time and added automatic updates too to my mirror
<stikonas>(rather than pulling manually from time to time)