On Fri, 2025-06-06 at 20:20 +1000, Finn Thain wrote: > Whereas, the ability to use old binaries is proof that we care about rule > #1 don't break userspace.
Who is "we"? The official(!) ABI says that pointers are supposed to be aligned with 4 bytes, not 2 bytes. It's the current implementation that violates the ABI, not what I want to achieve which is make Linux/m68k adhere to the official specification. Furthermore, we're still talking about a hobbyist platform here which hasn't been in production use for more than ten years. It doesn't really matter whether we break the ABI or not. And it's not like there isn't strong case for making this change. As I have tirelessly explained, the current port with 2 bytes alignment is simply no longer feasible since an increasing number of packages either require 4 bytes alignment or require Rust. These include more and more fundamental packages such as coreutils, the kernel or various Python packages such as python-cryptography. It's simply not an option to continue on the current path as it has become a dead-end. I don't see the point in maintaining something that becomes increasingly useless because more and more packages are no longer buildable. If kernel people think that usefulness is already established when you can boot busybox and type some commands, then you might be able to continue on that path. But I'm a distribution maintainer and distributions consist of way more packages than the kernel, busybox and the toolchain. And even the toolchain doesn't even fully build on Linux/m68k anymore because it requires 4 bytes alignment for LLVM, gccgo and mold. So, whatever we currently have that we would break compatibility with, I do not think that it's worth the effort to keep it alive. > Having said that, I agree that there is scope for a better ABI. > Users/developers will eventually want solutions to the Y2038 problem. This has already been addressed in Debian and surprisingly, no started a fight over it. I don't see why it shouldn't be possible to do the same with the alignment. We have the full source available. We can rebuild everything and I have already created an initial 4 bytes alignment bootstrap with the help of Helmut Grohne's fantastic rebootstrap project. So far, it works as expected and multiple packages that previously didn't build because of the 2 bytes alignment, just built fine and without any further patches. This is exactly what I want. > > > BTW, looking into the history of __ADDR_BND_PKEY_PAD() (which is > > > overkill on m68k, as __alignof__(void *) = 2, but might still be > > > useful for anyone wanting to revive CRIS support ;-), I ran into > > > Andreas' explanation why the minimal alignment is still 2 bytes: > > > https://lore.kernel.org/all/[email protected]/. > > > > This post just proves that it's always a bad idea to keep historical > > burden instead of fixing it. > > > > Again, can you please bring up a convincing argument why it would be a > > hard problem to break the ABI for Linux on 40-year-old hardware? And who > > would be affected by it? > > > > I think Arnd already answered those questions: > https://lore.kernel.org/all/[email protected]/ > > Moreover, "what's wrong with my idea" is the wrong question. The right > question is, "what's wrong with my patches?" Finn, again, you haven't contributed any useful input to help alleviate the original problem. I don't really understand why you think it's acceptable to constantly bombard my efforts with such comments. How does this help? Please re-read what John Klos wrote on this matter as he already pointed out why your comments to this discussion aren't moving us any further here. > > The ABI isn't set in stone and if need to break it to fix fundamental > > problems, then be it. > > Well, that's a value judgement you're free to make regarding your systems. > It's easy to find fault in other peoples' systems but it's also pointless. > It won't get us closer to a consensus that will hold for another 30 years. I'm not seeing how violating the official ABI was ever agreed upon. It seems that Andreas took this decision in his own hand while the NetBSD people were courageous enough to switch the default alignment when switching the executable format. Adrian -- .''`. John Paul Adrian Glaubitz : :' : Debian Developer `. `' Physicist `- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913

