<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/source/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in Makefile</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>bb29b957eaaa15be33243550d9ee576c2d601669 - Merge tag &apos;kbuild-7.4-1&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#bb29b957eaaa15be33243550d9ee576c2d601669</link>
        <description>Merge tag &apos;kbuild-7.4-1&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linuxPull Kbuild / Kconfig updates from Nathan Chancellor: &quot;Kbuild:   - Suppress compiler flags in debug info for external module builds   - Use &apos;-fmacro-prefix-map&apos; in more places in the build   - Merge initial set of changes from Lorenzo&apos;s speed up series, along     with some fixes found through testing:     - Avoid allocating .modinfo in vmlinux     - Speed up kallsyms by indexing symbols by token and outputting       binary data to disk directly then including in assembly via       .incbin     - Don&apos;t sort $(NM) output when unnecessary     - Only emit relocations on the final vmlinx link     - Reimplement mksysmap in C     - Move many cc-option and ld-option calls into the Kconfig stage to       cache their results     - Use pigz for gzip compression when available   - Move gen_init_cpio and gen_initramfs.sh from usr/ to scripts/   - Add a TOML configuration to scripts/container and update     documentation accordingly   - Add a generic, opt-in mechanism for checking that headers can     compile standalone   - Update machine function splitting argument for LLVM 24 rename in     AutoFDO build   - Miscellaneous minor clean ups, fixes, and hardening, mostly     found/fixed via LLMs  Kconfig:   - Turn recursive ranges into an error   - Fix savedefconfig for defaults that were adjusted for being out of     range and revert a previously applied workaround   - Improvements and hardening around integer and hexadecimal values   - Emit a warning when selecting or implying a choice symbol, which     has no effect   - Emit a warning when KCONFIG_PROBABILITY is malformed   - Introduce def_string / def_int / def_hex to mirror the existing     def_bool / def_tristate to succinctly set a value and type at the     same time.   - Add cc-option-str and ld-option-str macros to act like Kbuild&apos;s     cc-option and ld-option, returning the string when the option is     supported, allowing many checks to be moved into Kconfig   - Minor usability improvements to Kconfig tests&quot;* tag &apos;kbuild-7.4-1&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux: (59 commits)  kbuild: AutoFDO: Update split machine function argument for upstream rename  kbuild: Mark the initcall ordering recipe as recursive  kbuild: Mark the gzip recipes as recursive  localmodconfig: Explicitly report boolean configs during integrity check  scripts/make_fit: Ignore schema checks when decomposing DTBs  clang-tools: Import os for broken pipe handling  kconfig: use the value argument in sym_get_near_range_bound()  kconfig: fix infinite loop in conf_choice() when no choice value is visible  kconfig: cleanup stale comment about &apos;keys&apos; array  kconfig: Improve ergonomics around disabling warnings with cc-option  scripts/Kconfig.toolchain: Drop compiler symbols from dependencies  checkkconfigsymbols.py: Parse Git status output line by line  gen_init_cpio: stop parsing on lines with a missing argument list  .gitignore: drop Module.markers  .gitignore: ignore pacman package signatures  kbuild: add header check facility as a manually run static analyzer  Documentation: dev-tools: refer to user ID rather than id  Documentation: dev-tools: update container.rst with config file  scripts: add TOML config to container tool  kconfig: tests: {old,save}defconfig: Forward dynamic keyword arguments  ...

            List of files:
            /linux/Makefile</description>
        <pubDate>Wed, 21 Oct 2026 22:45:44 +0200</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>12d5fc96ebbb3b948861805b32a4c3a96105ccd9 - Merge tag &apos;rust-7.4&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#12d5fc96ebbb3b948861805b32a4c3a96105ccd9</link>
        <description>Merge tag &apos;rust-7.4&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linuxPull Rust updates from Miguel Ojeda: &quot;Toolchain and infrastructure:   - Update vendored &apos;zerocopy&apos; crate to v0.8.62 (released 2026-10-08).     This update advances 8 releases, with 3 of them carrying most of     the changes. It contains new features as well as fixes. However,     almost nothing has changed that requires updates on our side (a     move of our non-ASCII change and the addition of an SPDX license     identifier).   - Generate Rust KUnit test suites for doctests reusing the     &apos;#[kunit_tests]&apos; and &apos;#[test]&apos; attributes instead of C FFI     functions, which allows to remove the generated C glue file.     Relatedly, simplify &apos;kunit_assert!&apos; by using &apos;file!()&apos; and     &apos;line!()&apos; inside (which doctests override as needed), which allows     to remove the &apos;file&apos; helper and &apos;CONFIG_RUSTC_HAS_SPAN_FILE&apos;.   - Trim the function names in doctests generated by &apos;rustdoc&apos; &lt; 1.95.0     when building with &apos;O=&apos;, which were not reproducible.   - Fix the &apos;VM_MAYSHARE&apos; value in the generated bindings and its     blocklist entry, due to typos.   - Build &apos;core&apos; with &apos;--cfg no_io_statics&apos; to ensure &apos;core&apos; does not     introduce any use of &apos;core::sync::atomic&apos; into the kernel image     since upstream Rust is moving &apos;std::io::Error&apos; into &apos;core&apos;, which     uses a global atomic pointer.     Upstream Rust merged a PR to add a test checking that builds of     &apos;core&apos; are warning-free with that &apos;cfg&apos; enabled.   - Enable the unstable &apos;proc_macro_span&apos; feature in &apos;proc-macro2&apos;,     which provides &apos;Span::join&apos; and thus improves the quality of the     diagnostics of all our procedural macros, notably &apos;pin-init&apos;. This     is only used for producing diagnostics, thus there is no hard     reliance on the feature.   - Globally allow &apos;clippy::comparison_chain&apos;, since its suggestions     are not always ideal and upstream downgraded it to &apos;pedantic&apos; too.  &apos;kernel&apos; crate:   - New &apos;mem&apos; module: add the &apos;Align&lt;N&gt;&apos; zero-sized type so that     alignment can be specified via const generics (&apos;repr(align(...))&apos;     only works with integer literals), e.g.:         const N: usize = 128;         struct S {             _align: Align&lt;N&gt;,         }         assert_eq!(align_of::&lt;S&gt;(), N);   - New &apos;ratelimit&apos; module: add the &apos;Ratelimit&apos; abstraction for &apos;struct     ratelimit_state&apos; and, based on it, the &apos;pr_*_ratelimited!&apos; printing     macros, which can be used for printing that may be triggered by     userspace.     In addition, convert Rust Binder to use them.   - &apos;sync&apos; module: to construct a global &apos;struct ratelimit_state&apos;, add     a &apos;const&apos; constructor for &apos;raw_spinlock_t&apos;.     In addition, move the lockdep types into a new &apos;sync::lockdep&apos;     submodule, since there were starting to be too many of them.   - &apos;num&apos; module: add the &apos;cv!&apos; macro to create constant values (&quot;cv&quot;)     from an integer constant expression, with validity checked at     compile time, inferring the target type from the context. It works     for any type that implements the new &apos;FromConst&apos; trait, e.g.:         let a: Alignment = cv!(4096);         let b: Bounded&lt;u32, 4&gt; = cv!(15);         // Any integer constant expression works, not only literals.         let m: NonZero&lt;usize&gt; = cv!(usize::MAX);         // Checked narrowing, including in `const` items.         const SMALL: u8 = cv!(200u32);         // The target type can be given explicitly.         let e = cv!(200u32 =&gt; u8);         // With an explicit primitive target, the expression can use         // generic parameters.         const fn as_u64&lt;const KEY: u16&gt;() -&gt; u64 {             cv!(KEY =&gt; u64)         }     This avoids the verbose turbofish syntax which disincentivized     using these types at interface boundaries (e.g.     &apos;Alignment::new::&lt;8&gt;()&apos;).   - &apos;alloc&apos; module:       - Allow different error types in &apos;KBox::pin_slice()&apos;, enabling use         of infallible initializers.       - Add &apos;NumaNode::id()&apos; accessor to retrieve the underlying NUMA         node identifier.   - &apos;time&apos; module:       - Add &apos;Delta::to_jiffies_timeout()&apos; for use in timeout arguments.       - Add &apos;Delta::as_jiffies_unsigned()&apos;.       - Make &apos;Delta::ZERO&apos; generic over the time unit.       - Warn and assert when passing out-of-range inputs to &apos;fsleep&apos; and         &apos;udelay&apos;.       - Rename &apos;ClockSource&apos; to &apos;ClockId&apos; to better align with naming         conventions in C kernel.       - Make &apos;CONFIG_HZ&apos; value available as &apos;bindings::HZ&apos;.       - Add implementation detail documentation for &apos;HrTimer&apos;.   - &apos;bitmap&apos; module:       - Add contiguous area operations (&apos;next_zero_area{,_off}&apos;, &apos;set&apos;         and &apos;clear&apos;), with extra checks compared to the underlying C         code, plus additional ones under &apos;CONFIG_RUST_BITMAP_HARDENED&apos;.         It includes tests demonstrating the edge cases.       - Restrict bitmap length to at most &apos;i32::MAX&apos;, matching         &apos;BitmapVec::MAX_LEN&apos; and simplifying a few things. This also         fixes &apos;u32&apos; casts truncating in &apos;copy_and_extend&apos;, which could         otherwise lead to OOB writes.   - &apos;bug&apos; module:       - Fix &apos;warn_on!&apos; on UML which called &apos;warn_slowpath_fmt()&apos; with         the wrong arguments; and fix its &apos;// SAFETY:&apos; comment too.       - Add a KUnit test for &apos;warn_on!&apos;.   - &apos;id_pool&apos; module: add contiguous ID reservation via the new     &apos;reserve_ids&apos; and &apos;release_ids&apos; methods, built on top of the new     bitmap area operations.   - &apos;sizes&apos; module: add the sub-1K size constants (&apos;SZ_1&apos; to &apos;SZ_512&apos;)     and implement &apos;SizeConstants&apos; for &apos;Alignment&apos;, so that one can     write e.g. &apos;Alignment::SZ_8&apos;.  &apos;macros&apos; crate:   - Add &apos;#[optional]&apos; attribute for optional methods in &apos;#[vtable]&apos; to     replace the &apos;build_error!(VTABLE_DEFAULT_ERROR)&apos; boilerplate, e.g.:         #[vtable]         pub trait Operations: Sized {             #[optional]             fn f(&amp;self) -&gt; Result;         }     In addition, apply it to miscdevice and hide generated &apos;HAS_&apos;     constants for required methods.   - Allow non-ASCII characters in the &apos;authors&apos; field of the &apos;module!&apos;     macro, which was unintentionally restricted when multiple authors     support was introduced.  &apos;pin-init&apos; crate:    [ Extra context from Gary&apos;s pull request:       &quot;This is a cycle packed with feature updates. Two of the most        anticipated features, tuple struct support and safe self        reference creation, has been included in this pull request.        Safe self reference is a big one and is pushed a bit late in the        cycle. The initial plan was to include a minimum subset for this        cycle because I was worried about potential soundness issues;        however during Plumbers it was agreed that the features should be        upstreamed at once. This is because the initial users (Nova,        JobQueue) would all need the advanced features, so it is better        to ensure that the feature get put into use for real, and it can        iterate with users, rather than being fully designed on paper.        The existing safety checks are already very comprehensive, and        Benno and I are confident that if new ones are discovered, it        wouldn&apos;t affect the overall design.        That said, the the usage of the advanced features (invariance,        existential lifetime) shall be limited to the pre-agreed users        only, so even in case where the feature needs to be reworked, the        blast radius is limited.        Another theme in this cycle is to improve the developer        experience when things are used wrongly. A lot of work has been        done to use proper spans from user-provided tokens so error        message point to things that cause them. Many common misuse        scenarios also gain additional custom diagnostics.&quot; ]   - User visible changes:       - Support tuple structs.       - Allow safe creation of self references.       - Vastly improve diagnostics for common misuse scenarios.   - Other changes:       - Use &apos;mixed_site&apos; hygiene consistently.  &apos;MAINTAINERS&apos;:   - Add &apos;RUST [BUG]&apos; entry for the Rust &apos;bug&apos; module (i.e. &apos;warn_on!&apos;),     which will be maintained by FUJITA Tomonori -- thank you!   - Add Alice Ryhl as co-maintainer for &apos;Rust [ALLOC]&apos;.  And some other fixes, cleanups and improvements.* tag &apos;rust-7.4&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/ojeda/linux: (91 commits)  rust: zerocopy: update to v0.8.62  rust: zerocopy: fix link to upstream `README.md`  rust: id_pool: add contiguous ID reservation  rust: bitmap: add contiguous area operations  rust: sizes: implement SizeConstants for Alignment  rust: sizes: add sub-1K size constants  rust: bitmap: restrict bitmap length to at most i32::MAX  rust: bitmap: use function-level cfg on kunit test  rust: num: add cv! macro to create values from constant expressions  rust: bug: update the SAFETY comment for warn_slowpath_fmt() on UML  rust: time: add Delta::as_jiffies_unsigned()  rust: time: make Delta::ZERO generic over the time unit  rust_binder: use pr_*_ratelimited! for printing  rust: add pr_*_ratelimited! macros for printing  rust: sync: add const constructor for raw_spinlock_t  rust: sync: move lockdep types to rust/kernel/sync/lockdep.rs  rust: pin-init: internal: suppress `explicit_outlives_requirements`  MAINTAINERS: add entry for the Rust `bug` module  rust: pin-init: internal: pin_data: support existential lifetimes  rust: pin-init: internal: pin_data: support shared projection  ...

            List of files:
            /linux/Makefile</description>
        <pubDate>Wed, 21 Oct 2026 22:20:36 +0200</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>14c897740388216acd59477a382de327d5e27ba4 - Merge tag &apos;docs-7.4&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/docs/linux</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#14c897740388216acd59477a382de327d5e27ba4</link>
        <description>Merge tag &apos;docs-7.4&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/docs/linuxPull documentation updates from Jonathan Corbet: &quot;It was a reasonably busy cycle for docs; changes include:   - Add the AGENTS.md symbolic link into the top-level directory in the     hopes that LLMs will read it and produce better work   - The removal of the Assisted-by requirement, as concluded at the     Maintainer Summit   - A new &quot;testdocs&quot; make target to run the documentation unit tests   - Lots of work on the Portuguese, and Chinese translations; there is     now maintenance for the traditional Chinese translations as well  ...and the usual pile of minor fixes, documentation updates, etc&quot;* tag &apos;docs-7.4&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/docs/linux: (125 commits)  docs: add AGENTS.md as a symlink to README  docs: kernel-parameters: adjust reserve_mem build option  docs: kernel-parameters: don&apos;t mix cmdline options &amp; build options  docs/ja_JP: translate submitting-patches.rst (review and report tags)  docs: remove Assisted-by references  Revert &quot;docs: landlock: fix ENOMSG condition in create_ruleset kernel-doc&quot;  docs: kdoc: parse context_lock_struct() as struct declaration  docs: timers: hpet: Document userspace API and ioctl commands  docs: timers: hpet: Modernize file references  Documentation: sched-preemption: Add a SPDX license identifier  docs: ABI: sysfs-driver-xdata: use literal blocks for console commands  docs: ABI: sysfs-class-firmware-attributes: use literal blocks for console commands  ABI: sysfs-bus-usb: use literal block for console commands  docs/ABI: testing: aspeed-uart-routing: use literal block for console commands  docs: kernel-parameters: fix a truncated sentence for preempt=lazy  sched/doc: add a preemption model overview  docs: ABI: TMR manager: use literal blocks for console I/O  Documentation/ABI: IFS: use literal blocks for commands  ABI: sysfs-bus-pci: use literal blocks for commands  docs: translations: pt_BR: add debugging index  ...

            List of files:
            /linux/Makefile</description>
        <pubDate>Wed, 21 Oct 2026 02:38:38 +0200</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>c03c1a14507dfaf8b856c2608f9ac216021fc222 - Linux 7.3</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#c03c1a14507dfaf8b856c2608f9ac216021fc222</link>
        <description>Linux 7.3

            List of files:
            /linux/Makefile</description>
        <pubDate>Mon, 19 Oct 2026 01:14:58 +0200</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>997208ce9f43f01febac956cf9aeffe89945e3c1 - Merge branch &apos;kbuild-next-speedups&apos; into kbuild-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#997208ce9f43f01febac956cf9aeffe89945e3c1</link>
        <description>Merge branch &apos;kbuild-next-speedups&apos; into kbuild-nextThis is the first round of commits and fix-ups from Lorenzo&apos;s Kbuildspeed up series.Signed-off-by: Nathan Chancellor &lt;nathan@kernel.org&gt;

            List of files:
            /linux/Makefile</description>
        <pubDate>Sun, 18 Oct 2026 00:20:23 +0200</pubDate>
        <dc:creator>Nathan Chancellor &lt;nathan@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>969a0af79da8ab33f2887376cb69ace62a9285b0 - Merge tag &apos;pin-init-v7.4&apos; of https://github.com/Rust-for-Linux/linux into rust-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#969a0af79da8ab33f2887376cb69ace62a9285b0</link>
        <description>Merge tag &apos;pin-init-v7.4&apos; of https://github.com/Rust-for-Linux/linux into rust-nextPull pin-init updates from Gary Guo: &quot;User visible changes:   - Support tuple structs.   - Allow safe creation of self references.   - Vastly improve diagnostics for common misuse scenarios.  Other changes:   - Use &apos;mixed_site&apos; hygiene consistently.&quot;Extra context from Gary&apos;s pull request: &quot;This is a cycle packed with feature updates. Two of the most anticipated  features, tuple struct support and safe self reference creation, has been  included in this pull request.  Safe self reference is a big one and is pushed a bit late in the cycle. The  initial plan was to include a minimum subset for this cycle because I was  worried about potential soundness issues; however during Plumbers it was agreed  that the features should be upstreamed at once. This is because the initial  users (Nova, JobQueue) would all need the advanced features, so it is better to  ensure that the feature get put into use for real, and it can iterate with  users, rather than being fully designed on paper. The existing safety checks  are already very comprehensive, and Benno and I are confident that if new ones  are discovered, it wouldn&apos;t affect the overall design.  That said, the the usage of the advanced features (invariance, existential  lifetime) shall be limited to the pre-agreed users only, so even in case where  the feature needs to be reworked, the blast radius is limited.  Another theme in this cycle is to improve the developer experience when things  are used wrongly. A lot of work has been done to use proper spans from  user-provided tokens so error message point to things that cause them. Many  common misuse scenarios also gain additional custom diagnostics.&quot;* tag &apos;pin-init-v7.4&apos; of https://github.com/Rust-for-Linux/linux: (50 commits)  rust: pin-init: internal: suppress `explicit_outlives_requirements`  rust: pin-init: internal: pin_data: support existential lifetimes  rust: pin-init: internal: pin_data: support shared projection  rust: pin-init: internal: pin_data: perform AST lifetime replacement if possible  rust: pin-init: internal: pin_data: complete invariant borrow support  rust: pin-init: internal: pin_data: make field lifetime invariance imply type invariance  rust: pin-init: internal: pin_data: parse explicit `#[uses]` annotation  rust: pin-init: internal: pin_data: support mutable borrows  rust: pin-init: internal: pin_data: parse explicit `#[borrowed]` annotation  rust: pin-init: internal: pin_data: allow lifetime to be shortened per field drop order  rust: pin-init: internal: pin_data: enable self-referential support  rust: pin-init: internal: pin_data: add `with_project` method  rust: pin-init: internal: pin_data: project self-referential fields  rust: pin-init: internal: pin_data: implement initialization of borrowed structs  rust: pin-init: internal: pin_data: check covariance of self-referential fields  rust: pin-init: internal: pin_data: self-referential drop order checks  rust: pin-init: internal: pin_data: teach drop check about generics that cannot dangle  rust: pin-init: internal: pin_data: pin borrowed fields with wrapper  rust: pin-init: internal: pin_data: rewrite fields that borrow others  rust: pin-init: internal: pin_data: infer self-referential struct  ...

            List of files:
            /linux/Makefile</description>
        <pubDate>Mon, 12 Oct 2026 20:56:40 +0200</pubDate>
        <dc:creator>Miguel Ojeda &lt;ojeda@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>24a19b953e2a3d0ea5a8c4951a0ab8f32720c907 - Linux 7.3-rc7</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#24a19b953e2a3d0ea5a8c4951a0ab8f32720c907</link>
        <description>Linux 7.3-rc7

            List of files:
            /linux/Makefile</description>
        <pubDate>Mon, 12 Oct 2026 05:04:55 +0200</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>d45ef897ecf8d34ca25a3772552a8c75260fe5e1 - kbuild: rust: allow `clippy::comparison_chain` globally</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#d45ef897ecf8d34ca25a3772552a8c75260fe5e1</link>
        <description>kbuild: rust: allow `clippy::comparison_chain` globallyThe lint would suggest comparison chains to be converted to match on`Ordering` instead. The suggestions do not always produce more readablecode, and also it can produce false-positive when not all ordering has abranch.The issue is known upstream and thus it has been downgraded from stylelints to pedantic lints, which makes it allow-by-default since Rust 1.87.0.The current kernel MSRV is 1.85.0, and thus the lint still triggers; allowit globally to match the updated upstream behaviour.Link: https://rust-lang.zulipchat.com/#narrow/channel/257328-clippy/topic/demote.20some.20lints.20to.20.60pedantic.60Link: https://rust-lang.github.io/rust-clippy/master/#comparison_chainAcked-by: Benno Lossin &lt;lossin@kernel.org&gt;Acked-by: Miguel Ojeda &lt;ojeda@kernel.org&gt;Link: https://patch.msgid.link/20261008-dev-selfref-v2-1-e280b3c8fba5@garyguo.net/Signed-off-by: Gary Guo &lt;gary@garyguo.net&gt;

            List of files:
            /linux/Makefile</description>
        <pubDate>Thu, 08 Oct 2026 14:15:29 +0200</pubDate>
        <dc:creator>Gary Guo &lt;gary@garyguo.net&gt;</dc:creator>
    </item>
<item>
        <title>a90ee4305c4a5df72c11b31dacfdc76e00fcf78a - Linux 7.3-rc6</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#a90ee4305c4a5df72c11b31dacfdc76e00fcf78a</link>
        <description>Linux 7.3-rc6

            List of files:
            /linux/Makefile</description>
        <pubDate>Sun, 04 Oct 2026 22:45:25 +0200</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>26d665bef44fa15f7551ee1efc19a1df331d6bbc - kbuild: add header check facility as a manually run static analyzer</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#26d665bef44fa15f7551ee1efc19a1df331d6bbc</link>
        <description>kbuild: add header check facility as a manually run static analyzerThere have been various attempts at adding a header test or checkmechanism in the kernel build system. The header check primarilyconsists of ensuring headers are self-contained, have include guards,and, in some cases, pass kernel-doc.The main problems have been:- The dependency tracking creates undesirable artefacts (infamously also  known as disgusting turds) in the build directory.- Gating the feature behind a kconfig option is complicated due to  allyesconfig builds. It&apos;s possible, but requires a verbose and  confusing negative proxy config option.- Naming the dependency tracking files with a dot prefix or placing them  in a dot prefixed subdirectory in the build directory to hide them has  been exceedingly difficult to achieve. (In part due to some Makefiles  building files in subdirectory hierarchies.)- The debate which headers, if any, should really be self-contained is  virtually open-ended.Approach the problem from a slightly different angle. Add a top level&quot;headercheck&quot; static analysis target which you have to explicitly run,and where you have to explicitly state which headers to check:$ make HEADER_CHECK=&quot;(headers|dirs)&quot; headercheckFor example:$ make HEADER_CHECK=&quot;include/drm drivers/gpu/drm/drm_draw_internal.h&quot; headercheckYou can specify multiple path/to/header.h or path/to/dir, relative to$(srctree), where path/to/dir is recursively scanned for any .h files.Add a generic %.header-check rule in scripts/Makefile.build to supportthis. Note that this rule should *not* be used in, say, driver orsubsystem makefile targets, precisely because of the problems listedabove.While this still generates the .header-check dependency trackingartefacts in the build directory, you will only get them as a result ofmanually running &apos;make headercheck&apos;, not as part of the regular build.This approach also allows anyone to check any headers in the tree, withno makefile modification or kconfig changes required. What you do withthe results is up to you, and the header check facility does not enforceanything like it would as part of the regular build.Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;Cc: Nathan Chancellor &lt;nathan@kernel.org&gt;Cc: Nicolas Schier &lt;nsc@kernel.org&gt;Cc: Jason Gunthorpe &lt;jgg@nvidia.com&gt;Cc: Masahiro Yamada &lt;masahiroy@kernel.org&gt;Cc: linux-kbuild@vger.kernel.orgSigned-off-by: Jani Nikula &lt;jani.nikula@intel.com&gt;Tested-by: Randy Dunlap &lt;rdunlap@infradead.org&gt;Acked-by: Randy Dunlap &lt;rdunlap@infradead.org&gt;Link: https://patch.msgid.link/20260915104331.255636-1-jani.nikula@intel.comSigned-off-by: Nathan Chancellor &lt;nathan@kernel.org&gt;

            List of files:
            /linux/Makefile</description>
        <pubDate>Tue, 15 Sep 2026 12:43:31 +0200</pubDate>
        <dc:creator>Jani Nikula &lt;jani.nikula@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>33bef82263082e81406ef5662de2900e24038a78 - kbuild: Move gen_init_cpio and gen_initramfs.sh to scripts/</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#33bef82263082e81406ef5662de2900e24038a78</link>
        <description>kbuild: Move gen_init_cpio and gen_initramfs.sh to scripts/gen_init_cpio and gen_initramfs.sh are part of kbuild and required forall kernel builds w/ CONFIG_BLK_DEV_INITRD.  Move both to scripts/ to bemore clear about their importance.Link: https://lore.kernel.org/all/aSdrCFkUQup3qb-q@derry.ads.avm.de/Reviewed-by: Thomas Wei&#223;schuh &lt;thomas.weissschuh@linutronix.de&gt;Reviewed-by: Nathan Chancellor &lt;nathan@kernel.org&gt;Signed-off-by: Nicolas Schier &lt;nsc@kernel.org&gt;Link: https://patch.msgid.link/20260928-move-gen_init_cpio-to-scripts-v4-2-f437a33c40ac@kernel.orgSigned-off-by: Nathan Chancellor &lt;nathan@kernel.org&gt;

            List of files:
            /linux/Makefile</description>
        <pubDate>Mon, 28 Sep 2026 19:26:58 +0200</pubDate>
        <dc:creator>Nicolas Schier &lt;nsc@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>14e2c1f5431a03478ed4bbf2e72298c769f375ac - kbuild: Mark usr_gen_init_cpio as no-dot-config-target</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#14e2c1f5431a03478ed4bbf2e72298c769f375ac</link>
        <description>kbuild: Mark usr_gen_init_cpio as no-dot-config-targetLet usr/gen_init_cpio be built also if there is no kernel configuration.Askar Safin reported that gen_init_cpio may be of use before any kernelconfiguration is available.  Add usr_gen_init_cpio to list of targetsthat do not require a .config file.Reported-by: Askar Safin &lt;safinaskar@gmail.com&gt;Closes: https://lore.kernel.org/all/20260220191150.244006-1-safinaskar@gmail.comFixes: f8e05c10631e (&quot;kbuild: Add top-level target for building gen_init_cpio&quot;)Signed-off-by: Nicolas Schier &lt;nsc@kernel.org&gt;Link: https://patch.msgid.link/20260928-move-gen_init_cpio-to-scripts-v4-1-f437a33c40ac@kernel.orgSigned-off-by: Nathan Chancellor &lt;nathan@kernel.org&gt;

            List of files:
            /linux/Makefile</description>
        <pubDate>Mon, 28 Sep 2026 19:26:57 +0200</pubDate>
        <dc:creator>Nicolas Schier &lt;nsc@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>72d3fcf802c45d00b300f25b848a93c3a2bd7c7e - Linux 7.3-rc5</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#72d3fcf802c45d00b300f25b848a93c3a2bd7c7e</link>
        <description>Linux 7.3-rc5

            List of files:
            /linux/Makefile</description>
        <pubDate>Sun, 27 Sep 2026 22:55:01 +0200</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>f59db7fb11af62c4c0a686d80f99bf03a305176f - docs: Makefile: Add a testdocs target for the documentation unit tests</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#f59db7fb11af62c4c0a686d80f99bf03a305176f</link>
        <description>docs: Makefile: Add a testdocs target for the documentation unit teststools/unittests/run.py discovers and runs the unit tests there (whichare primarily documentation tools), but nothing in the build calls it,so the tests are only run by whoever remembers that the script is there.Give it a target, next to the other checks that need no Sphinx. The nameends in &quot;docs&quot;, so it matches the &quot;%docs&quot; pattern already inno-dot-config-targets and runs without a configured tree, and it setsPYTHONPYCACHEPREFIX as the other Python targets here do, to keep__pycache__ directories out of the source tree.  $ make testdocs  ...  Ran 121 testswith &quot;make dochelp&quot; listing it between refcheckdocs and cleandocs.Tested with GNU Make 4.4.1 and Python 3.14.7, on a tree with no .config,where it ran 121 tests and left no __pycache__ behind.Assisted-by: LLMSigned-off-by: Kees Cook &lt;kees@kernel.org&gt;Tested-by: Randy Dunlap &lt;rdunlap@infradead.org&gt;Acked-by: Randy Dunlap &lt;rdunlap@infradead.org&gt;Tested-by: Nicolas Schier &lt;n.schier@fritz.com&gt;Reviewed-by: Nicolas Schier &lt;n.schier@fritz.com&gt;Reviewed-by: Breno Leitao &lt;leitao@debian.org&gt;Signed-off-by: Jonathan Corbet &lt;corbet@lwn.net&gt;Message-ID: &lt;20260916184107.i.183-kees@kernel.org&gt;

            List of files:
            /linux/Makefile</description>
        <pubDate>Wed, 16 Sep 2026 20:41:11 +0200</pubDate>
        <dc:creator>Kees Cook &lt;kees@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>48ebe1cbbeb51879ba4d22775fee1654d94d1cc6 - kbuild: compress the kernel with pigz if available</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#48ebe1cbbeb51879ba4d22775fee1654d94d1cc6</link>
        <description>kbuild: compress the kernel with pigz if availableThe gzip step of a kernel build is very lengthy, especially for largerbuilds such as allmodconfig.gzip itself cannot be run in parallel, however an alternative tool existsthat can, providing the same feature set as gzip itself - pigz - whichworks as a drop-in replacement.On a 128-core Threadripper, gzip -9 of a 36 MiB x86-64 vmlinux.bin takes1.6s, and with pigz it takes 0.09s, so the performance increase issignificant.Therefore introduce the KPGZIP build variable which specifies thecompressor to use for the kernel image and default it to pigz if available,or KGZIP otherwise (which itself defaults to gzip).Modules, packaging and the embedded kernel configuration (CONFIG_IKCONFIG)continue to use KGZIP which defaults to a single-threaded gzip instance.Module compression is run in parallel by make, so pigz offers no benefitthere, packaging sits outside the build and the embedded configuration istoo small to matter.pigz is executed using scripts/jobserver-exec, which reserves the job slotsmake has free - necessary, as otherwise pigz would just grab unboundedCPUs.The kernel image compression step is always performed at the end of thebuild so should typically have all job slots available.pigz always provides byte-for-byte identical output across runs regardlessof thread count, but pigz and gzip are not guaranteed to generate the samebinary output, so reproducible builds must use the same tools consistently.Also update Documentation/kbuild/kbuild.rst to describe KPGZIP andDocumentation/process/changes.rst to list the optional pigz dependency.While there, add entries for the other compressor programs.Finally, update scripts/ver_linux to include the pigz version there.Every x86 build ends with the compression of vmlinux.bin, 36MB fordefconfig and over 200MB for allmodconfig, no-op builds are unchanged.Whole build, 128-thread Threadripper 9980X, best of N runs:                                         before   after     delta                                         -------------------------------  x86 defconfig, touch mm/vma.c, gcc        7.7s     6.0s     -1.7s (-22%)  x86 defconfig, touch mm/vma.c, clang      6.9s     5.4s     -1.5s (-21%)  x86 defconfig, clean, gcc                28.2s    26.3s     -1.8s (-6%)  x86 defconfig, clean, clang              28.7s    27.2s     -1.5s (-5%)  x86 allmodconfig, touch mm/vma.c, gcc    23.7s    15.4s     -8.3s (-35%)  x86 allmodconfig, touch mm/vma.c, clang  22.5s    15.6s     -7.0s (-31%)  x86 allmodconfig, clean, gcc            294.1s   278.6s     -15.5s (-5%)  x86 allmodconfig, clean, clang          283.9s   266.8s     -17.1s (-6%)Suggested-by: Kees Cook &lt;kees@kernel.org&gt;Link: https://zlib.net/pigz/Assisted-by: LLMReviewed-by: Manuel Ebner &lt;manuelebnerli@mailbox.org&gt;Reviewed-by: Kees Cook &lt;kees@kernel.org&gt;Signed-off-by: Lorenzo Stoakes (ARM) &lt;ljs@kernel.org&gt;Link: https://patch.msgid.link/20260923-build-speedup-v4-22-73128809a4a4@kernel.orgSigned-off-by: Nathan Chancellor &lt;nathan@kernel.org&gt;

            List of files:
            /linux/Makefile</description>
        <pubDate>Wed, 23 Sep 2026 19:18:11 +0200</pubDate>
        <dc:creator>Lorenzo Stoakes (ARM) &lt;ljs@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>454e00cf8ee5aff555ad5865b8c3dbf3731afcc9 - kbuild: avoid re-running compiler and linker probes</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#454e00cf8ee5aff555ad5865b8c3dbf3731afcc9</link>
        <description>kbuild: avoid re-running compiler and linker probesEach kernel make invocation begins with ~30 compiler and linker runs eachof which performs duplicate probe for a number of compiler and linkeroptions.This is useless work - the compiler and its version is known, so use theseto determine which options are available, once.Using the newly introduced cc-option-str, track the result of each probe inCC_OPT_*, LD_OPT_* variables and have Makefile&apos;s simply append the symbol.Some care has to be taken around negative options, i.e. -Wno-xxx, as gccaccepts an unknown -Wno- without complaint and only complains later, soinstead probe the positive form for these cases.Use CC_HAS_* For those probes that gate a Makefile conditional rather thana simple option, as per the established pattern for this.This change avoids a subtle issue with ppc32 (big endian) - clang doesn&apos;taccept -fno-stack-clash-protection on this sub-target, so keep this optionin the Makefile.With gcc and clang, defconfig and allmodconfig, the recorded commandlines are unchanged, a build with nothing to do rebuilds nothing and W=1continues to function correctly.Doing this improves all builds, but has a particularly positive impact onno-op builds (builds where nothing has changed).Whole build, 128-thread Threadripper 9980X, best of N runs:                                         before   after     delta                                         -------------------------------  x86 defconfig, no-op make, gcc           0.78s    0.60s    -0.18s (-23%)  x86 defconfig, no-op make, clang         0.94s    0.66s    -0.28s (-30%)  x86 defconfig, touch mm/vma.c, gcc        8.6s     8.5s    -0.16s (-2%)  x86 defconfig, touch mm/vma.c, clang      8.0s     7.7s    -0.24s (-3%)  x86 defconfig, clean, clang              29.8s    29.4s    -0.37s (-1%)  x86 allmodconfig, no-op make, gcc        12.9s    12.7s    -0.23s (-2%)  x86 allmodconfig, no-op make, clang      14.2s    13.9s    -0.29s (-2%)  x86 allmodconfig, touch mm/vma.c, clang  32.2s    31.9s    -0.30s (-1%)Assisted-by: LLMSigned-off-by: Lorenzo Stoakes (ARM) &lt;ljs@kernel.org&gt;Link: https://patch.msgid.link/20260923-build-speedup-v4-12-73128809a4a4@kernel.orgSigned-off-by: Nathan Chancellor &lt;nathan@kernel.org&gt;

            List of files:
            /linux/Makefile</description>
        <pubDate>Wed, 23 Sep 2026 19:18:01 +0200</pubDate>
        <dc:creator>Lorenzo Stoakes (ARM) &lt;ljs@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>8050568e0a46f944117970c3969f9316125bc34d - kbuild: only emit vmlinux relocations when required</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#8050568e0a46f944117970c3969f9316125bc34d</link>
        <description>kbuild: only emit vmlinux relocations when requiredA kernel build consists of more than one linking pass on vmlinux.o andvmlinux, at minimum two, and with CONFIG_KALLSYMS and BTF enabled on x86-64for example there are 5 such stages.For architectures that build their own relocation tables (x86, riscv, mips,s390), vmlinux is linked with the --emit-relocs parameter specified.However, this is only required on the final vmlinux link.Symbol tables of trial links preceding it don&apos;t need it because theyalready check that System.map matches kallsyms symbols on each build.GNU ld is slow at emitting relocation tables, so this results in areduction in build time.Whole build, 128-thread Threadripper 9980X, best of N runs:                                         before   after     delta                                         -------------------------------  x86 defconfig, touch mm/vma.c, gcc        9.5s     9.1s    -0.42s (-4%)  x86 defconfig, clean, gcc                30.1s    29.5s    -0.59s (-2%)  x86 allmodconfig, touch mm/vma.c, gcc    37.2s    35.8s     -1.4s (-4%)Note that this has little impact on LLVM ld which performs this operationmore efficiently.Assisted-by: LLMReviewed-by: Nicolas Schier &lt;n.schier@fritz.com&gt;Reviewed-by: Kees Cook &lt;kees@kernel.org&gt;Signed-off-by: Lorenzo Stoakes (ARM) &lt;ljs@kernel.org&gt;Link: https://patch.msgid.link/20260923-build-speedup-v4-6-73128809a4a4@kernel.orgSigned-off-by: Nathan Chancellor &lt;nathan@kernel.org&gt;

            List of files:
            /linux/Makefile</description>
        <pubDate>Wed, 23 Sep 2026 19:17:55 +0200</pubDate>
        <dc:creator>Lorenzo Stoakes (ARM) &lt;ljs@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>93f51579e7df248780214094418f205253383cc5 - Linux 7.3-rc4</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#93f51579e7df248780214094418f205253383cc5</link>
        <description>Linux 7.3-rc4

            List of files:
            /linux/Makefile</description>
        <pubDate>Sun, 20 Sep 2026 22:48:15 +0200</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>c0a50a8604054d83be35a81261de431e4f06dfd0 - Merge tag &apos;kbuild-fixes-7.3-1&apos; into kbuild-next</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#c0a50a8604054d83be35a81261de431e4f06dfd0</link>
        <description>Merge tag &apos;kbuild-fixes-7.3-1&apos; into kbuild-nextFuture changes in kbuild-next depend on  281b61d408d4 (&quot;scripts/mksysmap: drop the MODULE_INFO() symbols from kallsyms&quot;)  59351365ac27 (&quot;scripts/mksysmap: fix escape of &apos;$&apos; in the __pi_ pattern&quot;)from kbuild-fixes.Signed-off-by: Nathan Chancellor &lt;nathan@kernel.org&gt;

            List of files:
            /linux/Makefile</description>
        <pubDate>Fri, 18 Sep 2026 23:21:12 +0200</pubDate>
        <dc:creator>Nathan Chancellor &lt;nathan@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>322b0463f30b0a02180c9528e38c2afb73d20fa0 - kbuild: fix grammar in output Makefile .gitignore generation comment</title>
        <link>http://kernelsources.org:8080/source/history/linux/Makefile#322b0463f30b0a02180c9528e38c2afb73d20fa0</link>
        <description>kbuild: fix grammar in output Makefile .gitignore generation commentFix the grammar in the comment describing the generation of theoutput Makefile .gitignore file.Signed-off-by: Aayansh Ranjan &lt;computergod47@gmail.com&gt;Link: https://patch.msgid.link/20260915062613.13761-1-computergod47@gmail.comSigned-off-by: Nathan Chancellor &lt;nathan@kernel.org&gt;

            List of files:
            /linux/Makefile</description>
        <pubDate>Tue, 15 Sep 2026 08:26:13 +0200</pubDate>
        <dc:creator>Aayansh Ranjan &lt;computergod47@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
