[llvm-dev] Compiling GNU C Library (glibc) with llvm

Kristina Brooks via llvm-dev llvm-dev at lists.llvm.org
Sat Feb 9 23:34:57 PST 2019

There's a fork of glibc in the Sourceware repo that's known to work for at least somewhat being build-able with
Clang/LLVM. Not sure how stable it is outside of static linking, I think with LTO and heavy optimizations you may
stil get a lot of weird quirks. I think the name is "clangify" or something like that, it's up on Sourceware along
with all other glibc forks.

But again this is largely uncharted territory so be prepared to deal with a lot of weird ABI-level bugs, there is
no official support for that fork from any party. I've used Clang to build glibc with dynamic linking successfully
before but the test suite results aren't exactly promising and there's not a lot of effort going into glibc getting
to work with Clang due to its licensing conditions, with some developers putting in more effort into permissive
licensed libcs (ie. Musl and Bionic being two good examples). Contributing to those projects helps a lot more than
untangling the mess that glibc codebase has turned into.

I'll add the obvious disclaimer that this is a just personal opinion of mine etc.


On 10/02/2019 03:31, blubee blubeeme via llvm-dev wrote:
> The main reason is that GLIBC uses non-standards compliant extensions for programmers convenience and LLVM want's to
> stick to the standards as much as possible.
> LLVM also uses some non-standard extensions. For example asm goto; the last time I checked Clang did not support ASM
> GOTO and so later linux kernels cannot be compiled. 
> The general answer comes down to standards compliance; that's my understanding.
> Best,
> Owen
> On Sun, Feb 10, 2019 at 11:23 AM Md Salman Ahmed via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>>
> wrote:
>     Hi All,
>     I was trying to build GNU C Library (glibc implementation) using the clang compiler in a x86_64 Linux system.
>     However, whenever I try to set the clang compiler as the compiler in the configure script of glibc, I am getting the
>     following error.
>     checking if clang is sufficient to build libc... no
>     I did a quick research to see why does clang compiler is not sufficient to build the glibc implementation and found
>     that the glibc implementation may have some target specific features that GCC only can support. But I am not getting
>     what are the exact reasons behind this insufficiency.
>     Can anybody please point me what are the exact reason behind this insufficiency. Some examples would also help. Any
>     kind of help would be greatly appreciated. Thank you!
>     _______________________________________________
>     LLVM Developers mailing list
>     llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>     https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://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/20190210/cd2d2c50/attachment.bin>

More information about the llvm-dev mailing list