On Tue, Jul 08, 2014 at 01:08:27PM +0100, Marcus Shawcroft wrote:
> >> float64_t, as per ACLE - the error mentioned in the "Caveats" section at
> >> https://gcc.gnu.org/gcc-4.9/changes.html.
> 
> ... along with a statement that this would be fixed....
> 
> Clearly the ABI change between 4.9.0 and 4.9.1 is not ideal, however
> the X1 vectors are relatively corner case. Given that this a
> relatively new port and we don;t expect many folks to be using this
> type in production yet. A number of folk are waiting on 4.9.1 before
> they switch to 4.9, some of those folks are likely to be users of the
> intrinsics and x1 vectors.  I'd like to see these changes taken now
> between 4.9.0 and 4.9.1 rather than take the pain between 4.9.x and
> 4.10 when we will have a significantly bigger deployed user base.

Many people are using different patch levels interchangeably and expect
them to be compatible.  If X1 vectors are relatively rare, the better,
fewer people will be affected when switching from 4.9.x to 4.10.x.

But IMHO changing ABI between patchlevels, at least when the ABI is not
inconsistent (we had in the past cases where e.g. caller and callee didn't
agree where to pass some argument even when using the same compiler, then
obviously no working code can use those and it can be fixed), is a very bad
idea.  My strong preference is to maintain ABI compatibility between
patchlevel versions.

Just add a -Wps-abi warning to 4.10 when you encounter this (look at what
e.g. x86_64 does).  You can also add a warning to 4.9.1 that next GCC
version will change ABI for passing those.

        Jakub

Reply via email to