[過去ログ]
Arch Linux 18 (1002レス)
Arch Linux 18 http://mao.5ch.net/test/read.cgi/linux/1703764780/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
329: login:Penguin [sage] 2024/05/13(月) 05:25:36.67 ID:S0N9LpBA 噂ではswap領域が十分でもsystemd-oomdが強制終了させるという話がありますね http://mao.5ch.net/test/read.cgi/linux/1703764780/329
330: login:Penguin [sage] 2024/05/13(月) 07:23:20.16 ID:zteuBQbN 他の環境(fedora)自前でmozc buildしてるけど最近のgccじゃ通らんclangで完走した http://mao.5ch.net/test/read.cgi/linux/1703764780/330
331: login:Penguin [] 2024/05/13(月) 07:48:08.13 ID:ELtAGQGa やっぱりbazelは面倒だな mozc-utはもはやArch必須パッケージみたいなものだからなんとかしてほしいところ UT辞書はライセンスバカがしょーもないことを触れ回ったせいでビルド済みバイナリを配布するのも難しい状況だし http://mao.5ch.net/test/read.cgi/linux/1703764780/331
332: login:Penguin [sage] 2024/05/13(月) 08:29:01.44 ID:zteuBQbN CC=clang CPP=clang++ bazel ..... 環境変数つけるだけじゃ? http://mao.5ch.net/test/read.cgi/linux/1703764780/332
333: login:Penguin ころころ [sage] 2024/05/13(月) 09:18:29.70 ID:pgrGXMrf >>329 > Mozc のビルドに失敗する (プロセスが強制終了される) > ビルドが以下のようなメッセージで異常終了した場合: > > ... > /bin/sh: 1 行: xxxx 強制終了 > ... > make: *** [xxx/xxx ...] エラー 137 > ... > メモリ不足になっていないか確認してください。 > ttps://wiki.archlinux.jp/index.php/Mozc のとおり、実際にメモリ不足になると止まるように設定されているようだ。また、 > 従来はメモリー不足によりOSの応答性が著しく低下し、もしくは無反応になり、 > ユーザーはPCを強制的に再起動せざるを得ませんでした。 > この状況を改善するため「systemd-oomd」を導入し、 > システム的にメモリー不足に陥る前にユーザースペースで「OOM Killer」を実行してメモリーの空き容量を確保し、 > システムの応答性低下を緩和することになりました。 > ttps://kledgeb.blogspot.com/2022/07/ubuntu-2204-224-systemd-oomd.html とあるから、とりあえずはビンゴっぽい。そのページの下のほうに書いてあるが、一時的に停止するには > sudo systemctl stop systemd-oomd だとさ。archでも全く同じかは知らんが。 ただまあ、ビルドに8GB食うのはおかしいと思うから、多分どれかのツールがメモリリークしてるのだろうが、 ディストリ側としてはどうにもならんから、この対処なのだろう。 (普通に考えれば、これならarchWikiに一時的解除の方法を載せれば良いだけだが、 それよりはメモリ不足で諦めさせたほうがいい、という判断になっているのは、 おそらく一時的に解除してビルドした場合、実際に再起動せざるを得ないケースに遭遇することになる、ということなのだろう) というわけで、確定させたければ再起動上等で試してみるんだね。 http://mao.5ch.net/test/read.cgi/linux/1703764780/333
334: login:Penguin [sage] 2024/05/13(月) 18:36:40.50 ID:C3pTaN2D >>333 > sudo systemctl stop systemd-oomd まずこれをやって、~/.cache/bazel を削除。 で、ビルドするとエラーが少し変わったかな↓ /usr/lib/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../include/c++/14.1.1/bits/basic_string.h:1182:30: error: '*(const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)((char*)<unknown> + 8).std::__cxx11::basic_string<char>::<anonymous>.std::__cxx11::basic_string<char>::<unnamed union>::_M_allocated_capacity' may be used uninitialized [-Werror=maybe-uninitialized] 1182 | return _M_is_local() ? size_type(_S_local_capacity) | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1183 | : _M_allocated_capacity; | ~~~~~~~~~~~~~~~~~~~~~~~ cc1plus: all warnings being treated as errors Use --verbose_failures to see the command lines of failed build steps. INFO: Elapsed time: 431.637s, Critical Path: 39.20s INFO: 1148 processes: 511 internal, 637 linux-sandbox. ERROR: Build did NOT complete successfully ==> エラー: build() で問題が発生しました。 中止... やっぱりビルド失敗。 で、原始的にPCのメモリが有ったので 16GBにして、~/.cache/bazel を削除。 で、再ビルド。 でも↑と同じエラーで止まる。 ↓続く http://mao.5ch.net/test/read.cgi/linux/1703764780/334
335: login:Penguin [sage] 2024/05/13(月) 18:39:54.70 ID:C3pTaN2D >>333 3回目。> sudo systemctl stop systemd-oomd これをやって、~/.cache/bazel を削除。 メモリ16GBで再再ビルド。 エラーが前回に戻ったかな↓ /usr/lib/gcc/x86_64-pc-linux-gnu/14.1.1/../../../../include/c++/14.1.1/bits/basic_string.h:1182:30: error: '*(const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)((char*)<unknown> + 8).std::__cxx11::basic_string<char>::<anonymous>.std::__cxx11::basic_string<char>::<unnamed union>::_M_allocated_capacity' may be used uninitialized [-Werror=maybe-uninitialized] 1182 | return _M_is_local() ? size_type(_S_local_capacity) | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1183 | : _M_allocated_capacity; | ~~~~~~~~~~~~~~~~~~~~~~~ cc1plus: all warnings being treated as errors Use --verbose_failures to see the command lines of failed build steps. ERROR: /home/yamato99999/aur/mozc-ut/src/mozc-ut-git/src/protocol/BUILD.bazel:140:14 Compiling protocol/user_dictionary_storage.pb.cc failed: (Exit 1): gcc failed: error executing CppCompile command (from target @@com_google_protobuf//src/google/protobuf:protobuf) /usr/bin/gcc -U_FORTIFY_SOURCE -fstack-protector -Wall -Wunused-but-set-parameter -Wno-free-nonheap-object -fno-omit-frame-pointer -g0 -O2 '-D_FORTIFY_SOURCE=1' -DNDEBUG -ffunction-sections ... (remaining 62 arguments skipped) Use --sandbox_debug to see verbose messages from the sandbox and retain the sandbox build root for debugging INFO: Elapsed time: 218.061s, Critical Path: 11.59s INFO: 833 processes: 403 internal, 430 linux-sandbox. ERROR: Build did NOT complete successfully ==> エラー: build() で問題が発生しました。 中止... こんな感じでメモリ16GBでも失敗する。 自分のPCがおかしいおま環? とも疑う。 とりあえずmozc-utビルド、こんな感じで 失敗します。報告でした。 http://mao.5ch.net/test/read.cgi/linux/1703764780/335
336: login:Penguin [] 2024/05/13(月) 18:57:13.76 ID:QN0Lo3oB yay -G mozc makepkg --syncdeps --rmdeps --cleanbuild ==> 作成完了: mozc 2.30.5448.102-1 (2024年05月13日 16時06分22秒) ==> Removing installed dependencies... メモリー 7Gの環境でswap 2G 失敗 EndeavourOS メモリー 7Gの環境でswap 10Gだと完走できるぽい Manjaro Testing $ swapon --show NAME TYPE SIZE USED PRIO /dev/sdb6 partition 2G 0B 2 /media/ほげ/sys004/swapfile file 8G 7.5M 3 http://mao.5ch.net/test/read.cgi/linux/1703764780/336
337: login:Penguin [sage] 2024/05/13(月) 19:24:10.38 ID:rUUCKSVL ビルドを/tmpでやってるんじゃないの? http://mao.5ch.net/test/read.cgi/linux/1703764780/337
338: login:Penguin [sage] 2024/05/13(月) 19:32:43.28 ID:9hMkpwq+ >>335 俺も16GB載せてるが2、3回に1度くらいの頻度で失敗するわ http://mao.5ch.net/test/read.cgi/linux/1703764780/338
339: login:Penguin [sage] 2024/05/13(月) 19:40:04.39 ID:C3pTaN2D >>337 いえ。ユーザーのhomeディレクトリで やってますよ。 http://mao.5ch.net/test/read.cgi/linux/1703764780/339
340: login:Penguin [sage] 2024/05/13(月) 21:23:01.16 ID:9v9+0sEy 環境によるビルドエラーというよりgccとコンパイルオプションの問題なのかな…? g++のbasic_stringライブラリ側で内部変数'_M_allocated_capacity'が適切に初期化されてないぽいような gcc側の問題ならclangにして回避するか-Werror=maybe-uninitializedオプションを外すとか >-Werror=maybe-uninitialized 初期化されない場合、その警告をコンパイルエラーとして扱う指定 >cc1plus: all warnings being treated as errors プリプロセッサかコンパイラあたりが警告をコンパイルエラーとして吐き出してる http://mao.5ch.net/test/read.cgi/linux/1703764780/340
341: login:Penguin [sage] 2024/05/13(月) 22:02:57.60 ID:zteuBQbN いつもでやってんのofficalのビルド環境がubuntu24.04になったんだから clangがデフォだよ http://mao.5ch.net/test/read.cgi/linux/1703764780/341
342: login:Penguin [sage] 2024/05/13(月) 22:56:42.87 ID:pgrGXMrf >>335 > 報告でした。 うおお偉い!まさか報告があるとは思わなかった。 まあ、インストールなんて所詮作業でしか無いから、何度やっても慣れてもほぼ無意味。 こういう引っかかったところで地道にデバッグして経験値を積み、Linuxのパワーレベル(戦闘力)を上げて行くのは正しいと思うぜ。 現状知らんので以下色々間違ってるかもしれんが、分かるところを書いておく。 まず状況を纏めると、 A. メモリ8GB, スワップ不明で、エラー(328) B. メモリ8GB, スワップ不明で、sudo systemctl stop systemd-oomd して、エラー(334) C. メモリ16GB、スワップ不明で、sudo systemctl stop systemd-oomd して、エラー(335、後半のエラー内容は328と同じだが…) でいいかな?出来ればA,B,Cにおけるスワップも教えて。 そしてもしスワップ無しで運用してて、万全を期したいなら、スワップ8-16GB程度を設定して試した方がいい。 (ただし結果は高い確率で変わらないので、面倒ならやらなくても問題ない) > ttps://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/8/html/managing_storage_devices/recommended-system-swap-space_getting-started-with-swap#doc-wrapper http://mao.5ch.net/test/read.cgi/linux/1703764780/342
343: login:Penguin [sage] 2024/05/13(月) 22:57:17.41 ID:pgrGXMrf さて上記からまず思うのは、 (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. C(335) INFO: Elapsed time: 218.061s, Critical Path: 11.59s INFO: 833 processes: 403 internal, 430 linux-sandbox. なので、多分AとCは違うところで止まってる。 最近のTurboBoostのマシンは知らんが、それでも同一マシンで流して1.5-3.4倍速になるとは思えない。 だから再度確認したほうがいいし、マジでメモリだけで1.5-3.4倍速になってるのなら普段から16GBで運用した方がいい。 (ついでに言うとB/Cはエラー前半見る限り同じ所で落ちてるが、こちらも2-3.4倍速になってる。 これも通常では考えられないので、前回のビルド結果が一部残ってたのではないかと思われるが、《configure時代なら make distclean 忘れ》 本当にメモリだけで倍速になってるのならマジで増設しとけではある) そして、プロセス多すぎ。Arch知らんがMint20.3xfceだと何もしてなければ250個程度。 バックグラウンドで何か動かしてるのなら、当然それらもメモリ食ってるので、それらの状況次第で落ちる場所も変わってきてしまう。 この場合、>>338のようなことになり、精密なデバッグには不向き。 が、まあ、archはそういうもんならそれでいいが、なら最初からメモリ多めにしておくのが無難。 http://mao.5ch.net/test/read.cgi/linux/1703764780/343
344: login:Penguin ころころ [sage] 2024/05/13(月) 22:58:29.88 ID:pgrGXMrf しかしまあここまでは所詮はデバッグ上の保険であって、これより以下が本命になる。 B,Cの前半見て分かるとおり、B,Cは明確にソースコード起因で落ちてる。 > [-Werror=maybe-uninitialized] > cc1plus: all warnings being treated as errors つまり、>>340の言うとおりで、 未初期化(っぽい)のを警告とし、cc1で警告は全てエラー扱いにしてるから落ちてる。 だからこれらを外してしまえば、少なくとも現在落ちてるところは通るようになる。 一般的な問題としては、 > cc1plus: all warnings being treated as errors であり、そもそもC言語の文化では警告上等(=警告は無視するもの)であり、 警告が一つでもあればビルドを止める、なんて運用をしてるプロジェクトはほぼ無いはず。 このスレの連中なら、(まあ普段からしまくってるのかもしれんが) nVidiaのプロプライエタリドライバのインストール時や、カーネルのアップデート時にビルドをしてるはず。 それらのログ見れば分かるが、警告なんて出まくりのはず。(でも当然動いてる) ただまあこの文化はよろしい物ではないし、だからこそC++が出て来た、というのもある。 だから今回のケースでありそうなシナリオは、 1. ソースコード作成時には「全部の警告を出し(=-Wall)、プログラマは努力して全部の警告を消す、そうしないとビルドを通さない 2. そしてリリース時のgccバージョンでは、通る。(なお>>341の言うようにこの時点でclangならclangでやらないと駄目) 3. その後、gccのバージョンが上がり、以前よりもチェックが厳しくなり、新たに警告が出る様になった。 4. なので、334,335の通り、落ちるようになってしまった。 http://mao.5ch.net/test/read.cgi/linux/1703764780/344
345: login:Penguin [sage] 2024/05/13(月) 22:59:29.22 ID:pgrGXMrf だから、解決策としては、 α:リリース時のgccバージョンでコンパイルする(通常はダウングレードすることになる) β:オプションを調整して警告無視でコンパイルする であり、archの場合はパッケージリリース時のgccバージョンが多分明確に分かるはずなので、 まずそれを調べ、 α-1:もしリリース時のgccバージョンよりも現在使用しているもののバージョンが低いのなら、アップデートしてビルドを試す。 α-2:ただし通常はダウングレードになってしまうと思われるので、こちらは面倒だからやらず、 β:オプションを調整してビルド、 になる。(つっても面倒ならgccが最新版であることを確認してβだけでいい) http://mao.5ch.net/test/read.cgi/linux/1703764780/345
346: login:Penguin [sage] 2024/05/13(月) 23:00:42.31 ID:pgrGXMrf 最近C言語やって無いので以下は勘であり間違ってるかもしれんが、 -Wはマクロであり、通常は環境変数で指定する。 configure時代は大体 CCFLAGS=-Wall みたいな指定方法だったが、今は知らん。 ただ上記も「追加」であり、「削除」はどこにどう指定するのかは分からん。 もし、パッケージビルドといってもガワ被せただけで結局configureしてるのなら、多分configure自体かそこから呼ばれるbashスクリプト内で export CCFLAGS=-Wall とかでデフォのオプションを指定してるはずだから、その辺を弄ることになる。 この場合はとりあえず grep 'maybe-uninitialized' * とかで探すことになる。 http://mao.5ch.net/test/read.cgi/linux/1703764780/346
347: login:Penguin [sage] 2024/05/13(月) 23:02:40.68 ID:pgrGXMrf -Wall :全ての警告を表示しろ、の指示 -Wunused-but-set-parameter :変数に代入してるが使ってねえじゃん馬鹿ヤロー、と警告出せ、の指示 -Wallと被ってるから意味無い?まあそのとおりだが、この辺はダブっても問題ない、というノリ そしてこの通り、全部の警告を出す=動作上は問題ないけどソースコードをもっときれいに出来るよね、も警告になる http://mao.5ch.net/test/read.cgi/linux/1703764780/347
348: login:Penguin [sage] 2024/05/13(月) 23:02:59.65 ID:pgrGXMrf だから自分でコード書くときは「全部の警告を出し、全部の警告を消す」ようにコードを整理するのが理想で、 多分このプロジェクトでもやってたんだろうが、その後gccのバージョンが上がり、新たな警告を出せるようになった場合は通らなくなる http://mao.5ch.net/test/read.cgi/linux/1703764780/348
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 654 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.093s*