On m68k, we see a lot of failures, usually in tests, arising from the fact that it aligns to 16-bit, by default. It is currently impossible to build or run LLVM. Aligning to 32-bit would make it far more compatible with other architectures. Debian are planning to do the same. I gather adjustments to glibc will be required. From the gcc man page: -malign-int -mno-align-int Control whether GCC aligns "int", "long", "long long", "float", "double", and "long double" variables on a 32-bit boundary (-malign-int) or a 16-bit boundary (-mno-align-int). Aligning variables on 32-bit boundaries produces code that runs somewhat faster on processors with 32-bit busses at the expense of more memory. Warning: if you use the -malign-int switch, GCC aligns structures containing the above types differently than most published application binary interface specifications for the m68k. This is followed by this paragraph, although I think it is a formatting error and it really belongs to the -mpcrel option: Use the pc-relative addressing mode of the 68000 directly, instead of using a global offset table. At present, this option implies -fpic, allowing at most a 16-bit offset for pc-relative addressing. -fPIC is not presently supported with -mpcrel, though this could be supported for 68020 and higher processors.
Just a note to say I've experimented with this, and it works quite well, aside from the occasional process spinning on the CPU. My glibc changes were pure guesswork. :)
(In reply to James Le Cuirot from comment #1) > Just a note to say I've experimented with this, and it works quite well, > aside from the occasional process spinning on the CPU. My glibc changes were > pure guesswork. :) So what's your plan here?
(In reply to Andreas K. Hüttel from comment #2) > So what's your plan here? Finally get around sending this: https://sourceware.org/pipermail/libc-help/2023-August/006438.html Now I have. :)