何故かPerl5.34をコンパイルしている(2)

前回はclang-16では新し過ぎて構文チェックがきつくコンパイル時にエラーとなった。
今回は、clangのバージョンを徐々に落とし、Perl5.34.3をコンパイルできないか試してみる。

て言っても、やることは単純。
1.port install clang-15
2.port select clang mp-clang-15
3../Configureでlibの検索pathを変更する(ここのとこ)
Directories to use for library searches?
[/opt/local/lib /opt/local/libexec/llvm-16/lib/clang/16/lib /usr/local/lib /usr/lib] /opt/local/lib /opt/local/libexec/llvm-15/lib/clang/15.0.7/lib/ /usr/local/lib /usr/lib
llvm-16をllvm-15の元に変更。
clang-15が使うのはllvm-15だからね。

基本はこれだけ。
あとは、これでコンパイルできる。
sudo ./Configure -de -Dprefix=/opt/local -Dcc=/opt/local/bin/clang -Dmake=/opt/local/bin/gmake
sudo gmake
gmake test
が通れば完成、だと思う。
ダメならば、更にclangのバージョンを下げる。
この繰り返しになる。

現在clang-15を使ってコンパイルを行うところ。
clangはこれだけある。一つくらい行けて欲しい。

前回、エラーが出たのはgmake test時にsudoを付けていなかったことが大きい。
ファイルを書き込みに行った時にownerがrootだったりmacportsだったりと安定していなかったせいらしい。

sudo gmake testの結果、延々とtestを繰り返し結果が出た。

Failed 1 test out of 2453, 99.96% okay.
つまり、殆どのテストは通った。

今度は落ちたところを単体で動かしてみる。
% ./perl t/op/groups.t

これ/t/op/で初めてのテストだったろうから、他のもやってみよう。
% ./perl t/op/*.t

多分、全部通ったと思われ。
次は、インストールである。
% sudo gmake install

なんだかコンパイルが始まった気がする。
なんで?また何か作ってるの?もういいじゃん。

ここから漸くファイルのコピーが始まったらしい。

終わったと思って良いのだろうか?

perlのバージョンを確認する。

これだけだと信じられない。他のperlかも知れないじゃないか。
どのperlを選んだのか確認する。

つまり、最初に出てきた/opt/local/bin/perlだわな。

それがさっき作ったものかを確認する。(疑心暗鬼になってる)

確かに今日作ったものだ。(しつこいのは理解している)

さて、漸くここでp5.34-dbiのインストールである。
大回りしたなぁ、まさかperlのrecompileまですることとなるとは。
sudo port install p5.34-dbi
……エラーで止まった。
うん、知ってた。お前ってそう云う奴だもんな。ちくしょうめぇ〜。

さてログを見よう。
多分、ここだ。

何がなんでもXcodeのclangを使いたいらしい。
perlの関係って基本的にXcode大好きなの?
それとも、Macports全体的にそうだったりする?
ホントなんだよ、自分とこにコンパイラあるんだから、それ使えよ。
amavis-newとか、rustとか落とさせて自己コンパイルさせるんだぞ、見習え!(いやそこまでしなくて良い)

sudo port upgrade p5.34-dbi configure.compiler=macports-clang-15
コンパイラを強制変更して先へ進ませようとしてみる。
ログの内容は一緒だわ。
何がなんでもXcodeを使いたいらしい。
だって、こうだもの。

AIさんに、「これやってみて」と言われた通りやってみる。
sudo port install p5.34-dbi configure.compiler=macports-clang-15 configure.cc=”/opt/local/bin/clang” configure.env-append “CC=/opt/local/bin/clang” make.env-append “CC=/opt/local/bin/clang”
さて、結果は変わらずエラー。
内容確認していたら、また見つけたよ。

DEVELOPER_DIR=’/Library/Developer/CommandLineTools’
Xcode大好き過ぎるだろ。

もう少し後ろに記述があったよ

もうこれ、信仰とか盲信とか一神教の崇拝者っぽいな。

自動化しようとしたら、条件に合わせてlibのpath書き換えるとか、pathsの先頭に/opt/local/binを噛ませるとか、php等のscriptで何とかなるものだろうか?
漏れそうだよねぇ。
結局、一度はConfigure動かして目で確かめないと、実行できんわな。
更に、clang-15固定になっちゃうねぇ。
下手打つと崩壊しそうだわ。

結果、MacPortsとHigh Sierraでは、ここ迄で限界らしい。
MAcPortsの管理下から外れるか、macOSを新しくするかの二択になりそうです。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)