On Fri, Nov 15, 2024 at 06:27:20PM +0000, Michael Ackermann via Tinycc-devel 
wrote:
> FYI:
> That is, for regression testing tcc which would have prevented me wasting 
> weeks
> of bisecting, it is now possible:
> - to regularly compile/link/boot linux-2.4 x86
> - and a complete set of ~500 packages that i can support with tcc already
>   (removed all direct and transitive c++ dependencies, among other patches)

Excellent work! A distro entirely built by TinyCC is really a cool
thing.

> Furthermore i cannot support dynamic-linking with tcc yet, because
> musl-libc libc.so dynamic loader crashes when compiled/linked with tcc

I had got dynamic linker of musl working on x86_64. The crashes I
encountered are mostly caused by calls to libc routines in an early
stage.

For example, TinyCC may emit calls to memcpy() for assignments between
structures, which is handled in tccgen.c: vstore(). This works most of
the time, but in the early stage of a dynamic linker, all these symbols
including memcpy() may have not been relocated, so such a call will jump
to a dummy address and segfaults.

GCC always emits a stos sequence in this case, which doesn't cause a
problem. I have done some similar "optimization" for TinyCC x86_64 to
eliminate the calls, see gen_struct_copy(): x86_64-gen.c. (I'm sorry
my original implementation was buggy and ugly....)

Another problem is the dynamic loader of musl cannot not handle a
zero-sized PT_LOAD segment correctly. I've sent an upstream patch[1] for
it, but there hasn't been any response.

Hope these helps.

> (bootstrappable.org got some patches for musl-libc for support with tcc
> statically linked);
> Hence i have to re-bundle what's currently maintained for tcc without
> ebuilds/portage/crossdev (python needs dynamic linking and fails with tcc),
> statically linked.
> Once the distribution is ready and available as a stable(!) baseline i'll
> summarize ISSUES, so these can be re-produced and verified against it easily
> without duplicate efforts.
> 
> Grischka, if that's ok and doesn't cause too much confusion,
> i would appreciate if efforts are coordinated to avoid future regressions that
> required bi-secting accross more than 100 commits;
> for example release tag for 0.9.27 dates back 7 years already, and 0.9.28 
> seems
> not sufficiently stabilized yet.
> Anyway, too i am planning to converge and re-integrate the tcc-toolchain
> system profile that i got with bootstrappable.org
> That is, currently i cannot publish yet, since it is too much cleanup work
> remaining to finalize a complete i486-tcc-linux-musl.iso distribution to work
> and test with, and i rather keep tcc synced to latest HEAD for this ;)

Looking forward to the release! I'm really interested in such a
distribution.

Cheers,
Yao Zi

[1]: https://www.openwall.com/lists/musl/2024/09/15/1

_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to