This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, rs6000] Fix aggregate alignment ABI issue
- From: Mike Stump <mikestump at comcast dot net>
- To: Eric Christopher <echristo at gmail dot com>
- Cc: David Edelsohn <dje dot gcc at gmail dot com>, Ulrich Weigand <uweigand at de dot ibm dot com>, Dominique Dhumieres <dominiq at lps dot ens dot fr>, Jack Howarth <howarth at bromo dot med dot uc dot edu>, GCC Patches <gcc-patches at gcc dot gnu dot org>, "William J. Schmidt" <wschmidt at linux dot vnet dot ibm dot com>, Iain Sandoe <iain at codesourcery dot com>
- Date: Wed, 9 Jul 2014 12:01:16 -0700
- Subject: Re: [PATCH, rs6000] Fix aggregate alignment ABI issue
- Authentication-results: sourceware.org; auth=none
- References: <201407091604 dot s69G4qnj020440 at d06av02 dot portsmouth dot uk dot ibm dot com> <CAGWvnykpMBFRs_vy6MhujPmebAyg_kdiWKt-gQ8ywCxqLkyz3Q at mail dot gmail dot com> <CALehDX4BxW9OPvh1c3WBw6EoFBGq8g+gg7HQPb_ULmMxY13Fow at mail dot gmail dot com>
On Jul 9, 2014, at 11:29 AM, Eric Christopher <echristo@gmail.com> wrote:
>>> - The change only affects rare cases: passing a struct by value that is
>>> * not a float/vector special case, and
>>> * has a size of 1, 2, 4, 8, or 16 bytes, and
>>> * has an alignment requirement of 16 bytes or more
>> I copied the Darwin maintainers and active testers so that they are
>> explicitly aware of the ABI issue. They can decide if they want to fix
>> the ABI alignment issue on Darwin.
> Thanks David, In general I'd personally prefer to fix the ABI issues,
> but PPC darwin is beyond EoL by the original company and I don't have
> any hardware for it myself - in which case I'll leave it up to our
> more active testers or someone with hardware. (Mike? Have old ppc
> hardware sitting around?)
Well, I think from a safety perspective I think it is ok, as the system header files and most libraries I would expect not to align to 16 bytes or more. The problem with this line of thinking, it only takes 1 structure, in one place that is used often (stat, X11) to completely kill things. Normally I would do a world build with the change in it, and a fink build with it in it, and if no changes occur, the change is reasonably safe. I don’t have the machines/system to do either unfortunately. I had been testing ppc with emulation, so I can’t do much of that anymore either.
So, I think I will punt to the users that still have G5 darwin, they know who they are… I’d say, lets leave it as is, and if they think it is a good idea as well (that would make it 3 of 3) and can do a test suite run at least with the change, then I’d approve it.