Some __nonstring__ Turbulence
The release of the 6.15-rc3 kernel faced issues from new GCC 15 warnings, leading to last-minute changes by Linus Torvalds that broke compatibility, prompting discussions on kernel development practices and testing.
Read original articleThe recent release of the 6.15-rc3 kernel has highlighted issues arising from the introduction of new compiler warnings in GCC 15, particularly the -Wunterminated-string-initialization warning. This warning aims to help developers identify potential bugs related to string initialization in C, but it has also caused disruptions in the development process. Linus Torvalds updated his development environment to Fedora 42, which includes a pre-release version of GCC 15, just before tagging the kernel release. This led to build failures due to unaddressed warnings, prompting Torvalds to implement last-minute changes to the kernel. However, these changes inadvertently broke compatibility with earlier GCC versions, causing frustration among developers. Kees Cook, who has been working on addressing the new warnings, expressed dissatisfaction with the lack of coordination and the rushed nature of the changes. The situation has sparked a debate about the development process within the kernel community, particularly regarding the need for better testing and review practices. Torvalds and Cook have differing views on how to handle the __nonstring__ attribute, which is intended to indicate that certain char arrays do not require a trailing NUL byte. The ongoing discussions reflect broader concerns about the kernel's development practices and the impact of compiler updates on the community.
- The introduction of new compiler warnings in GCC 15 has caused disruptions in kernel development.
- Linus Torvalds made last-minute changes to the kernel to address build failures, which broke compatibility with earlier GCC versions.
- Kees Cook criticized the lack of coordination and rushed changes, highlighting the need for better testing practices.
- The situation has sparked discussions about the kernel's development process and the handling of compiler updates.
- There are differing opinions on the implementation of the __nonstring__ attribute within the kernel community.
Related
Linus Torvalds began to regret accepting Bcachefs into the Linux kernel
Linus Torvalds criticized recent bcachefs fixes for the 6.11-rc5 kernel, noting their size, lack of regression fixes, and potential unsuitability for the mainline kernel due to stability concerns.
Linus and Dirk on succession, Rust, and more
At the Open Source Summit Europe, Linus Torvalds and Dirk Hohndel discussed Linux kernel development, the integration of Rust, and succession planning, highlighting new developers' potential to ensure project continuity.
Bcachefs Fixes Pull Once Again Frustrates Linus Torvalds
Linus Torvalds criticized the Bcachefs file system's development, urging better collaboration or removal from the kernel, amid ongoing disputes about testing, communication, and community involvement in open-source projects.
Intel, AMD engineers rush to save Linux 6.13 after dodgy Microsoft code change
Intel and AMD engineers addressed a problematic Microsoft code change that jeopardized the Linux 6.13 kernel's stability, highlighting quality control issues and oversight concerns in the code review process.
Intel, AMD engineers rush to save Linux 6.13 after dodgy Microsoft code change
Intel and AMD engineers addressed a problematic Microsoft code change that jeopardized the Linux 6.13 kernel's stability, emphasizing the need for improved quality control and oversight in collaborative software development.
I admire Kees Cook's patience.
> C "strings" work the way they do because C is a low level language, where you want to be able to do low-level things when necessary. It's a feature, not a deficiency.
Are NUL-terminated strings really considered preferable, even for low-level work? I always just considered them an unfortunate design choice C was stuck with.
Many O(1) operations/checks become O(n) because you have to linearly traverse the entire string (or keep a second pointer) to know where it ends/how long it is; you can't take a substring within another string without reallocating and copying that part over with a new NUL appended at the end; you can't store data that may contain a NUL (which text shouldn't, in theory, but then you need a separate approach for binary data); and plenty of security issues arise from missing or extra NULs.
Unless either the older GCC or the beta GCC isn't "official"? In which case that's not necessarily expected to be picked up in an RC?
Related
Linus Torvalds began to regret accepting Bcachefs into the Linux kernel
Linus Torvalds criticized recent bcachefs fixes for the 6.11-rc5 kernel, noting their size, lack of regression fixes, and potential unsuitability for the mainline kernel due to stability concerns.
Linus and Dirk on succession, Rust, and more
At the Open Source Summit Europe, Linus Torvalds and Dirk Hohndel discussed Linux kernel development, the integration of Rust, and succession planning, highlighting new developers' potential to ensure project continuity.
Bcachefs Fixes Pull Once Again Frustrates Linus Torvalds
Linus Torvalds criticized the Bcachefs file system's development, urging better collaboration or removal from the kernel, amid ongoing disputes about testing, communication, and community involvement in open-source projects.
Intel, AMD engineers rush to save Linux 6.13 after dodgy Microsoft code change
Intel and AMD engineers addressed a problematic Microsoft code change that jeopardized the Linux 6.13 kernel's stability, highlighting quality control issues and oversight concerns in the code review process.
Intel, AMD engineers rush to save Linux 6.13 after dodgy Microsoft code change
Intel and AMD engineers addressed a problematic Microsoft code change that jeopardized the Linux 6.13 kernel's stability, emphasizing the need for improved quality control and oversight in collaborative software development.