From: Rich Felker Date: Wed, 22 May 2019 22:28:32 +0000 (-0400) Subject: make powerpc64 vrregset_t logical layout match expected API X-Git-Tag: v1.1.23~34 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=ac304227bb3ea1787d581f17d76a5f5f3abff51f;p=oweals%2Fmusl.git make powerpc64 vrregset_t logical layout match expected API between v2 and v3 of the powerpc64 port patch, the change was made from a 32x4 array of 32-bit unsigned ints for vrregs[] to a 32-element array of __int128. this mismatches the API applications working with mcontext_t expect from glibc, and seems to have been motivated by a misinterpretation of a comment on how aarch64 did things as a suggestion to do the same on powerpc64. --- diff --git a/arch/powerpc64/bits/signal.h b/arch/powerpc64/bits/signal.h index 94c7a327..2cc0604c 100644 --- a/arch/powerpc64/bits/signal.h +++ b/arch/powerpc64/bits/signal.h @@ -16,7 +16,10 @@ typedef struct { } fpregset_t; typedef struct { - unsigned __int128 vrregs[32]; +#ifdef __GNUC__ + __attribute__((__aligned__(16))) +#endif + unsigned vrregs[32][4]; struct { #if __BIG_ENDIAN__ unsigned _pad[3], vscr_word;