Hello TCC devs,

I am studying TCC in order to include libtcc in MKCL
<https://common-lisp.net/project/mkcl/>
the Common Lisp environment that I currently develop.

Doing so I noticed that, on Linux, TCC does not seem to be able to generate
PIC object code (flag -fPIC) that is needed in order to build a shared
library.
That ability would be very useful inside MKCL.

Is there some fundamental design issue that prevents implementation
of PIC code generation in TCC? If not, would you think adding it could
be a fairly easy task or rather a major project? (BTW, I would volunteer
to do it but I would hope to get a few pointers from you to get started).

I also noticed the ONE_SOURCE symbol in the source code and Makefile.
This is a very interesting feature in the context of MKCL but I can see
that the set of external symbols of libtcc.a built with ONE_SOURCE is
not exclusively made of "tcc_" prefixed symbols. For example, there
are "gen_le64", "is_dir" or "orex" that are not part of the public API
documented by libtcc.h. Are these intentionally external or simply
accidents?

In the attached file you can see the libtcc.o externals when using
the code from your git mob head. Doing the same with tcc-0.9.26
gives somewhat similar results.

BTW, should I use mob or the older released code?

Thank you so very much for such an interesting project.

Cheers,

Jean-Claude Beaudoin

Attachment: ONE_SOURCE_externals
Description: Binary data

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

Reply via email to