問題タブ [musl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 実際にmusl libcを検出する方法は?
musl チームは、musl libc を検出する方法は必要ないと主張しています。なぜなら、musl libc は標準機能のみを実装しており、検出が必要な癖がないからです。
今日まで、その主張は十分に真実だったかもしれませんが、もはや真実ではありません。機能はあるが壊れているため、通常の機能検出は機能していません。コンパイル時にルートを要求したくないため、クロスコンパイルを許可しないため、プローブしたくありません。バグは最小化されたサンプル コードで報告されており、メンテナーはそれを修正することをまったく望んでおらず、私のパッチも受け取りません。
musl には壊れた機能があるため、他のすべての libc にペナルティを課すつもりはありません。
論理的に言えばやりたい
#if APPLE
Mac OSXには信頼できないvfork()
.
vfork()
悪いと言われても仕方がない。状況は 2008 年以降変化しておりvfork()
、関係する複雑さに関係なく、可能な限りより良い選択です。ソース: https://gist.github.com/nicowilliams/a8a07b0fc75df05f684c23c18d7db234
gcc - QEMU を使用して Newlib アプリケーションを実行するには?
いくつかの三角関数 (sin、tan、cos など) を使用するアプリケーションを作成しました。私の目的は、GNU C ライブラリ、MUSL、および Newlib でのこれらの関数のさまざまな実装を調べることです。
これを行うには、glibc
Buildrootmusl
を使用して Linux GCC ツールチェーンを構築し、適切なコンパイラを使用してアプリをコンパイルし、QEMU (ユーザー モード) を使用して実行します。これは簡単です。
次に、アプリケーションの結果を Newlib バージョンと比較したいと思います。
私の特定のケースでは、RISC-VRV64GC
アーキテクチャとlp64d
ABI 用にコンパイルしています。私の理解では、Newlib ライブラリを使用するということは、riscvv64-unknown-elf-gcc
コンパイラでコンパイルすることを意味します。proxy-kernel
従来、Spike ISS シミュレーターを使用して、軽量 OSを使用してアプリケーションを実行できました。QEMUでそれを使用する方法はありますか? それとも、完全なベアメタル アプリケーションを構築する必要がありますか?