Re: [PATCH 1/3] struct packed: Use gcc_struct on Windows

Eli Zaretskii via Gdb-patches
2022-07-21T17:41:05Z

> Cc: gdb-patches@sourceware.org
> From: Pedro Alves <pedro@palves.net>
> Date: Thu, 21 Jul 2022 18:05:55 +0100
>
> On 2022-07-21 5:03 p.m., Eli Zaretskii wrote:
> >> From: Pedro Alves <pedro@palves.net>
> >> Date: Thu, 21 Jul 2022 16:21:30 +0100
> >>
> >> The issue is that mingw gcc defaults to "-mms-bitfields", which
> >> affects how bitfields are laid out. We can however tell GCC that we
> >> want the regular GCC layout instead using attribute gcc_struct.
> >
> > Is that a good idea? It means the code emitted by GCC for this source
> > file will be incompatible with any other library compiled with MinGW
> > that GDB uses. So we are risking ABI incompatibilities here. Right?
> >
>
> No. The attribute only changes the layout of that particular structure.

And we are 110% sure that structure will never be passed to any other
code?

> > Can you tell why we must have the regular GCC layout of bitfields
> > here?
>
> Because without it the struct won't really be packed.

Can you tell why is that necessary?

In any case, I'm very uneasy about changes that break ABI
compatibility between parts of a program.