IRC channel logs
2022-08-25.log
back to list of logs
<rickmasters>I'm pleased to announce that I just built tcc-0.9.26 on the builder-hex0 bootstrap kernel! <rickmasters>I had to implement loading multiple ELF program segments in the kernel and apply one small patch to the tcc code. <rickmasters>tcc builds itself in 5 phases so it appears to be fully working. <oriansj>That brings us to a whole new era of bootstrapping <oriansj>as TCC can build actual C kernels without a bunch of extra hoops <oriansj>infact most of the things aggi has been working on <rickmasters>Thanks all. I'll need to clean up a bit, remove debugging, etc, and will try to commit my changes soon. <oriansj>rickmasters: I really look forward to it ^_^ <stikonas[m]>rickmasters: you probably won't need it by I tried creating easier to use M1 defines <rickmasters>yes, I saw that and I think they were much better. Thank you! <stikonas[m]>I don't think I'll get to M0.efi until end of September <rickmasters>honestly, I'm not sure I have the motivation but I'll think about it. <rickmasters>oriansj: would you be ok with the wholesale replacement of the M0 defines in stage0-posix? <stikonas[m]>Unfortunately it can't be done by just find/replace as it messes up formatting <stikonas[m]>In any case it is up to oriansj to decide whether to keep current ones or switch <pabs3>acrow: roptat was working on scala bootstrap btw <stikonas[m]>And rekado tried ghc bootstrap but I guess hit problems <oriansj>the current ones were just a quick sort of creation and not something planned out <oriansj>so if replacing them with better is an option and someone is willing to do that, I'll appreciate the help. <oriansj>well find/replace could get it 90% done and a little work in an editor that shows whitespace could finish off the rest in a half hour. <Hagfish>heh, a bit late, but i want to be able to tell people i witnessed the announcement :) <Hagfish>as orians said, tcc is a huge milestone for a kernel, since it unlocks the ability to use kernels which are much more conventional <Hagfish>anyway, this is a great day for bootstrappers, and thus for all users of software <aggi>oriansj: i fully replaced the entire GNU toolchain with tcc, in userspace <aggi>however, i gave up on libc recently... there isn't any without vendor-specific and GNU gas specific ASM extension clutter <aggi>with arm-tcc, which couldn't digest any of the libc i tried (musl, uclibc, dietlibc), this raised awareness, how critical and difficult this problem is <aggi>and i am not willing to lock into GNU binutils and gas <aggi>the tcc and musl-libc patches for i386 asm suffice for bootstrapping, however it's insufficient for the project idea i followed <Hagfish>what candidates are there for a natural kernel that is written in simple C that tcc could compile? <aggi>not sure what you mean with "natural" kernel <Hagfish>i mean something that fits with the other goals of bootstrapping <Hagfish>like being auditable, familiar, and capable of building the next steps (including a modern linux kernel, i guess) <Hagfish>nothing too esoteric, or that introduces lots of other dependencies <aggi>btw. i consider the libc situation at least as concerning as the kernel question <aggi>however, i was working at higher levels in userspace than bootstrappable down below does with their tiny loaders and stages <aggi>and as far as any libc was concerned, such as dietlibc, such required extensive re-writes/debugging of their ASM parts to pass without binutils-as <Hagfish>aggi: yeah, the limitations of libc implementations does seem like it has lots of bad consequences <Hagfish>not just for bootstrapping, but for portability in general? and code quality? and security? <aggi>dietlibc# find . | grep '\.S$' | cat -n -> 695 files, and tcc assembler freaks out all over the place <aggi>Hagfish: i consider it an anti-competitive vendor-lock against GNU binutils and gas assembly extensions <aggi>and i greatly underestimated the severity, couldn't imagine a libc such as dietlibc wouldn't pass without binutils-as <aggi>problem isn't GNU binutils, problem is there isn't almost any piece of free software remaining without it <Hagfish>i think developers often overlook the sort of ecosystem-level dynamics that their creations produce <Hagfish>the obvious example is games or social media being addictive, although that's quite well understood now <Hagfish>and i'm not just talking about the effects on users, but on other developers <Hagfish>if a piece of software becomes useful, it affects other pieces of software that haven't even been written yet <Hagfish>it changes the space of possible futures <roptat>pabs3, I had to give up, too hard for me <acrow>roptat: After all the work put into bootstrapping Scala without success; it might be in JetBrain's best interest to assist. Otherwise people might have difficulty considering it free software. I understand difficulties with obscure, older peices of work but scala is actively developed and marketed as open-source. It's kinda disappointing. <acrow>unmatched-paren: Thank you for the correction. I want to get that right, who is promoting scala? <acrow>I apparently owe JetBrains an apology. <roptat>kotlin also is hard to bootstrap though <acrow>I'm simply going to say I don't use either and the principles are the same. <aggi>could anyone recommend a tiny libc, which can be compiled/linked/assembled with tcc-toolchain (AS=arm-tcc for example)?