-
Notifications
You must be signed in to change notification settings - Fork 11
Comparing changes
Open a pull request
base repository: linux-kdevops/kdevops
base: main
head repository: linux-kdevops/kdevops
compare: b4/kernel-fragment-support
- 5 commits
- 56 files changed
- 1 contributor
Commits on Sep 19, 2025
-
workflows: bootlinux: enhance kernel configuration fragment support
This patch series enhances the previously introduced kernel configuration fragment support with: ccache support to speed up builds, reproducile kernel builds, and broader architecture support (ARM64 and x86_64) for these features. # Describe the purpose of this series. The information you put here # will be used by the project maintainer to make a decision whether # your patches should be reviewed, and in what priority order. Please be # very detailed and link to any relevant discussions or sites that the # maintainer can review to better understand your proposed changes. If you # only have a single patch in your series, the contents of the cover # letter will be appended to the "under-the-cut" portion of the patch. # Lines starting with # will be removed from the cover letter. You can # use them to add notes or reminders to yourself. If you want to use # markdown headers in your cover letter, start the line with ">#". # You can add trailers to the cover letter. Any email addresses found in # these trailers will be added to the addresses specified/generated # during the b4 send stage. You can also run "b4 prep --auto-to-cc" to # auto-populate the To: and Cc: trailers based on the code being # modified. To: Luis Chamberlain <[email protected]> To: Chuck Lever <[email protected]> Cc: [email protected] Signed-off-by: Daniel Gomez <[email protected]> --- Changes in v2: - Reproducible builds support: Deterministic kernel builds via standardized environment variables (KBUILD_BUILD_*), compatible with both GCC and Clang toolchains - ccache integration: Compiler cache support with both system-wide and kdevops-managed configurations, automatic package installation across all supported distributions - Enhanced fragment system: Extended architecture support from ARM64-only to include x86_64 - Clean build options: Move the mrproper execution task to a configurable option available for both fragment and monolithic configurations, enabling deterministic builds when needed while preserving incremental build performance by default - Link to v1: https://lore.kernel.org/r/[email protected] --- b4-submit-tracking --- # This section is used internally by b4 prep for tracking purposes. { "series": { "revision": 2, "change-id": "20250916-kernel-fragment-support-1207a7352473", "prefixes": [], "prerequisites": [ "base-commit: 7d094b5", "change-id: 20250916-sysbench-ab-dut-d29b07bb37b5:v1" ], "history": { "v1": [ "[email protected]" ] } } }
Configuration menu - View commit details
-
Copy full SHA for c8ceffd - Browse repository at this point
Copy the full SHA c8ceffdView commit details -
workflows: bootlinux: add reproducible builds support
Restructure bootlinux build parameters to use modular dictionary approach for make module parameters and environment variables. This prepares the codebase for extensible build features like ccache and reproducible builds. Add CONFIG_BOOTLINUX_REPRODUCIBLE_BUILDS option to enable deterministic kernel builds by setting hardcoded environment variables. When enabled, injects KBUILD_BUILD_TIMESTAMP='', KBUILD_BUILD_USER=kdevops, and KBUILD_BUILD_HOST=kdevops during compilation. Uses empty timestamp as recommended by LLVM documentation for optimal compatibility with ccache and build reproducibility across different development environments. Features: - Configurable via Kconfig with clear documentation - Integrates with modular environment/params infrastructure - Applied to both make module parameters and shell task environments - Compatible with both GCC and Clang toolchains Generated-by: Claude AI Signed-off-by: Daniel Gomez <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 22ca212 - Browse repository at this point
Copy the full SHA 22ca212View commit details -
workflows: bootlinux: add comprehensive ccache support
Add ccache (compiler cache) support to accelerate kernel builds with both GCC and Clang toolchains. Implementation provides flexible configuration options while maintaining simplicity for common use cases. Key features: - System-wide ccache configuration (default) for immediate use - kdevops-managed configuration for project isolation - Automatic package installation across all supported distros - Modular environment variable composition for clean integration - LLVM documentation compliance (CC="ccache clang") - Seamless integration with reproducible builds and existing features Configuration: - Cache size specified in GiB (digits only, e.g., 10 = 10 GiB) - Uses automatic Kconfig→Ansible integration via .extra_vars_auto.yaml - Template-based configuration management with TOPDIR_PATH isolation - Organized in dedicated ccache submenu for clean UI Technical implementation: - Uses modular bootlinux_make_params for community.general.make module - Uses modular bootlinux_build_environment for shell tasks - Automatic compiler detection (ccache gcc vs ccache clang) - Enhanced debug output for build command validation Generated-by: Claude AI Signed-off-by: Daniel Gomez <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 47fa71b - Browse repository at this point
Copy the full SHA 47fa71bView commit details -
workflows: bootlinux: add kernel configuration fragments support
Add comprehensive kernel configuration fragment system that enables building kernels using merge_config.sh with focused configuration fragments instead of monolithic config files. Key features: - Modular Kconfig organization split into logical categories - Support for both x86_64 and ARM64 architectures - Architecture-specific fragment visibility (ARM64 page sizes) - Module dependency management for advanced features - New fragments for extended modversions, kmemleak, and module testing Fragment categories: - Essential: Core system requirements (64bit, systemd, distro, storage) - Security: Hardening and security features - Architecture: Platform-specific optimizations - Development: Debugging and diagnostic tools - Memory: NUMA and memory management features - Modules: Kernel module system configuration - Advanced: eBPF, XArray, and specialized features - Container: Virtualization and container support - Specialized: Minimal kernels, power management, Rust support - Legacy: Compatibility and legacy feature support Technical implementation: - Uses merge_config.sh for robust fragment composition - Complete integration with kdevops build workflow - Supports both 9P and target build modes - Pre-built configurations for common setups - Template-based fragment management Configuration fragments origin: https://github.com/dkruces/linux-config-fragments Generated-by: Claude AI Signed-off-by: Daniel Gomez <[email protected]> Reviewed-by: Luis Chamberlain <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1ba6341 - Browse repository at this point
Copy the full SHA 1ba6341View commit details -
workflows: bootlinux: add clean builds configuration option
Add CONFIG_BOOTLINUX_CLEAN_BEFORE_BUILD option to enable clean builds for both fragment and monolithic configurations via configurable mrproper execution. Changes: - Add CONFIG_BOOTLINUX_CLEAN_BEFORE_BUILD Kconfig option (default: n) - Add global mrproper task in config.yml for non-9P builds - Add mrproper task in 9P build workflow for localhost builds - Conditional execution based on bootlinux_clean_before_build variable This provides deterministic builds when needed while preserving incremental build performance by default. The mrproper task runs before configuration to ensure pristine source state. Features: - Works with both monolithic and fragment configurations - Separate handling for 9P vs target builds - Clear documentation of trade-offs (clean vs incremental builds) - Maintains existing workflow compatibility Generated-by: Claude AI Signed-off-by: Daniel Gomez <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for a8c2926 - Browse repository at this point
Copy the full SHA a8c2926View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff main...b4/kernel-fragment-support