[過去ログ] Arch Linux 18 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
333
(2): ころころ 2024/05/13(月)09:18 ID:pgrGXMrf(1/9) AAS
>>329
> Mozc のビルドに失敗する (プロセスが強制終了される)
> ビルドが以下のようなメッセージで異常終了した場合:
>
> ...
> /bin/sh: 1 行: xxxx 強制終了
> ...
省20
342: 2024/05/13(月)22:56 ID:pgrGXMrf(2/9) AAS
>>335
> 報告でした。
うおお偉い!まさか報告があるとは思わなかった。
まあ、インストールなんて所詮作業でしか無いから、何度やっても慣れてもほぼ無意味。
こういう引っかかったところで地道にデバッグして経験値を積み、Linuxのパワーレベル(戦闘力)を上げて行くのは正しいと思うぜ。

現状知らんので以下色々間違ってるかもしれんが、分かるところを書いておく。
まず状況を纏めると、
省7
343: 2024/05/13(月)22:57 ID:pgrGXMrf(3/9) AAS
さて上記からまず思うのは、
(a) sudo systemctl stop systemd-oomd は効いたらしい?
(b) メモリは16GBでも駄目?
だが、よくよく見ると、

A(328)
INFO: Elapsed time: 334.405s, Critical Path: 39.55s
INFO: 1055 processes: 511 internal, 544 linux-sandbox.
省16
344: ころころ 2024/05/13(月)22:58 ID:pgrGXMrf(4/9) AAS
しかしまあここまでは所詮はデバッグ上の保険であって、これより以下が本命になる。

B,Cの前半見て分かるとおり、B,Cは明確にソースコード起因で落ちてる。
> [-Werror=maybe-uninitialized]
> cc1plus: all warnings being treated as errors
つまり、>>340の言うとおりで、
未初期化(っぽい)のを警告とし、cc1で警告は全てエラー扱いにしてるから落ちてる。
だからこれらを外してしまえば、少なくとも現在落ちてるところは通るようになる。
省13
345
(1): 2024/05/13(月)22:59 ID:pgrGXMrf(5/9) AAS
だから、解決策としては、
α:リリース時のgccバージョンでコンパイルする(通常はダウングレードすることになる)
β:オプションを調整して警告無視でコンパイルする
であり、archの場合はパッケージリリース時のgccバージョンが多分明確に分かるはずなので、
まずそれを調べ、
α-1:もしリリース時のgccバージョンよりも現在使用しているもののバージョンが低いのなら、アップデートしてビルドを試す。
α-2:ただし通常はダウングレードになってしまうと思われるので、こちらは面倒だからやらず、
省2
346: 2024/05/13(月)23:00 ID:pgrGXMrf(6/9) AAS
最近C言語やって無いので以下は勘であり間違ってるかもしれんが、
-Wはマクロであり、通常は環境変数で指定する。
 configure時代は大体 CCFLAGS=-Wall みたいな指定方法だったが、今は知らん。
 ただ上記も「追加」であり、「削除」はどこにどう指定するのかは分からん。
 もし、パッケージビルドといってもガワ被せただけで結局configureしてるのなら、多分configure自体かそこから呼ばれるbashスクリプト内で
 export CCFLAGS=-Wall とかでデフォのオプションを指定してるはずだから、その辺を弄ることになる。
 この場合はとりあえず grep 'maybe-uninitialized' * とかで探すことになる。
347
(1): 2024/05/13(月)23:02 ID:pgrGXMrf(7/9) AAS
-Wall :全ての警告を表示しろ、の指示
-Wunused-but-set-parameter :変数に代入してるが使ってねえじゃん馬鹿ヤロー、と警告出せ、の指示
 -Wallと被ってるから意味無い?まあそのとおりだが、この辺はダブっても問題ない、というノリ
 そしてこの通り、全部の警告を出す=動作上は問題ないけどソースコードをもっときれいに出来るよね、も警告になる
348: 2024/05/13(月)23:02 ID:pgrGXMrf(8/9) AAS
 だから自分でコード書くときは「全部の警告を出し、全部の警告を消す」ようにコードを整理するのが理想で、
 多分このプロジェクトでもやってたんだろうが、その後gccのバージョンが上がり、新たな警告を出せるようになった場合は通らなくなる
349: 2024/05/13(月)23:03 ID:pgrGXMrf(9/9) AAS
-Werror=maybe-uninitialized:未初期化(かもしれない)変数を使用してたらエラーにしろ、の指示
 ただ言っちゃ悪いがC言語の文法では未初期化は検出できないので、
 (ある程度実績のあるプロジェクトなら)これは誤検出であり多分やりすぎなので切っていい)

なので、-Werror=maybe-uninitialized は勿論消すとして、
他に
> cc1plus: all warnings being treated as errors
を指示してるマクロがあるはずなので、それも消してビルドを試せばいい。
省16
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.035s