Mercurial > hg > Document > Growi
diff CbC/GCC/GCC9onMac.md @ 0:e12992dca4a0
init from Growi
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 16 Dec 2020 14:05:01 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CbC/GCC/GCC9onMac.md Wed Dec 16 14:05:01 2020 +0900 @@ -0,0 +1,38 @@ +# macOSでのビルド + +- [このサイト](https://solarianprogrammer.com/2019/10/12/compiling-gcc-macos/)の通りにやればだいたいできる +- catalina(high sierraくらい?)からgmpなどのライブラリを個別でビルドしなければGCCのビルドができなかった + - gcc9からGCCのリポジトリに自動でこのあたりのライブラリをインストールする`contrib/download_prerequisites`が追加されていて便利になっていた + +```sh +$contrib/download_prerequisites +(GCCのトップディレクトリで行わないといけない) +``` + +- `/usr/include/`が抜けた問題があるので、`sys_root`を自前で用意する必要がある + - 一部のincludeファイルにmacOSのパッチを与える必要があるらしい(必要ないかも) + +```sh +$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`は絶対パスで与えないといけない + +```sh +../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`の方が良いかもしれない) \ No newline at end of file