yumetodoの旅とプログラミングとかの記録

旅や登山の記録やプログラミング関連の話とかフリーソフト紹介とか

【概ね解決】msys2がごたついている-binutilsにclang

どうもmsys2がごたついている。

C++のハローワールドすらSegmentation fault

#include <iostream>
int main()
{
    std::cout << "arikitari_na_world!" << std::endl;
}

こんなありきたりなプログラムすらSegmentation faultになる。

github.com

github.com

どうもbinutilsが悪いってことだけはわかって、ロールバックすることにしたが、根本的な原因解明に至っていない。

Workaround

ロールバックが配信されているので

$ pacman -Syuu

とすればよい。

追記

binutils側のバグじゃないか?という話が出ている。
22762 – missing static variable constructor calls

さらに追記

binutils のissue tracker見る限りでは修正パッチが上がってて、msys2側でそれを当てる修正が入った。

github.com

というわけでそう遠くなくビルドされて配信されるだろう。

clangが実行できない

mingw64/bin/clang.exe: error while loading shared libraries: libz3.dll: cannot open shared object file: No such file or directory

とか言われる問題だ。

新たな依存: z3: "数値的"な大域的最適化手法

clangのバージョンが5.0.1に上がったのはとってもいいのだが、この時z3という新しい依存ができたらしい。なにそれ?

github.com

うん、PKGBUILDにリンクが有るな。飛んでみよう。

github.com

Z3 is a theorem prover from Microsoft Research

だめだ、さっぱりわからん。

qiita.com

"数値的"な大域的最適化手法

さっぱりわからん。

www.nag-j.co.jp

やっとなんとなくわかったが、clangとどう関係するんだ・・・?

PKGBUILDを見ているとCLANG_ANALYZER_BUILD_Z3なるcmakeオプションが有るようだが・・・

Clang 5.0.0 Release Notes — Clang 5 documentation#static-analyzer

をみるとその紹介があった。なるほど、Clangの静的解析ね、お前か、納得した。

原因

で、この追加された依存のz3clangPKGBUILDmakedependsに書かれてなかった。

github.com

で修正が入っている。

ところがこれが

Alexpux commented 2018年1月27日 4:49 JST

@peterbud fixed by 4ac300d

Will rebuild later

とか言ったっきりアップデートが来ていない。

しびれを切らして問い合わせる

Alexpux commented 2018年1月31日 23:52 JST

When I have time. Maybe next week, maybe month later.

時間があるとき、来週かもしれないし来月かもしれない

とか言っている。

つまりしばらく修正されない

workaround

ようは依存が足りてないだけだから

$ pacman -S mingw32/mingw-w64-i686-z3 mingw64/mingw-w64-x86_64-z3

とすればよい。

追記

5.0.1-3が配信されてきた。

$pacman -Sii mingw64/mingw-w64-x86_64-clang
リポジトリ             : mingw64
名前                   : mingw-w64-x86_64-clang
バージョン             : 5.0.1-3
説明                   : C language family frontend for LLVM (mingw-w64)
アーキテクチャ         : any
URL                    : https://clang.llvm.org/
ライセンス             : custom:University of Illinois/NCSA Open Source License
グループ               : なし
提供                   : なし
依存パッケージ         : mingw-w64-x86_64-llvm=5.0.1-3  mingw-w64-x86_64-gcc  mingw-w64-x86_64-z3
提案パッケージ         : なし
必要パッケージ         : mingw-w64-x86_64-c99-to-c89-git  mingw-w64-x86_64-clang-analyzer  mingw-w64-x86_64-creduce  mingw-w64-x86_64-doxygen  mingw-w64-x86_64-libblocksruntime  mingw-w64-x86_64-openshadinglanguage
任意パッケージ         : mingw-w64-x86_64-codelite-git  mingw-w64-x86_64-qt-creator
衝突パッケージ         : なし
置換パッケージ         : なし
ダウンロード容量       : 64.12 MiB
インストール容量       : 277.54 MiB
パッケージ作成者       : Alexey Pavlov <alexpux@gmail.com>
ビルド日時             : 2018年02月01日 15時37分28秒
MD5 Sum                : 7ca03d9a47da331873bbaee70c97afd1
SHA-256 Sum            : b996ff4358d5b040d49352b06c05973c14a91637b471056c82fac4f4d03a9352
署名                   : 5F92EFC1A47D45A1

治った。