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