[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
--
signature.asc
Description: Digital signature