IRC channel logs

2021-03-03.log

back to list of logs

<stikonas>pder: so with binutils I can drop almost all musl patches
<stikonas>I guess that's good...
<stikonas>I'll do that maybe tomorrow
<stikonas>but all those assembly files that tcc choked upon can now just be built with GNU as
<stikonas>so only set_thread_area.patch tcc_static.patch va_list.patch are needed
<stikonas>and first two patches are upstreamed in newer versions of musl/tcc mob
<stikonas>fossy: I think https://github.com/fosslinux/live-bootstrap/pull/54 is now ready
<stikonas>and it has a green tick now
<stikonas>pder: I've pushed a branch that rebuilds musl and tcc with fewer patches https://github.com/stikonas/live-bootstrap/tree/musl-rebuild
<stikonas>I'll test it tomorrow
<stikonas>(just did some minor testing now and I think it works)
<stikonas>if you want, you can try to build bash on top of that
***ChanServ sets mode: +o rekado_
***rekado_ is now known as rekado
<stikonas>civodul: this patch https://github.com/fosslinux/live-bootstrap/blob/master/sysa/binutils-2.14/patches/deterministic_binutils.patch should help with https://issues.guix.gnu.org/45962
<civodul>stikonas: yay, thank you!
<civodul>i'll give it a spin on core-updates
<stikonas>you might need to add --enable-deterministic-archives to binutils-2.20 later in commencement.scm
<stikonas>I think 2.20 already has that patch
<stikonas>but at least let's see if this fixes 2.14
<civodul>great
***EDEF is now known as edef
<civodul>stikonas: the patch was originally written by Chris Demetriou, is that correct?
<stikonas>well, original patch for newer binutils
<stikonas>civodul: https://github.com/hermitcore/binutils/commit/36e4dce69dd23bea9ea225
<stikonas>so yes
<civodul>ok
<stikonas>I modified it a bit
<stikonas>but generally followed the same steps
<stikonas>has it worked for you?
<civodul>stikonas: there are other issues on core-updates that need fixing first :-)
<civodul>but other than that it should work
<stikonas>civodul: by the way, I think in live-bootstrap we'll be able to skip gcc-2.95.3, not sure if that would be interesting in guix... I.e. we might go tcc->gcc 4
<civodul>oh sure, shrinking the chain is always interesting
<civodul>let me know if it works for you!
<stikonas>well, it will take at least a week or so...
<stikonas>although, I'm not sure if chain is smaller...
<stikonas>because we need to build other stuff
<stikonas>but if it has fewer old compilers, it might still be simpler to port to new architectures later
<civodul>yeah, it still sounds like it could be an improvement
<pder>stikonas: in your musl-rebuild branch, I am looking at binutils-rebuild.sh. I think it would be clearer to just run patch manually for each of the patches we still want instead of just deleting musl_weak_symbols
<stikonas>possibly...
<pder>looking in the patches directory, I also think we dont need makefile.patch or stdio_flush_on_exit
<stikonas>oh, I removed those locally
<stikonas>I'll push everything in a few hours with updated chekcums
<stikonas>only 3 patches are necessary
<stikonas>I can also get rid of assembly patches
<stikonas>(e.g. fenv.patch)
<pder>oh ok, I think I am looking at not the latest
<stikonas>yeah...
<stikonas>tcc still can't build those
<stikonas>but we have as now
<stikonas>pder: let me rebase now... I'll pushe then
<stikonas>pder: should be latest now
<stikonas>if you refresh
<stikonas>pder: another option is to specify another patch dir and symlink wanted patches
<stikonas>like patches_2
<stikonas>pder: so I think gcc 4.0.4 is buildable with minimal changes but it needs newer autoconf, so need to do more perl work
<stikonas>probablu 4.1.2 will also build
<stikonas>hmm, no 4.1.2 probably won't work
<Hagfish>i don't know whether it should feel like yak-shaving or solving a sudoku, dealing with all these dependencies and the random problems they throw up
<Hagfish>i guess if there's an end in sight, and you can see the progress you are making, then it doesn't feel like the problem is fractal
<pder>stikonas: I am looking at the musl-rebuild branch you recently pushed- commit b54e49f66923f44. It appears to still be applying patches that I dont think you intend
<stikonas>pder: yeah, I noticed it an hour ago... fixing
<stikonas>I think I haven't committed those changes
<stikonas>so need to redo
<stikonas>well, should be easy, just need to rerun live-bootstrap a couple of times...
<stikonas>pder: I've now pushed updated branch
<stikonas>hopefully right this time
<pder>great, thanks. I am looking forward to seeing if those stdio flush on exit issues are resolved
<stikonas>yeah, I think they should be
<stikonas>well, I didn't recompile anything else but tcc
<stikonas>pder: so I've now also did some experiments (though, I didn't record exact steps and was cheating with bison/autoconf/automake), and I was able to get quite far in gcc 4.0.4 build
<stikonas>it went all the way to xgcc and then failed...
<stikonas>probably didn't specify where libc is...
<stikonas>but anyway, just feasibilty experiment... Didn't write anycode
<stikonas>well, let's get bash in first...
<stikonas>we'll probably need newer autoconf too
<stikonas>and might need to rebuild stuff like gawk or sed
<stikonas>pder: regarding your bash change, do we need to checksum bashbug? it's just a script basically coppied from tarball
<stikonas>in similar cases with autoconf/automake we didn't do checksums
<stikonas>so probably either should do all, or nothing to be consinstent
<stikonas>and tcc/musl rebuild PR is here now https://github.com/fosslinux/live-bootstrap/pull/55
<stikonas>actually, I can simplify .sh file by not creating /dev which should already exist
<pder>I can remove the checksum for bashbug, so just checksum /after/bin/bash?
<stikonas[m]>I think so
<stikonas[m]>Anyway, it's not like we'll use bashbug...
<pder>True
<pder>My initial testcase of the stdio issue seems to be resolved without the patches which is good
<rekado>roptat: excellent work on the ocaml bootstrap! This is really a substantial amount of work.
<stikonas>pder: well, as expected since it was caused by picking wrong symbols
<stikonas>when we hacked those weak symbols
<fossy>I don't feel very comfortable not checking binaries just because we don't use them, I'm pretty sure there's a part of bash that shells out to bashbug
<roptat>rekado, most of the work was done by nore ;)
<fossy>Ooh! An ocaml bootstrap?
<fossy>link?
<fossy>oh
<fossy>stikonas: pder I forgot bashbug was a trivial script (not autogened) so nvm
<roptat>fossy, https://www.freelists.org/post/bootstrappable/Announcing-the-bootstrap-of-OCaml
<fossy>I really should be subd to that ml
<stikonas>yeah, I think we should also write to that mailing list when we bootstrap gcc in live-bootstrap...
<stikonas>especially if we get newer gcc than in guix
<fossy>oh reminds me
<roptat>fossy, also, it's in guix now: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/ocaml.scm#n108
<pder>I think our build function would benefit from using named arguments. Something like build checksums=pass1 script=foo.sh
<pder>Currently if you want to override the 4th argument you have to specify values for the other 3
<stikonas>pder: does bash support it?
<rekado>nore: also to you: I’m impressed with your work on the ocaml bootstrap! I think it’s amazing.
<rekado>like civodul wrote in #guix it would be a lovely next step to turn this into a proper language for Guile, using its compiler tower. (Not really bootstrap-related.)
<fossy>p
<fossy>oops
<rekado>p-oops?
<pder>I havent tried it with our version of bash, but something like build() { local script checksum\n local "${@}" ... }
<fossy>pder: yeah, I am unsure if bash supports that
<fossy>perhaps a rearranging of the arguments might be better?
<pder>ill play around with it, I was hoping to avoid positional arguments
<pder> https://stackoverflow.com/a/12128447
<pder>stikonas: I pushed my bash branch which is based on musl-rebuild and things look good so far
<stikonas>ok, we'll finally be able to chroot
<stikonas>or on real system do something useful
<stikonas>instead of sefauling
<stikonas>pder: I think after "Bootstrapping is complete" we can try to run "bash"
<stikonas>so in CI it will already be killed
<stikonas>but if you run manually, you'll get a prompt inside qemu
<OriansJ`>stikonas: Bootstrapping is never complete, only abandoned for more pressing bootstrapping work.
<OriansJ`>As each "completed" bootstrap piece is just a stepping stone for greater bootstraping goals.
<nore>rekado: thanks!
<mihi>hello :) Still trying to bootstrap psyntax.scm (so I am that "someone here" mentioned by stikonas). From my (limited guile knowledge) testing, I got 'syntax, 'syntax-case, 'with-syntax, 'syntax-rules and 'define-syntax-rule to work. Custom ellipsis is not implemented, and neither is it fully hygienic, but should be good enough to eventually load psyntax.scm. I'm currently struggling with getting quasisyntax (unsyntax-splicing) to work.
<mihi>And maybe some cases I don't know even existing may be buggy.
<mihi>Current status is here: https://github.com/schierlm/guile-psyntax-bootstrapping/tree/wip
<mihi>What puzzles me at the moment is to understand how line 102 in http://git.savannah.nongnu.org/cgit/guile.git/tree/module/ice-9/quasisyntax.scm#n102 is working...
<mihi>Syntax variable #'(t ...) is bound to a list of temporaries, and it is presumably picked up by the second t, while binding a new syntax variable with higher rank by the first t.
<mihi>But what exactly all those ellipses are doing is beyond my Scheme knowledge. Any help (or pointers who describe what these (... ...) are doing are appreciated.
<mihi>(I'm aware that I may be asking the wrong people here, but I'll try here first :D)
<mihi>another question for janneke: I see that Mes also comes with psyntax.pp, but I was unable to load it. Is it even used, or what did I miss?