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

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

現状知らんので以下色々間違ってるかもしれんが、分かるところを書いておく。
まず状況を纏めると、

A. メモリ8GB, スワップ不明で、エラー(328)
B. メモリ8GB, スワップ不明で、sudo systemctl stop systemd-oomd して、エラー(334)
C. メモリ16GB、スワップ不明で、sudo systemctl stop systemd-oomd して、エラー(335、後半のエラー内容は328と同じだが…)
省4
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.

B(334)
INFO: Elapsed time: 431.637s, Critical Path: 39.20s
INFO: 1148 processes: 511 internal, 637 linux-sandbox.
省13
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で警告は全てエラー扱いにしてるから落ちてる。
だからこれらを外してしまえば、少なくとも現在落ちてるところは通るようになる。

一般的な問題としては、
> cc1plus: all warnings being treated as errors
であり、そもそもC言語の文化では警告上等(=警告は無視するもの)であり、
省10
345
(1): 2024/05/13(月)22:59 ID:pgrGXMrf(5/9) AAS
だから、解決策としては、
α:リリース時のgccバージョンでコンパイルする(通常はダウングレードすることになる)
β:オプションを調整して警告無視でコンパイルする
であり、archの場合はパッケージリリース時のgccバージョンが多分明確に分かるはずなので、
まずそれを調べ、
α-1:もしリリース時のgccバージョンよりも現在使用しているもののバージョンが低いのなら、アップデートしてビルドを試す。
α-2:ただし通常はダウングレードになってしまうと思われるので、こちらは面倒だからやらず、
β:オプションを調整してビルド、
になる。(つっても面倒ならgccが最新版であることを確認してβだけでいい)
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
を指示してるマクロがあるはずなので、それも消してビルドを試せばいい。
これについてはエラーログの
> (remaining 62 arguments skipped)
の部分をとりあえず全部表示させてコピペしてくれればそれっぽいの探せるけど。
省13
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.030s