[llvm-dev] How to compile glibc with clang/llvm?

Kristina Brooks via llvm-dev llvm-dev at lists.llvm.org
Sun Dec 23 02:51:30 PST 2018


I've managed to do it before, with a lot of patches to Glibc, as well as ld.so and getting basic programs to start with
it. However, a lot of tests did not pass and in general I abandoned it due to the fact that Glibc source code is not
very easy to work with.

I can upload it somewhere, not sure if there is any general interest in this kind of thing. I think current GRTE may
also be build-able with Clang (my fork was based on older GRTE which had unfinished patches to support Clang), though I
haven't had the time to look at that recently.

I should add a huge disclaimer: this won't be easy and requires understanding the macro hell in glibc, GRTE relies on
some hacky uses of `_Pragma` to supplement for some macros otherwise not possible with Clang. Even if you do get it to
build I think it may be a waste of time to try and just implement the missing symbols in your case (or figure out why
they're not being exported).


On 22/12/2018 09:29, xuruobin via llvm-dev wrote:
> To whom it may concern,
>  	Is there a way to build glibc with clang/llvm? I’m working on enabling llvm-cov for my compiler which is a totally new arch with a libc.a built from newlib. I successfully built compiler-rt but when I typed the command ` clang++ --target=xxx -fprofile-instr-generate -fcoverage-mapping foo.cc -o foo`, the linker failed because of undefined reference to `mmap'/`ftruncate'/`mkdir'. I found these functions are supported by glibc but I cannot bulid glibc with clang/llvm(configure gave me an error “These critical programs are missing or too old: compiler”). So I want to know how can I compile glibc with clang/llvm or are there some WIP patches to help me with this requirement?
> Thanks,
> Ruobin.
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3992 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20181223/6456e219/attachment.bin>

More information about the llvm-dev mailing list