Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Kernel CI does not build drm-kmod, so LinuxKPI header regressions reach main green

オープン
#201 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
52/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
静か
技術スタック
c, github-actions

調査の方向性

Start with the kernel PR workflow and the drm-kmod build step in nextbsd-kernel-extensions, which the issue identifies as the existing reference. Check how the workflow can use the just-built kernel and restrict the check to PRs touching sys/compat/linuxkpi/. Done means those changes trigger a drm-kmod build (or the described header-check stopgap) and unrelated PRs do not incur the extra build.

索引モデルが issue の本文から書いたものです。

説明

area:graphics

What happened

nextbsd/nextbsd-kernel#198 merged with all checks green and immediately broke the drm-kmod build in nextbsd-kernel-extensions — every amdgpu object failed with redefinition of 'resource'. Fixed in nextbsd/nextbsd-kernel#200; this issue is about the gap that let it through.

The gap

Patches under patches/ can modify sys/compat/linuxkpi/common/include/linux/*.h. Those headers have two consumers:

  1. the kernel itself — built by kernel (amd64) / kernel (arm64), and
  2. drm-kmod, built in a different repository (nextbsd-kernel-extensions) against the kernel's installed headers.

Only the first is a required check on a kernel PR. A change that is fine for the kernel but breaks the LinuxKPI include graph is invisible until someone opens an unrelated extensions PR — which is exactly how this surfaced.

That class of bug is easy to hit here: LinuxKPI has types that deliberately shadow FreeBSD ones (struct resource in <linux/ioport.h> vs sys/rman.h), so any new sys/*.h include in a LinuxKPI header can reorder definitions for consumers the kernel build never exercises.

Suggested fix

Add a check to the kernel PR workflow that builds drm-kmod against the just-built kernel — the same step nextbsd-kernel-extensions already runs — gated to PRs whose diff touches sys/compat/linuxkpi/, so the cost lands only on the PRs that can trigger it.

A cheaper stopgap, if the full build is too slow to gate on: compile a single translation unit that includes <linux/mfd/core.h> (which pulls platform_device.h then ioport.h) plus the other LinuxKPI headers with shadowing types. That would have caught this specific regression in seconds.

Related

  • nextbsd/nextbsd-kernel#200 — the fix
  • nextbsd/nextbsd-kernel#198 — the PR that introduced it
主要言語
C
スター
12
フォーク
3
平均マージ
7時間 1分
マージ済み PR(30日)
7

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

nextbsd/nextbsd-kernel のほかの issue

nextbsd/nextbsd-kernel の issue をすべて見る

似ている issue

C の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。