musl: update to 1.1.23.

This commit is contained in:
Enno Boland 2019-07-18 14:40:54 +02:00 committed by Enno Boland
parent 1c329cbfe8
commit 54099d7560
3 changed files with 3 additions and 77 deletions

View file

@ -1,45 +0,0 @@
commit 3c59a868956636bc8adafb1b168d090897692532
Author: Rich Felker <dalias@aerifal.cx>
Date: Wed May 22 15:17:12 2019 -0400
fix vrregset_t layout and member naming on powerpc64
the mistaken layout seems to have been adapted from 32-bit powerpc,
where vscr and vrsave are packed into the same 128-bit slot in a way
that looks like it relies on non-overlapping-ness of the value bits in
big endian.
the powerpc64 port accounted for the fact that the 64-bit ABI puts
each in its own 128-bit slot, but ordered them incorrectly (matching
the bit order used on the 32-bit ABI), and failed to account for vscr
being padded according to endianness so that it can be accessed via
vector moves.
in addition to ABI layout, our definition used different logical
member layout/naming from glibc, where vscr is a structure to
facilitate access as a 32-bit word or a 128-bit vector. the
inconsistency here was unintentional, so fix it.
diff --git a/arch/powerpc64/bits/signal.h b/arch/powerpc64/bits/signal.h
index 34693a68..94c7a327 100644
--- arch/powerpc64/bits/signal.h
+++ arch/powerpc64/bits/signal.h
@@ -17,10 +17,14 @@ typedef struct {
typedef struct {
unsigned __int128 vrregs[32];
- unsigned _pad[3];
- unsigned vrsave;
- unsigned vscr;
- unsigned _pad2[3];
+ struct {
+#if __BIG_ENDIAN__
+ unsigned _pad[3], vscr_word;
+#else
+ unsigned vscr_word, _pad[3];
+#endif
+ } vscr;
+ unsigned vrsave, _pad[3];
} vrregset_t;
typedef struct sigcontext {

View file

@ -1,29 +0,0 @@
commit ac304227bb3ea1787d581f17d76a5f5f3abff51f
Author: Rich Felker <dalias@aerifal.cx>
Date: Wed May 22 18:28:32 2019 -0400
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
--- arch/powerpc64/bits/signal.h
+++ 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;

View file

@ -1,7 +1,7 @@
# Template file for 'musl'.
pkgname=musl
version=1.1.22
revision=4
version=1.1.23
revision=1
archs="*-musl"
build_style=gnu-configure
configure_args="--prefix=/usr --disable-gcc-wrapper"
@ -12,7 +12,7 @@ maintainer="Juan RP <xtraeme@voidlinux.org>"
license="MIT"
homepage="http://www.musl-libc.org/"
distfiles="http://www.musl-libc.org/releases/musl-${version}.tar.gz"
checksum=8b0941a48d2f980fd7036cfbd24aa1d414f03d9a0652ecbd5ec5c7ff1bee29e3
checksum=8a0feb41cef26c97dde382c014e68b9bb335c094bbc1356f6edaaf6b79bd14aa
nostrip_files="libc.so"
shlib_provides="libc.so"