<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/a-brave-new-world-building-glibc-with-llvm-v2h7dwxc4" -->

---
title: A brave new world: building glibc with LLVM | daily.dev
description: Glibc, long considered a GCC-only bastion, is now making serious progress toward supporting LLVM as a first-class build toolchain. The post details the...
canonical: https://daily.dev/posts/a-brave-new-world-building-glibc-with-llvm-v2h7dwxc4
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: A brave new world: building glibc with LLVM | daily.dev
og:description: Glibc, long considered a GCC-only bastion, is now making serious progress toward supporting LLVM as a first-class build toolchain. The post details the...
og:url: https://daily.dev/posts/a-brave-new-world-building-glibc-with-llvm-v2h7dwxc4
og:image: https://api.daily.dev/og/posts/v2H7dwXc4.png
og:image:alt: A brave new world: building glibc with LLVM
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# A brave new world: building glibc with LLVM

**[Collabora Blog](https://daily.dev/sources/collabora)** · 8 min read · 0 upvotes · 0 comments

## Summary

Glibc, long considered a GCC-only bastion, is now making serious progress toward supporting LLVM as a first-class build toolchain. The post details the technical challenges involved: replacing libgcc with LLVM's compiler-rt and libunwind, handling circular dependency loops between components, and performing multi-stage bootstrapping. The effort focuses on four architectures (32-bit ARM, AArch64, x86, x86_64), uses Gentoo Linux and ChromiumOS as the development and testing platforms, and required 163 downstream patches on top of glibc 2.35. ChromiumOS test suites now pass, though LLVM builds are not yet enabled by default. Upstream patches are being contributed toward glibc v2.37 and beyond, with a call for community involvement in testing and distro bootstrapping.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.collabora.com/news-and-blog/blog/2023/01/17/a-brave-new-world-building-glibc-with-llvm>

## Questions this post answers

### What are the steps to bootstrap glibc with an LLVM toolchain for an aarch64 cross-compiler on x86_64?

Bootstrapping glibc with LLVM for an aarch64 cross-compiler on x86_64 requires seven stages: install headers for libxcrypt, glibc, and the Linux kernel; build compiler-rt without sanitizers for required builtins; build glibc with -unwindlib=none; build llvm-libunwind; build full glibc against libunwind; build libcxx; then build full compiler-rt against glibc and libcxx. This multi-stage approach breaks circular dependency loops between the components.

_Toolchain engineers working through glibc and LLVM bootstrapping sequences share findings on daily.dev._

### Why can't glibc be built with LLVM instead of GCC and what are the main blockers?

Glibc has historically required GCC because of deep dependencies on GNU-specific toolchain components, particularly libgcc (required by the Linux Standard Base), GNU binutils, and GCC-specific language extensions. LLVM can now substitute libgcc by linking compiler-rt and libunwind, and LLD can replace the GNU linker. Remaining blockers include circular dependency loops, ARM thumb mode breakage, and the need for 163 downstream patches on glibc 2.35 before test suites pass.

_Developers tracking glibc and LLVM compatibility milestones find the latest upstream patch activity on daily.dev._

### What architectures does the glibc LLVM build effort currently target?

The glibc LLVM build effort targets four architectures: 32-bit ARM, AArch64, x86, and x86_64. ARM thumb instruction set builds are currently broken, but -marm builds work. Supporting all architectures officially supported by glibc was deemed infeasible given the development effort required, so the community is invited to extend support beyond these four.

_Systems developers choosing toolchain targets for embedded or cross-compiled Linux builds track decisions like these on daily.dev._

## Similar posts on daily.dev

- [59 Patches Allow Finally Building Glibc With LLVM's Clang Compiler](https://daily.dev/posts/59-patches-allow-finally-building-glibc-with-llvm-s-clang-compiler-ql3njof8j) · Phoronix · 0 upvotes · 0 comments
- [Bootlin toolchains 2026.08 released – Bootlin](https://daily.dev/posts/bootlin-toolchains-2026-08-released-bootlin-xqeqmnze8) · Bootlin · 1 upvotes · 0 comments
- [On C extensions, portability, and alternative compilers](https://daily.dev/posts/on-c-extensions-portability-and-alternative-compilers-xh1x5m5qq) · Hacker News · 0 upvotes · 0 comments
- [Introducing Casuarina Linux: A glibc-Based Chimera Linux Derivative](https://daily.dev/posts/introducing-casuarina-linux-a-glibc-based-chimera-linux-derivative-cua8bjpsa) · Lobsters · 0 upvotes · 0 comments
- [GCC & The GNU Toolchain's Exciting 2025 With New Languages, More Optimizations](https://daily.dev/posts/gcc-the-gnu-toolchain-s-exciting-2025-with-new-languages-more-optimizations-nqa2he7af) · Phoronix · 0 upvotes · 0 comments

---

Tags: [#general-programming](https://daily.dev/tags/general-programming)

[View this post on daily.dev](https://daily.dev/posts/a-brave-new-world-building-glibc-with-llvm-v2h7dwxc4)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"A brave new world: building glibc with LLVM","url":"https://daily.dev/posts/a-brave-new-world-building-glibc-with-llvm-v2h7dwxc4","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/a-brave-new-world-building-glibc-with-llvm-v2h7dwxc4"},"datePublished":"2026-08-11T08:54:12.211Z","dateModified":"2026-08-11T09:27:33.220Z","description":"Glibc, long considered a GCC-only bastion, is now making serious progress toward supporting LLVM as a first-class build toolchain. The post details the...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/fee8cc02b36c621b4878e3e1532ee702?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/fee8cc02b36c621b4878e3e1532ee702?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Collabora Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Collabora Blog","logo":"https://media.daily.dev/image/upload/s--ZGZ0FjqS--/f_auto,q_auto/v1786438306/logos/collabora?_a=BAMAMicg0","url":"https://daily.dev/sources/collabora"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/a-brave-new-world-building-glibc-with-llvm-v2h7dwxc4","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"general-programming","timeRequired":"PT8M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Collabora Blog","item":"https://daily.dev/sources/collabora"},{"@type":"ListItem","position":3,"name":"A brave new world: building glibc with LLVM"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/a-brave-new-world-building-glibc-with-llvm-v2h7dwxc4#faq","mainEntity":[{"@type":"Question","name":"What are the steps to bootstrap glibc with an LLVM toolchain for an aarch64 cross-compiler on x86_64?","acceptedAnswer":{"@type":"Answer","text":"Bootstrapping glibc with LLVM for an aarch64 cross-compiler on x86_64 requires seven stages: install headers for libxcrypt, glibc, and the Linux kernel; build compiler-rt without sanitizers for required builtins; build glibc with -unwindlib=none; build llvm-libunwind; build full glibc against libunwind; build libcxx; then build full compiler-rt against glibc and libcxx. This multi-stage approach breaks circular dependency loops between the components. Toolchain engineers working through glibc and LLVM bootstrapping sequences share findings on daily.dev."}},{"@type":"Question","name":"Why can't glibc be built with LLVM instead of GCC and what are the main blockers?","acceptedAnswer":{"@type":"Answer","text":"Glibc has historically required GCC because of deep dependencies on GNU-specific toolchain components, particularly libgcc (required by the Linux Standard Base), GNU binutils, and GCC-specific language extensions. LLVM can now substitute libgcc by linking compiler-rt and libunwind, and LLD can replace the GNU linker. Remaining blockers include circular dependency loops, ARM thumb mode breakage, and the need for 163 downstream patches on glibc 2.35 before test suites pass. Developers tracking glibc and LLVM compatibility milestones find the latest upstream patch activity on daily.dev."}},{"@type":"Question","name":"What architectures does the glibc LLVM build effort currently target?","acceptedAnswer":{"@type":"Answer","text":"The glibc LLVM build effort targets four architectures: 32-bit ARM, AArch64, x86, and x86_64. ARM thumb instruction set builds are currently broken, but -marm builds work. Supporting all architectures officially supported by glibc was deemed infeasible given the development effort required, so the community is invited to extend support beyond these four. Systems developers choosing toolchain targets for embedded or cross-compiled Linux builds track decisions like these on daily.dev."}}]}
```

