mail-index.netbsd.org/source-c

./m68k/pmap_motorola.h:165:5: error: operator '*' has no left operand
#if PAGE_SIZE == 8192 /* NBPG / (SG4_LEV1SIZE * sizeof(st_entry_t)) */
^
nbmkdep: compile failed.

C言語なんもわからん、っつってる

フォロー

@tsutsuii コメントとか掛け算のアスタリスクが間接演算子扱いされてるとかそんな感じなんすかね

@hadsn いろいろ見てたんですが、コメントを消しても同じエラーでした。なので PAGE_SHIFT の定義がダメっぽいのです。
で、 MIN_PAGE_SIZE か MAX_PAGE_SIZE かどちらかが定義されているとこのエラーになる、というのは観測できたんですが、一体何をどうするとこうなるのかがサッパリ

@hadsn わかりました。
nxr.netbsd.org/xref/src/sys/uv
ここから MODULE のとき PAGE_SIZE が再定義されててポインタ参照になってるからですね……。(これはこれでどう直すべきかが難しい……)

@tsutsuii ページサイズの最大と最小を等しくしてごまかすのが楽そうではありますが

@hadsn これ、根本的な設計上の問題が浮上したので問い合わせ中です(「PAGE_SIZE が constant でないことがある場合」と「各機種のカーネル内部では常に constant だけれども同じCPU(=同じユーザーランドバイナリ)でも機種が異なると異なる PAGE_SIZE 値を取ることがある場合」とで別の MAX/MIN定義を用意しないといけない)

ログインして会話に参加
:realtek:

思考の /dev/null