[解決済み] clang: サポートするターゲットアーキテクチャをリストアップするには?
質問
現在、私はARM全般、特にiphone/androidのターゲットに興味を持っています。しかし、私は、それが今後数年間で重要な役割を果たすと思われるので、clangについてもっと知りたいと思います。
私は試してみました。
clang -cc1 --help|grep -i list
clang -cc1 --help|grep arch|grep -v search
clang -cc1 --help|grep target
-triple <value> Specify target triple (e.g. i686-apple-darwin9)
clangに-tripletパラメータがあることは知っていますが、どのようにしてそのパラメータに指定できるすべての値をリストアップすることができますか? GCCの世界ではPLATFORM_makeやPLATFORM_ld (i*86-pc-cygwin i*86-*-linux-gnu etc.)のようにすべてに対して別々のバイナリを持っているはずです。 http://git.savannah.gnu.org/cgit/libtool.git/tree/doc/PLATFORMS )
clangの世界では、(いくつかのフォーラムで読んだように)バイナリは1つだけです。しかし、サポートされているターゲットのリストはどのように取得するのでしょうか?そして、もし私のターゲットが私のディストロ(linux/windows/macos/whatever)でサポートされていない場合、どのようにしてより多くのプラットフォームをサポートするものを手に入れることができるでしょうか?
もし私がこのように最新のclangをSVNした場合。
svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
は、ほとんどのプラットフォームを手に入れることができるのでしょうか? Clangはすぐにクロスコンパイルを意識して作られたわけではないようですが、llvmベースなので理論的には非常にクロスフレンドリーであるはずです? ありがとうございます
どのように解決するのですか?
Clang 11 (trunk) からは、サポートされているターゲットアーキテクチャのリストを、新しく追加された
-print-targets
のフラグを立てます。
$ clang-11 -print-targets
Registered Targets:
aarch64 - AArch64 (little endian)
aarch64_32 - AArch64 (little endian ILP32)
aarch64_be - AArch64 (big endian)
amdgcn - AMD GCN GPUs
arm - ARM
arm64 - ARM64 (little endian)
arm64_32 - ARM64 (little endian ILP32)
armeb - ARM (big endian)
avr - Atmel AVR Microcontroller
bpf - BPF (host endian)
bpfeb - BPF (big endian)
bpfel - BPF (little endian)
hexagon - Hexagon
lanai - Lanai
mips - MIPS (32-bit big endian)
mips64 - MIPS (64-bit big endian)
mips64el - MIPS (64-bit little endian)
mipsel - MIPS (32-bit little endian)
msp430 - MSP430 [experimental]
nvptx - NVIDIA PTX 32-bit
nvptx64 - NVIDIA PTX 64-bit
ppc32 - PowerPC 32
ppc64 - PowerPC 64
ppc64le - PowerPC 64 LE
r600 - AMD GPUs HD2XXX-HD6XXX
riscv32 - 32-bit RISC-V
riscv64 - 64-bit RISC-V
sparc - Sparc
sparcel - Sparc LE
sparcv9 - Sparc V9
systemz - SystemZ
thumb - Thumb
thumbeb - Thumb (big endian)
wasm32 - WebAssembly 32-bit
wasm64 - WebAssembly 64-bit
x86 - 32-bit X86: Pentium-Pro and above
x86-64 - 64-bit X86: EM64T and AMD64
xcore - XCore
参考文献 LLVM PR , LLVMコミット , Clang 11のドキュメント .
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン