Skip to content

Enable CONFIG_TIPC and CONFIG_CMA; fix local --config-only#54

Merged
lacraig2 merged 2 commits into
mainfrom
kernel-config-tipc-cma
Jul 14, 2026
Merged

Enable CONFIG_TIPC and CONFIG_CMA; fix local --config-only#54
lacraig2 merged 2 commits into
mainfrom
kernel-config-tipc-cma

Conversation

@lacraig2

Copy link
Copy Markdown
Contributor

Config adds (draft 27)

Enables two kernel config options requested for broader coverage, added to all-common.inc for both kernel versions (4.10, 6.13) so they apply to every target arch:

  • CONFIG_TIPC=y — TIPC networking protocol (firmware that requires it).
  • CONFIG_CMA=y — Contiguous Memory Allocator (memory-model coverage).

Grounding: of the five options originally proposed (TIPC, HUGETLBFS, CMA, compat32 UPROBES, TUN), only TIPC and CMA are genuine adds:

  • CONFIG_TUN and CONFIG_HUGETLBFS were already =y in both all-common.inc — no change.
  • compat32 UPROBES is not a Kconfig symbol; CONFIG_UPROBES is already enabled, and AArch32-on-arm64 uprobe support is a hardcoded kernel stub (tracked separately as the ARM32-on-ARM64 uprobes issue), not something a config can flip.

Verification

build.sh --config-only across 13 arch/version combinations (arm32, arm64, mipsel/mips64el, x86_64, powerpc, riscv64, loongarch64 × 4.10/6.13): CONFIG_TIPC, CONFIG_CMA, and CONFIG_TUN survive savedefconfig on all 13 — no arch's Kconfig rejects the adds. Full kernel build + guest-boot smoke is left to CI (build.yml + nightly).

Tooling fix

Second commit fixes two latent bugs that broke build.sh --config-only for local (non-shared-docker) use — exactly the verification path above:

  • rewrite_mount() dereferenced $PENGUIN_HOST_MOUNT_FROM/_TO unguarded under set -u, aborting every local build where those aren't exported.
  • The lint diff runs under set -e and always returns non-zero (savedefconfig prunes defaults), so a multi-target --config-only aborted after the first target.

Both are on main today; they only affect local --config-only (CI sets the mount vars and runs full builds, never the diff path).

lacraig2 added 2 commits July 13, 2026 17:51
Add CONFIG_TIPC=y and CONFIG_CMA=y to all-common.inc for both kernel
versions (4.10, 6.13), so they apply to every target arch.

- CONFIG_TIPC: TIPC networking protocol, needed by firmware that uses it.
- CONFIG_CMA: Contiguous Memory Allocator, for memory-model coverage.

CONFIG_TUN and CONFIG_HUGETLBFS were already enabled globally; no change
needed there. Verified via 'build.sh --config-only' that both new options
survive savedefconfig on all 13 arch/version combinations tested (arm32,
arm64, mips 32/64 LE/BE, x86_64, powerpc, riscv64, loongarch64).
Two latent bugs broke 'build.sh --config-only' outside the shared-docker CI:

- rewrite_mount() dereferenced $PENGUIN_HOST_MOUNT_FROM/_TO unguarded under
  'set -u', aborting every local build where those env vars aren't exported.
  Guard them with ${VAR:-}.

- The config-only lint diff runs under 'set -e' and always returns non-zero
  (savedefconfig prunes defaults/dupes), so a multi-target --config-only run
  aborted after the first target. Append '|| true' since the diff is purely
  informational.

With both fixed, 'build.sh --config-only --targets "a b"' lints every target
with no env-var workaround.
@lacraig2
lacraig2 merged commit d4728e8 into main Jul 14, 2026
16 checks passed
@lacraig2
lacraig2 deleted the kernel-config-tipc-cma branch July 14, 2026 00:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant