macOSでのビルド

macOSでのビルド

  • このサイトの通りにやればだいたいできる
  • catalina(high sierraくらい?)からgmpなどのライブラリを個別でビルドしなければGCCのビルドができなかった
    • gcc9からGCCのリポジトリに自動でこのあたりのライブラリをインストールするcontrib/download_prerequisitesが追加されていて便利になっていた
1
2
$contrib/download_prerequisites 
(GCCのトップディレクトリで行わないといけない)
  • /usr/include/が抜けた問題があるので、sys_rootを自前で用意する必要がある
    • 一部のincludeファイルにmacOSのパッチを与える必要があるらしい(必要ないかも)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$cd sys_root
$ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/Library .
$ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System .
$mkdir usr && cd usr
$ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/bin .
$ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib .
$ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/libexec .
$ln -s /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/share .
$cp -r /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include include
$vim include/Availability.h
  • あとはConfigureを実行する
    • --with-sysrootを指定しておかないと、/usr/includeが無いエラーが発生する
    • --with-sysrootは絶対パスで与えないといけない
1
../CbC_gcc/configure --prefix=$PWD --disable-nls --disable-bootstrap --enable-checking=tree,rtl,assert,types CFLAGS="-g3 -O0" --enable-languages=c,lto --no-create --no-recursion  --disable-multilib --with-sysroot=/Users/anatofuz/workspace/cr/CbC/latest_gcc/sys_root
  • ここで何故かMafikefileでなくconfig.statusなシェルスクリプトが生成される
    • このシェルスクリプトを実行するとMakefileが生成される
    • あとは make -jすれば良い(-jだと一部がうまく動かないので、makeの方が良いかもしれない)
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy