LLVM ツールキットを使用して Glibc を構築する機能を実装しました。

Collabora のエンジニアは、GCC の代わりに LLVM ツールキット (Clang、LLD、compiler-rt) を使用して GNU C ライブラリ (glibc) システム ライブラリを確実にアセンブリするプロジェクトの実装に関するレポートを公開しました。 最近まで、Glibc は、GCC でのみ構築をサポートするディストリビューションの重要なコンポーネントの XNUMX つでした。

LLVM を使用したアセンブリに Glibc を適応させる際の困難は、特定の構成要素 ($ 記号を含む式、ネストされた関数、asm ブロック内のラベル、long double および float128 型など) を処理するときの GCC と Clang の動作の両方の違いによって引き起こされます。また、compiler-rt ではランタイムを libgcc に置き換える必要があります。

LLVM を使用して Glibc を確実にアセンブリするために、Gentoo 環境用に約 150 個のパッチ、ChromiumOS ベースの環境用に 160 個のパッチが用意されています。 現在の形式では、ChromiumOS のビルドはすでにテスト スイートに合格していますが、デフォルトではまだ有効になっていません。 次のステップでは、準備した変更を Glibc と LLVM のメイン構造に転送し、テストを継続し、発生する典型的な問題を修正します。 パッチの一部はすでに Glibc 2.37 ブランチに受け入れられています。

出所: オープンネット.ru

コメントを追加します