FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

M1 macOSでLLVMをビルドする際に必要なCMakeのオプションまとめ

M1 macOS上でLLVMをビルドして、C言語プログラム注で#include <stdio.h>を使用しようとするとエラーになったりするのだが、これを回避する方法を色々と探していた。

stackoverflow.com

結論から言うと以下のコマンドでビルドできる。

cmake -G Ninja \
  -DCMAKE_OSX_ARCHITECTURES='arm64' \
  -DDEFAULT_SYSROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/ \
  -DCMAKE_BUILD_TYPE="Debug" \
  -DLLVM_TARGETS_TO_BUILD="X86;RISCV;AArch64" \
  -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi" 
  ../llvm

肝となるのは、-DDEFAULT_SYSROOT=/Library/Developer/CommandLineTools/SDKs/MacOSX11.3.sdk/macOSSDKの場所を指定すること。 これでmacOSでのLLVMデバッグビルド環境がだいぶ進んだ。

  • test.c
#include <stdio.h>

int main ()
{
  int total = 0;
  for (int i = 1; i <= 10; i++) {
    total += i;
  }

  printf ("Total = %d\n", total);
}
build/bin/clang x86_test.c
./a.out
Total = 55