Re:Using TinyCC to compile Linux (2.4) kernels
by lionkor on Monday June 13, 2022 @09:24AM
(#31725210)
Why is it so fast? 8 seconds seems awfully low for the linux kernel.
[ Parent
| on HN ]
Re:Using TinyCC to compile Linux (2.4) kernels
by hawski on Monday June 13, 2022 @09:50AM
(#31725550)
It is a single pass compiler, that doesn't do many optimizations. Fun factoid: TCC is sort of predecessor to QEMU.
Re:Using TinyCC to compile Linux (2.4) kernels
by phyrex on Monday June 13, 2022 @10:21AM
(#31726012)
They’re both from the same guy
Re:Using TinyCC to compile Linux (2.4) kernels
by masklinn on Monday June 13, 2022 @10:49AM
(#31726374)
Yes, but beyond that qemu was pretty much fabrice nerdsniping himself: he initially wanted to make the tcc backend more flexible (to support other targets than x86), then started playing with making the frontend more flexible, at one point he started to make the frontend take in compiled machine code, and that's the starting point of qemu: a dynamic recompiler / machine code translator, rather than a traditional emulator.
Re:Using TinyCC to compile Linux (2.4) kernels
by matthews2 on Monday June 13, 2022 @09:33AM
(#31725326)
The version being built (2.4) is over twenty years old and had much less code.
If you take a modern kernel (like 5.x) and build configure it with 'make tinyconfig', it should build similarly quickly.
Re:Using TinyCC to compile Linux (2.4) kernels
by MuffinFlavored on Monday June 13, 2022 @09:35AM
(#31725343)
Can TinyCC still compile the 5.x kernel without issues?
Re:Using TinyCC to compile Linux (2.4) kernels
by rurban on Monday June 13, 2022 @11:27AM
(#31726928)
No, this is being worked in. The goal should be a -Oboring optimizer without any broken optimizations and aggressive UB assumptions. Something neither gcc nor clang can provide.
Re:Using TinyCC to compile Linux (2.4) kernels
by sylware on Tuesday June 14, 2022 @06:29AM
(#31736916)
you cannot, as linux code is using a lot of gcc/clang extensions stuff, namely this is some sort of C dialect, not really C.
Almost at every new release of linux, "somebody" did manage to commit into its code the usage of new gcc/clang extensions.
The right(TM) way would be to port linux to simple and lean C (like some simple C89 with benign bits of c99/c11): the price is some loss of performance which could be partially mitigated with an assembly port of critical fast-paths (I guess that would show on really loaded servers only).
In the end, if RISC-V is a success, namely a world with a pertinent ISA without toxic IP tied to it (like x86/arm), then a full assembly port of linux would be more than interesting in order to rid it from compiler tantrums.
Re:Using TinyCC to compile Linux (2.4) kernels
by MuffinFlavored on Thursday June 16, 2022 @01:32PM
(#31768732)
> you cannot, as linux code is using a lot of gcc/clang extensions stuff
Linux 5.x kernel that is, but not Linux 4.x kernel because that was tcc-compilable?
Re:Using TinyCC to compile Linux (2.4) kernels
by wrycoder on Monday June 13, 2022 @02:19PM
(#31729302)
See bootstrapping.org
Re:Using TinyCC to compile Linux (2.4) kernels
by chexum on Monday June 13, 2022 @02:42PM
(#31729719)
http://bootstrappable.org perhaps?
Re:Using TinyCC to compile Linux (2.4) kernels
by wrycoder on Monday June 13, 2022 @08:38PM
(#31733466)
Re:Using TinyCC to compile Linux (2.4) kernels
by pacetherace on Monday June 13, 2022 @11:43AM
(#31727142)
Thanks for making me feel old