linux-m68k.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Finn Thain <fthain@linux-m68k.org>
To: Thorsten Glaser <tg@debian.org>
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
	 linux-m68k <linux-m68k@vger.kernel.org>,
	 debian-68k <debian-68k@lists.debian.org>,
	 James Le Cuirot <chewi@aura-online.co.uk>,
	Sam James <sam@gentoo.org>,
	 Geert Uytterhoeven <geert@linux-m68k.org>,
	 Andreas Schwab <schwab@linux-m68k.org>,
	Arnd Bergmann <arnd@arndb.de>
Subject: Re: Plan needed for switching m68k to 32-bit alignment
Date: Sun, 27 Oct 2024 17:16:11 +1100 (AEDT)	[thread overview]
Message-ID: <b9ef3e70-6ee0-3e4f-185c-afaa8f512792@linux-m68k.org> (raw)
In-Reply-To: <Pine.BSM.4.64L.2410270420080.3007@herc.mirbsd.org>

[-- Attachment #1: Type: text/plain, Size: 1827 bytes --]


On Sun, 27 Oct 2024, Thorsten Glaser wrote:

> Finn Thain dixit:
> 
> >That would mean __alignof__(foo.b) == sizeof(foo.b) but that's not the
> >case on my Linux/i686 system. 4 != 8:
> >
> >struct baa {
> >        int a;
> >        long long b;
> >} foo;
> 
> That struct is just 12 bytes for you then?
> 

Right. i686 and m68k agree on that.

> That’s possible on i386 but almost nowhere else, and has multiple
> penalties on i386 even (cacheline split, loss of atomicity, merging
> of accesses, possible cross-page split, …).
> 

Well, the GCC manual says the Power architecture also has ABI variants 
with differing alignment rules.

https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/RS_002f6000-and-PowerPC-Options.html#index-malign-natural
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-malign-data-1
https://gcc.gnu.org/onlinedocs/gcc-14.2.0/gcc/x86-Options.html#index-malign-double

> Of course, in this case, the software author ought to have made the 
> padding explicit or, better, sorted the struct members. But if all did 
> that we wouldn’t have this problem.
> 

Right. And I don't think the problem is going to go away. One solution 
that is sometimes raised is better tooling. I'm not sure how that would 
work. Perhaps a better solution would be language changes to allow a 
struct definition to be qualified with an explicit data model.

> >> More importantly, and relevant for Qt, struct baa is also 8-byte 
> >> aligned...
> >
> >If the struct itself is not naturally aligned, it too will eventually 
> >break someone's assumption of natural alignment.
> 
> No, structs are not naturally aligned but aligned to the max() of the 
> alignment of its members. Natural alignment is only applied to primitive 
> types.
> 

Makes sense.

  reply	other threads:[~2024-10-27  6:16 UTC|newest]

Thread overview: 71+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-25  6:48 Plan needed for switching m68k to 32-bit alignment John Paul Adrian Glaubitz
2024-10-25  9:06 ` Finn Thain
2024-10-25  9:18   ` John Paul Adrian Glaubitz
2024-10-26  7:31     ` Finn Thain
2024-10-26 22:04       ` Thorsten Glaser
2024-10-27  2:49         ` Finn Thain
2024-10-27  3:08           ` Thorsten Glaser
2024-10-27  3:47             ` Finn Thain
2024-10-27  4:23               ` Thorsten Glaser
2024-10-27  6:16                 ` Finn Thain [this message]
2024-10-27 13:15                   ` Arnd Bergmann
2024-10-28  3:07                     ` Thorsten Glaser
2024-10-28  4:51                       ` Finn Thain
2024-10-28  8:09                         ` John Paul Adrian Glaubitz
2024-10-28  8:49                           ` Finn Thain
2024-11-13 12:53                             ` John Paul Adrian Glaubitz
2024-10-28  8:03                       ` John Paul Adrian Glaubitz
2024-10-28  8:44                         ` Finn Thain
2024-11-13 12:51                           ` John Paul Adrian Glaubitz
2024-10-28  7:58                     ` John Paul Adrian Glaubitz
2024-10-28  7:55                   ` John Paul Adrian Glaubitz
2024-11-14 16:29                   ` Geert Uytterhoeven
2024-11-15  0:24                     ` Finn Thain
2024-11-15  1:24                       ` Thorsten Glaser
2024-11-15  1:31                         ` Thorsten Glaser
2024-10-28  7:53               ` John Paul Adrian Glaubitz
2024-10-28  7:49             ` John Paul Adrian Glaubitz
2024-10-28  7:47           ` John Paul Adrian Glaubitz
2024-10-28  8:40             ` Finn Thain
2024-11-13 12:50               ` John Paul Adrian Glaubitz
2024-11-13 22:01                 ` Finn Thain
2024-10-28  7:43         ` John Paul Adrian Glaubitz
2024-10-28  7:40       ` John Paul Adrian Glaubitz
2024-10-28  8:29         ` Finn Thain
2024-11-13 12:47           ` John Paul Adrian Glaubitz
2024-11-13 22:52             ` Finn Thain
2024-10-25  9:55 ` Arnd Bergmann
2024-10-25 10:10   ` John Paul Adrian Glaubitz
2024-10-25 10:50     ` Arnd Bergmann
2024-10-25 15:07       ` Andreas Schwab
2024-10-28  7:24         ` John Paul Adrian Glaubitz
2024-10-25 21:38     ` Thorsten Glaser
2024-10-25 22:24       ` Andreas Schwab
2024-10-25 23:42         ` Thorsten Glaser
2024-10-27 13:03           ` Greg Ungerer
2024-10-27 12:58         ` Arnd Bergmann
2024-10-28  3:19           ` Thorsten Glaser
2024-10-28  3:54             ` Greg Ungerer
2024-10-28  7:57           ` John Paul Adrian Glaubitz
2024-10-28  7:30         ` John Paul Adrian Glaubitz
2024-10-26 10:46       ` Geert Uytterhoeven
2024-10-28  7:41         ` John Paul Adrian Glaubitz
2024-10-28  7:26       ` John Paul Adrian Glaubitz
2024-11-14 19:46       ` Geert Uytterhoeven
2024-11-14 22:13         ` Thorsten Glaser
2024-11-14 22:37           ` James Le Cuirot
2024-10-28 18:57   ` Michael Schmitz
2024-10-29  3:39     ` Finn Thain
2024-11-13 12:58       ` John Paul Adrian Glaubitz
2024-11-13 23:12         ` Finn Thain
2024-11-13 12:54     ` John Paul Adrian Glaubitz
2024-11-13 18:36       ` Michael Schmitz
2024-11-13 19:55         ` John Paul Adrian Glaubitz
2024-11-13 20:48           ` Stan Johnson
2024-11-13 21:01             ` John Paul Adrian Glaubitz
2024-11-14 18:07               ` Stan Johnson
2024-11-14 19:28                 ` Geert Uytterhoeven
2024-11-13 20:49           ` John Paul Adrian Glaubitz
2024-11-13 21:33           ` Thorsten Glaser
2024-11-13 23:34             ` Finn Thain
2024-11-14 19:32           ` Geert Uytterhoeven

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b9ef3e70-6ee0-3e4f-185c-afaa8f512792@linux-m68k.org \
    --to=fthain@linux-m68k.org \
    --cc=arnd@arndb.de \
    --cc=chewi@aura-online.co.uk \
    --cc=debian-68k@lists.debian.org \
    --cc=geert@linux-m68k.org \
    --cc=glaubitz@physik.fu-berlin.de \
    --cc=linux-m68k@vger.kernel.org \
    --cc=sam@gentoo.org \
    --cc=schwab@linux-m68k.org \
    --cc=tg@debian.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).