On Tue, 27 May 2025, 07:04 Basile Starynkevitch, <basile@xxxxxxxxxxxxxxxxx> wrote: > On Sat, 2025-03-15 at 15:18 +0000, Johannes Krottmayer via Gcc-help wrote: > > Dear GCC community! > > > > I have started a custom libc implementation for the purpose of > > education. > > > > What are the minimum requirements for the library (functions, > > headers, ...) which one *must* be implemented so GCC can use this > > library as default? > > GCC is used to compile code without any libc. The Linux kernel (see > https://kernel.org/ ...) is a typical example. And (in France, with > comments in > French, but open source) so is https://github.com/Recovid/Controller > > Some companies are using GCC to compile proprietary critical software. > Airbus > does. https://en.wikipedia.org/wiki/Airbus EdF does. > https://en.wikipedia.org/wiki/EdF and CEA also https://www.cea.fr/ (I > worked > almost 40 years there). > > GCC is designed to be able to work as a cross-compiler (even a canadian > cross- > compiler). > > Look also into https://compcert.org/ (a certified C compiler, the source > is > available for reading, but any commercial usage requires a license sold by > https://www.absint.com/ ...) > > > > If your question is what part of the libc does GCC uses internally, you > could > patch it to link its cc1 statically. But GCC also depends on external > programs > (GNU binutils ie assembler and linker) which are using other parts of libc. > > Some light libc do exist, e.g. https://www.fefe.de/dietlibc/ > > Actually I don't understand your question. It's a perfectly reasonable question (but I don't know the answer). GCC assumes certain functions are always present, e.g. memcpy is needed for copying large structs on the stack. The question is which functions does it need. Your answer isn't really relevant to the question. I would think that the simplest > approach is to start with an empty libc and add functions inside it. > > Look also inside https://musl.libc.org/ > > Regards. > -- > Basile STARYNKEVITCH <basile@xxxxxxxxxxxxxxxxx> > 8 rue de la Faïencerie > http://starynkevitch.net/Basile/ > 92340 Bourg-la-Reine https://github.com/bstarynk > France > https://github.com/RefPerSys/RefPerSys >