Re: Tuple and changes for m68k with -malign-int

Antonio Vargas Gonzalez <[email protected]>
Newsgroups gmane.linux.ports.m68k,gmane.comp.lib.glibc.user,gmane.linux.debian.ports.68k
Message-ID <CA+OL9jj_s3ek-_4fp5b5uq-Fxmdu3NpenW10RWkiPX8Jtmxq=A@mail.gmail.com>
On Sun, May 18, 2025 at 9:09 AM John Paul Adrian Glaubitz
<[email protected]> wrote:
>
> Hi James,
>
> On Sat, 2023-08-26 at 09:53 +0100, James Le Cuirot wrote:
> > Once that is agreed, I'm happy to put together the patch to automatically
> > enable the flag for this tuple in GCC. The part I do need help with is
> > necessary changes to glibc, if any. Assembly is not my area at all, so what I
> > came up with here was a total guess.
> >
> >
> > --- a/sysdeps/m68k/crti.S       2022-07-29 23:03:09.000000000 +0100
> > +++ b/sysdeps/m68k/crti.S       2022-11-30 21:41:52.710135230 +0000
> > @@ -56,7 +56,7 @@
> >  #endif
> >
> >         .section .init,"ax",@progbits
> > -       .align  2
> > +       .p2align        2
> >         .globl  _init
> >         .hidden _init
> >         .type   _init, @function
> > @@ -74,7 +74,7 @@
> >  #endif
> >
> >         .section .fini,"ax",@progbits
> > -       .align  2
> > +       .p2align        2
> >         .globl  _fini
> >         .hidden _fini
> >         .type   _fini, @function
> >
> >
> > I did try this out, and it largely seemed to work, although processes
> > occasionally hung. Perhaps this was unrelated.
>
> I was just looking at the necessary changes to switch m68k to 32-bit alignment
> and I'm not sure we need to do anything about glibc. I am documenting my current
> findings here [1].
>
> What I have found out so far is that official ELF ABI documentation from AT&T
> mandates a default alignment of four bytes and any SVR4-based distribution such
> as Amiga Unix and NetBSD/ELF actually adheres to that. Why Linux uses a 2 bytes
> alignment when the official ELF ABI documentation clearly says 4 bytes, remains
> a mystery to me.

It correlates with the default in AmigaOS, which was originally
optimized to fit in 256K of RAM.

> I'm not even sure whether we would have to change the target triplet since the
> current implementation for Linux is actually violating the standard and any
> application adhering to spec written for Linux ELF m68k would actually not work.
>
> Anyway, looking at crti.s for other 32-bit architectures such as powerpc, I'm not
> sure we actually need to do anything about glibc. I think just changing the
> default value for BIGGEST_ALIGNMENT from 16 to 64 similar to NetBSD/ELF in GCC
> should be enough, shouldn't it?
>
> Adrian
>
> > [1] https://wiki.debian.org/M68k/Alignment
>
> --
>  .''`.  John Paul Adrian Glaubitz
> : :' :  Debian Developer
> `. `'   Physicist
>   `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
>


-- 
Antonio Vargas Gonzalez | winden ^ capsule ^ rgba ^ network ^
batman.group | +windenntw | [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.