¿Hasta qué punto el Itanium ABI realmente especifica el relleno y la alineación?

Me han dicho:

[ABIs] garantiza el diseño exacto de la estructura, el desplazamiento de bytes de cada miembro, qué bits se utilizan para los campos de bits, dónde y cuánto relleno hay, etc.

Pero siempre he creído que el relleno y la alineación no estaban especificados y no eran confiables.

Haceel itanium abi (que utiliza GCC), de hecho, especifique estas cosas (en la medida en queI Puedo decir,no parece más allá de especificar rangos)?

Y si lo hace, ¿cómo opciones como__attribute__ ((packed)) encaja en eso? ¿Al final rompen el ABI al alterar la alineación de las cosas?

O, como lo indica la cita, está empaquetando simplemente sin especificar entre cadenas de herramientas pero de hecho es confiable yprevisible ¿Dentro del uso de un determinado ABI? Y luego, de nuevo, ¿cómo hace algo como__attribute__ ((packed)) encaja en eso?

Respuestas a la pregunta(2)

Su respuesta a la pregunta