ToDo:
昔の日記に書いていた LLVM-GCCで SADがコンパイル出来ない件だが、どうやら llvm本体のバグか llvm-gfortranが複素数に対する累乗演算子を正しいバイトコードへ 変換出来ていないのが原因のようです。
状況としては、a**bにて aまたはbがCOMPLEX型の ときに発生する模様。exp()とかlog()はCOMPLEX型に対しても 正常に動くようなので、a**bをexp(b * log(a))へ書き直せば コンパイルは可能になりましたが、inimem_内でSegmentation Fault するようです。ilistrootを用いてSAD内のヒープ管理領域を初期化する 際に発生しているので、ilistを格納しているcommon blockの状態が おかしなことになっている模様。
リンカーが下記のような警告を出すので、アライメントも怪しい...
/usr/bin/ld: Warning: alignment 16 of symbol `ffs_' in libsad.a(tffs.o) is smaller than 32 in libsad.a(tffs.o) /usr/bin/ld: Warning: alignment 16 of symbol `itparm_' in libsad.a(tpara.o) is smaller than 32 in libsad.a(tpara.o) /usr/bin/ld: Warning: alignment 16 of symbol `mtfcommon_' in libsad.a(tfetok.o) is smaller than 32 in libsad.a(tfetok.o) /usr/bin/ld: Warning: alignment 16 of symbol `rbufcom_' in libsad.a(tfreadbuf.o) is smaller than 32 in libsad.a(tfreadbuf.o) /usr/bin/ld: Warning: alignment 16 of symbol `tffvp_' in libsad.a(track.o) is smaller than 32 in libsad.a(track.o) /usr/bin/ld: Warning: alignment 16 of symbol `tok_' in libsad.a(tfetok.o) is smaller than 32 in libsad.a(tfetok.o)
カテゴリー: Admin | Emacs | EPICS | Fortran | FreeBSD | GCC | hgsubversion | IPv6 | KEKB | LHC | Lisp | LLVM | MADX | Ryzen | SAD | samba | tDiary | unix | WWW | YaSAI | お仕事 | イベント | 出張 | 宴会 | 数学 | 艦これ | 買いもの | 追記 | 雑記
_ Y氏 [LLVMはiPhoneで使われているようですね。早く日本でも発売されないかなぁ...]