M1 Mac で MacPorts のアップデートをしていたら、
---> Attempting to fetch libgcc-devel-11-20210418_0.darwin_20.arm64.tbz2 from https://packages.macports.org/libgcc-develとか ---> Attempting to fetch gcc-devel-11-20210418_0.darwin_20.arm64.tbz2 from https://packages.macports.org/gcc-develとか。arm64? |
/opt/local/bin/gcc-mp-devel, /opt/local/bin/gfortran-mp-devel という、 4/21 22:31 という日付の実行形式がある!
“The GNU compiler collection, prerelease BETA snapshot.” とのことだ。
% gcc-mp-devel nantoka.c % file a.out a.out: Mach-O 64-bit executable arm64 |
おー、ついに。RELEASE ではないけれど。
自分でインストールした覚えはないので、 何かの依存関係でインストールされたのかな。
GCC, the GNU Compiler Collection によると、GCC 11.1 が 2021-04-20 に frozen とある。
何かコンパイルしてみよう。 でやったようにして GLSC をコンパイルしてみる。
rm -rf sagyou mkdir sagyou cd sagyou curl -O http://www602.math.ryukoku.ac.jp/~nakano/software/math/glsc-3.5.a.tar.Z curl -O http://nalab.mind.meiji.ac.jp/~mk/daishin/glsc-3.5+a.patch curl -O http://nalab.mind.meiji.ac.jp/~mk/program/graphics/glsc-3.5+mk.patch20201229 tar xzf glsc-3.5.a.tar.Z cd glsc-3.5.a patch -p1 < ../glsc-3.5+a.patch patch -p1 < ../glsc-3.5+mk.patch20201229ここで Makefile を開いて、 CC を gcc-mp-devel に、 FC を gfortran-mp-devel に変える。 make>&make.log sudo mkdir -p /usr/local/bin /usr/local/include /usr/local/lib sudo make install |
GLSC についているテスト・プログラムのうち、 ctests, ctestd は動く。しかし ftests, ftestd は動かない (Segmentation fault とかおこる)。
Fortran で問題が起こるのは困るね (まあ、今はそれ使っている人いないけど)。 GLSC についてはしばらく様子見だ。
とりあえず gcc と打ったら、この gcc が動くように設定する。
% port select --list gcc Available versions for gcc: mp-gcc-devel none (active) % sudo port select --set gcc mp-gcc-devel |
常微分方程式を解くプログラムを1ダースくらい一気に make して、 動作チェックしたところ、問題なく動いた。
(2021/5/19) Intel Mac で MacPorts のアップデートをしたら、gcc11 が入って来た (なぜかは分からない)。 M1 Mac の方は入っていない。
% sudo port install gcc11 % port select --list gcc Available versions for gcc: mp-gcc-devel (active) mp-gcc11 none % sudo port select --set gcc mp-gcc11 % gcc --version gcc (MacPorts gcc11 11.1.0_2) 11.1.0 Copyright (C) 2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
% gcc hello.c ld: library not found for -lgcc_s.1.1 collect2: error: ld returned 1 exit status % |
(2021/5/22) 待っていても治らないし、同じ目に会っている人がネットで見当たらない。 自分で何とかすべきものらしい。
port installed |grep gccとして何がインストールされているか調べる。 sudo port uninstall gcc-devel sudo port uninstall libgcc-devel |
Note: It is not recommended to uninstall/deactivate a port that has dependents as it breaks the dependents. The following ports will break: fftw-3 @3.3.9_1 gcc11 @11.1.0_2 Continue? [y/N]: |
sudo port install gcc11 sudo port install fftw-3 |