tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tinycc-devel] regression testing with a complete i486-tcc-linux-mus


From: Michael Ackermann
Subject: Re: [Tinycc-devel] regression testing with a complete i486-tcc-linux-musl.iso distribution
Date: Sat, 16 Nov 2024 17:54:17 +0000

Hi tccm,

your mail seems not showing up on tinycc-devel mailing list, and was directly 
sent to my inbox.
Anyway, a few notes for you.

- First step was sanitizing a set of ebuilds to remove all c++ dependencies
- Then a few patches to various configure.ac/makefile.am, to support static 
linking
- tcc can't handle various special options that gcc knew, hence a few patches 
to tcc helped to let it ignore
  unknown options instead of errors returned
Those userspace parts pass intial runtime testing inside a chroot, which 
already confirms tcc did emit
clean static binaries for x86.

Next, userspace programs and kernel are separate concerns to begin with, 
furthermore compile-time (API) and
run-time (ABI) issues had to be distinguished; and that's how i approach it

- compile/link/boot linux-2.4 with tcc, that's done since recently some 
regressions in tcc were coped with
- the userspace parts of musl-libc compile-time still picks up #includes from a 
linux-5.9, as an intermediate quirk.
  nonetheless those ~500 builds already compiled/linked with tcc, compile-time 
and as you mentioned it's mainly
  musl-libc to re-iterate over against linux-2.4 headers
- next i'll throw some ext2fs.image at linux-2.4 and see to which and how much 
stuff in /bin:/usr/bin:/sbin etc that
  musl-libc picked up linux-5.9 API headers for passes initial testing run-time 
against a linux-2.x ABI,
  to see how much remained ABI compatible between linux-2.x and linux-5.x (i'll 
know in a few days)
- next i'll refine linux-2.4 and build-system to utilize it's headers

I've already noticed, threading might become problematic (i've seen some error 
in git binary for example), as one
precaution i've set USE=-threads wherever this applied, and patched git.
Furthermore linux-2.4 isn't known for year2038 64bit time_t support, and i got 
two options ready, to test with
musl-1.1.x and musl-1.2.x; the former isn't aware of 64bit time_t, the latter 
handles it.

So far, what i got suffices for extensive regression testing of tcc itself only,
which is what got into my way since i intend to keep tcc synced to latest HEAD.
And as said i486-tcc-linux-musl.iso isn't ready for publication. However, i am 
optimistic, for example, another project
had shown, fiwix.org, a somewhat complete POSIX userspace can be spawn atop a 
linux-2.x ABI.
Although fiwix.org chose newlib libc for this (not supported by tcc yet, 
musl-libc is);
i'll have to see how far i'll get with musl-libc, and i am planning for keeping 
musl-libc however since it's easier
to cope with the build-system of it. And i recall having seen musl-1.1 mention 
linux-2.4 inside some README;
hence in worst case i may have to roll-back musl-1.2 back to musl-1.1;
I don't know yet, since just as said, what i got is complete for regression 
testing tcc, but it's not ready for
publication of a complete distribution.

Otherwise, i do intend to keep the set of supported software minimal too, but 
complete including development utilities
and a few other things a *nix system needs. And it's good to know, gdb, mutt 
mailer, ffmpeg/mplayer, all of this
can be compiled/statically-linked with tcc. gcc isn't needed anywhere, and 
binutils are used for some 16bit real-mode
bootcode only (binutils itself can be bootstrapped with tcc), so it's a 100% 
pure tcc-toolchain system with x86_32.

Publication will be announced on tcc mailing list.

Regards
aggi

On 2024-11-16 12:13, gz8cx4@<xxxxx> wrote:
> Correcting myself.
> 
> On Sat, Nov 16, 2024 at 11:29:45AM +0100, gz8cx4@<xxxxx> wrote:
> > I feel especially interested because I made a similar effort
> > in a smaller scale
> 
> The above may look like I pretend having "been there done that".
> Not my point at all.
> 
> The purpose of the mentioned project was totally different from yours
> and the amount of software minimal as a goal, kind of opposite to your aim.
> 
> In the end I did not use musl, but I would appreciate to learn what was
> your key to be able to unite 2.4.x and musl.
> 
> Regards,
> /tccm

-- 

Attachment: signature.asc
Description: Digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]