Merge pull request #536 from stilor/musl-update

Musl update to 1.1.16
This commit is contained in:
Alexey Neyman 2017-01-16 09:01:44 -08:00 committed by GitHub
commit 2b2c496f2a
4 changed files with 12 additions and 298 deletions

View File

@ -53,17 +53,23 @@ choice
# Don't remove next line
# CT_INSERT_VERSION_BELOW
config LIBC_MUSL_V_1_1
config LIBC_MUSL_V_1_1_16
bool
prompt "1.1.15 (Mainline)"
prompt "1.1.16"
depends on EXPERIMENTAL
config LIBC_MUSL_V_1_1_15
bool
prompt "1.1.15 (OBSOLETE)"
depends on EXPERIMENTAL && OBSOLETE
endchoice
config LIBC_VERSION
string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
default "1.1.15" if LIBC_MUSL_V_1_1
default "1.1.16" if LIBC_MUSL_V_1_1_16
default "1.1.15" if LIBC_MUSL_V_1_1_15
endif # ! LIBC_MUSL_CUSTOM

View File

@ -1,140 +0,0 @@
From 321f4fa9067185aa6bb47403dfba46e8cfe917d3 Mon Sep 17 00:00:00 2001
From: Rich Felker <dalias@aerifal.cx>
Date: Wed, 20 Aug 2014 21:20:14 +0000
Subject: add max_align_t definition for C11 and C++11
unfortunately this needs to be able to vary by arch, because of a huge
mess GCC made: the GCC definition, which became the ABI, depends on
quirks in GCC's definition of __alignof__, which does not match the
formal alignment of the type.
GCC's __alignof__ unexpectedly exposes the an implementation detail,
its "preferred alignment" for the type, rather than the formal/ABI
alignment of the type, which it only actually uses in structures. on
most archs the two values are the same, but on some (at least i386)
the preferred alignment is greater than the ABI alignment.
I considered using _Alignas(8) unconditionally, but on at least one
arch (or1k), the alignment of max_align_t with GCC's definition is
only 4 (even the "preferred alignment" for these types is only 4).
[bryanhundven@gmail.com: remove the or1k hunk]
[yann.morin.1998@free.fr: add the commit log]
diff --git a/arch/arm/bits/alltypes.h.in b/arch/arm/bits/alltypes.h.in
index bd23a6a..3482874 100644
--- a/arch/arm/bits/alltypes.h.in
+++ b/arch/arm/bits/alltypes.h.in
@@ -13,6 +13,8 @@ TYPEDEF unsigned wint_t;
TYPEDEF float float_t;
TYPEDEF double double_t;
+TYPEDEF struct { long long __ll; long double __ld; } max_align_t;
+
TYPEDEF long time_t;
TYPEDEF long suseconds_t;
diff --git a/arch/i386/bits/alltypes.h.in b/arch/i386/bits/alltypes.h.in
index efd2c07..8a62c80 100644
--- a/arch/i386/bits/alltypes.h.in
+++ b/arch/i386/bits/alltypes.h.in
@@ -27,6 +27,8 @@ TYPEDEF long double float_t;
TYPEDEF long double double_t;
#endif
+TYPEDEF struct { _Alignas(8) long long __ll; long double __ld; } max_align_t;
+
TYPEDEF long time_t;
TYPEDEF long suseconds_t;
diff --git a/arch/microblaze/bits/alltypes.h.in b/arch/microblaze/bits/alltypes.h.in
index 6bd7942..27006b0 100644
--- a/arch/microblaze/bits/alltypes.h.in
+++ b/arch/microblaze/bits/alltypes.h.in
@@ -13,6 +13,8 @@ TYPEDEF unsigned wint_t;
TYPEDEF float float_t;
TYPEDEF double double_t;
+TYPEDEF struct { long long __ll; long double __ld; } max_align_t;
+
TYPEDEF long time_t;
TYPEDEF long suseconds_t;
diff --git a/arch/mips/bits/alltypes.h.in b/arch/mips/bits/alltypes.h.in
index 6bd7942..27006b0 100644
--- a/arch/mips/bits/alltypes.h.in
+++ b/arch/mips/bits/alltypes.h.in
@@ -13,6 +13,8 @@ TYPEDEF unsigned wint_t;
TYPEDEF float float_t;
TYPEDEF double double_t;
+TYPEDEF struct { long long __ll; long double __ld; } max_align_t;
+
TYPEDEF long time_t;
TYPEDEF long suseconds_t;
diff --git a/arch/powerpc/bits/alltypes.h.in b/arch/powerpc/bits/alltypes.h.in
index e9d8dd8..040157e 100644
--- a/arch/powerpc/bits/alltypes.h.in
+++ b/arch/powerpc/bits/alltypes.h.in
@@ -13,6 +13,8 @@ TYPEDEF unsigned wint_t;
TYPEDEF float float_t;
TYPEDEF double double_t;
+TYPEDEF struct { long long __ll; long double __ld; } max_align_t;
+
TYPEDEF long time_t;
TYPEDEF long suseconds_t;
diff --git a/arch/sh/bits/alltypes.h.in b/arch/sh/bits/alltypes.h.in
index e9d8dd8..040157e 100644
--- a/arch/sh/bits/alltypes.h.in
+++ b/arch/sh/bits/alltypes.h.in
@@ -13,6 +13,8 @@ TYPEDEF unsigned wint_t;
TYPEDEF float float_t;
TYPEDEF double double_t;
+TYPEDEF struct { long long __ll; long double __ld; } max_align_t;
+
TYPEDEF long time_t;
TYPEDEF long suseconds_t;
diff --git a/arch/x32/bits/alltypes.h.in b/arch/x32/bits/alltypes.h.in
index b077fc9..c98a3d7 100644
--- a/arch/x32/bits/alltypes.h.in
+++ b/arch/x32/bits/alltypes.h.in
@@ -18,6 +18,8 @@ TYPEDEF float float_t;
TYPEDEF double double_t;
#endif
+TYPEDEF struct { long long __ll; long double __ld; } max_align_t;
+
TYPEDEF long long time_t;
TYPEDEF long long suseconds_t;
diff --git a/arch/x86_64/bits/alltypes.h.in b/arch/x86_64/bits/alltypes.h.in
index 277e944..c4898c7 100644
--- a/arch/x86_64/bits/alltypes.h.in
+++ b/arch/x86_64/bits/alltypes.h.in
@@ -18,6 +18,8 @@ TYPEDEF float float_t;
TYPEDEF double double_t;
#endif
+TYPEDEF struct { long long __ll; long double __ld; } max_align_t;
+
TYPEDEF long time_t;
TYPEDEF long suseconds_t;
diff --git a/include/stddef.h b/include/stddef.h
index 0a32919..bd75385 100644
--- a/include/stddef.h
+++ b/include/stddef.h
@@ -10,6 +10,9 @@
#define __NEED_ptrdiff_t
#define __NEED_size_t
#define __NEED_wchar_t
+#if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L
+#define __NEED_max_align_t
+#endif
#include <bits/alltypes.h>

View File

@ -1,153 +0,0 @@
From 321f4fa9067185aa6bb47403dfba46e8cfe917d3 Mon Sep 17 00:00:00 2001
From: Rich Felker <dalias@aerifal.cx>
Date: Wed, 20 Aug 2014 21:20:14 +0000
Subject: add max_align_t definition for C11 and C++11
unfortunately this needs to be able to vary by arch, because of a huge
mess GCC made: the GCC definition, which became the ABI, depends on
quirks in GCC's definition of __alignof__, which does not match the
formal alignment of the type.
GCC's __alignof__ unexpectedly exposes the an implementation detail,
its "preferred alignment" for the type, rather than the formal/ABI
alignment of the type, which it only actually uses in structures. on
most archs the two values are the same, but on some (at least i386)
the preferred alignment is greater than the ABI alignment.
I considered using _Alignas(8) unconditionally, but on at least one
arch (or1k), the alignment of max_align_t with GCC's definition is
only 4 (even the "preferred alignment" for these types is only 4).
---
diff --git a/arch/arm/bits/alltypes.h.in b/arch/arm/bits/alltypes.h.in
index 0d750cc..183c4c4 100644
--- a/arch/arm/bits/alltypes.h.in
+++ b/arch/arm/bits/alltypes.h.in
@@ -13,6 +13,8 @@ TYPEDEF unsigned wint_t;
TYPEDEF float float_t;
TYPEDEF double double_t;
+TYPEDEF struct { long long __ll; long double __ld; } max_align_t;
+
TYPEDEF long time_t;
TYPEDEF long suseconds_t;
diff --git a/arch/i386/bits/alltypes.h.in b/arch/i386/bits/alltypes.h.in
index 502c882..8ba8f6f 100644
--- a/arch/i386/bits/alltypes.h.in
+++ b/arch/i386/bits/alltypes.h.in
@@ -27,6 +27,8 @@ TYPEDEF long double float_t;
TYPEDEF long double double_t;
#endif
+TYPEDEF struct { _Alignas(8) long long __ll; long double __ld; } max_align_t;
+
TYPEDEF long time_t;
TYPEDEF long suseconds_t;
diff --git a/arch/microblaze/bits/alltypes.h.in b/arch/microblaze/bits/alltypes.h.in
index 4657d14..a03e1b8 100644
--- a/arch/microblaze/bits/alltypes.h.in
+++ b/arch/microblaze/bits/alltypes.h.in
@@ -13,6 +13,8 @@ TYPEDEF unsigned wint_t;
TYPEDEF float float_t;
TYPEDEF double double_t;
+TYPEDEF struct { long long __ll; long double __ld; } max_align_t;
+
TYPEDEF long time_t;
TYPEDEF long suseconds_t;
diff --git a/arch/mips/bits/alltypes.h.in b/arch/mips/bits/alltypes.h.in
index 4657d14..a03e1b8 100644
--- a/arch/mips/bits/alltypes.h.in
+++ b/arch/mips/bits/alltypes.h.in
@@ -13,6 +13,8 @@ TYPEDEF unsigned wint_t;
TYPEDEF float float_t;
TYPEDEF double double_t;
+TYPEDEF struct { long long __ll; long double __ld; } max_align_t;
+
TYPEDEF long time_t;
TYPEDEF long suseconds_t;
diff --git a/arch/or1k/bits/alltypes.h.in b/arch/or1k/bits/alltypes.h.in
index 0d750cc..183c4c4 100644
--- a/arch/or1k/bits/alltypes.h.in
+++ b/arch/or1k/bits/alltypes.h.in
@@ -13,6 +13,8 @@ TYPEDEF unsigned wint_t;
TYPEDEF float float_t;
TYPEDEF double double_t;
+TYPEDEF struct { long long __ll; long double __ld; } max_align_t;
+
TYPEDEF long time_t;
TYPEDEF long suseconds_t;
diff --git a/arch/powerpc/bits/alltypes.h.in b/arch/powerpc/bits/alltypes.h.in
index 378124c..ee7f137 100644
--- a/arch/powerpc/bits/alltypes.h.in
+++ b/arch/powerpc/bits/alltypes.h.in
@@ -13,6 +13,8 @@ TYPEDEF unsigned wint_t;
TYPEDEF float float_t;
TYPEDEF double double_t;
+TYPEDEF struct { long long __ll; long double __ld; } max_align_t;
+
TYPEDEF long time_t;
TYPEDEF long suseconds_t;
diff --git a/arch/sh/bits/alltypes.h.in b/arch/sh/bits/alltypes.h.in
index 378124c..ee7f137 100644
--- a/arch/sh/bits/alltypes.h.in
+++ b/arch/sh/bits/alltypes.h.in
@@ -13,6 +13,8 @@ TYPEDEF unsigned wint_t;
TYPEDEF float float_t;
TYPEDEF double double_t;
+TYPEDEF struct { long long __ll; long double __ld; } max_align_t;
+
TYPEDEF long time_t;
TYPEDEF long suseconds_t;
diff --git a/arch/x32/bits/alltypes.h.in b/arch/x32/bits/alltypes.h.in
index 8930efa..8e396c9 100644
--- a/arch/x32/bits/alltypes.h.in
+++ b/arch/x32/bits/alltypes.h.in
@@ -18,6 +18,8 @@ TYPEDEF float float_t;
TYPEDEF double double_t;
#endif
+TYPEDEF struct { long long __ll; long double __ld; } max_align_t;
+
TYPEDEF long long time_t;
TYPEDEF long long suseconds_t;
diff --git a/arch/x86_64/bits/alltypes.h.in b/arch/x86_64/bits/alltypes.h.in
index 34b7d6a..7b4f3e7 100644
--- a/arch/x86_64/bits/alltypes.h.in
+++ b/arch/x86_64/bits/alltypes.h.in
@@ -18,6 +18,8 @@ TYPEDEF float float_t;
TYPEDEF double double_t;
#endif
+TYPEDEF struct { long long __ll; long double __ld; } max_align_t;
+
TYPEDEF long time_t;
TYPEDEF long suseconds_t;
diff --git a/include/stddef.h b/include/stddef.h
index 0a32919..bd75385 100644
--- a/include/stddef.h
+++ b/include/stddef.h
@@ -10,6 +10,9 @@
#define __NEED_ptrdiff_t
#define __NEED_size_t
#define __NEED_wchar_t
+#if __STDC_VERSION__ >= 201112L || __cplusplus >= 201103L
+#define __NEED_max_align_t
+#endif
#include <bits/alltypes.h>
--
cgit v0.9.0.3-65-g4555

View File

@ -18,7 +18,7 @@ doHelp() {
'tool' in one of:
gcc, binutils, glibc, uClibc, uClibc-ng, newlib, linux, gdb,
duma, strace, ltrace, libelf, gmp, mpfr, isl, cloog, mpc,
mingw-w64, expat, ncurses
mingw-w64, expat, ncurses, musl
Valid options for all tools:
--stable, -s, +x (default)
@ -151,7 +151,7 @@ addToolVersion() {
ver_M=$(getVersionField "${version}" . 1)
ver_m=$(getVersionField "${version}" . 2)
ver_p=$(getVersionField "${version}" . 3)
if [ ${ver_M} -eq 0 -a ${ver_m} -eq 9 -a ${ver_p} -eq 33 ]; then
if [ ${ver_M} -eq 1 -a ${ver_m} -eq 0 -a ${ver_p} -eq 15 ]; then
SedExpr1="${SedExpr1}\n select LIBC_UCLIBC_NG_1_0_15_or_later"
fi
;;
@ -195,6 +195,7 @@ while [ $# -gt 0 ]; do
--uClibc-ng)EXP=; OBS=; cat=LIBC_UCLIBC_NG; tool=uClibc; tool_prefix=libc; dot2suffix=;;
--newlib) EXP=; OBS=; cat=LIBC_NEWLIB; tool=newlib; tool_prefix=libc; dot2suffix=;;
--mingw-w64)EXP=; OBS=; cat=WINAPI; tool=mingw; tool_prefix=libc; dot2suffix=;;
--musl) EXP=; OBS=; cat=LIBC_MUSL; tool=musl; tool_prefix=libc; dot2suffix=;;
--linux) EXP=; OBS=; cat=KERNEL; tool=linux; tool_prefix=kernel; dot2suffix=;;
--gdb) EXP=; OBS=; cat=GDB; tool=gdb; tool_prefix=debug; dot2suffix=;;
--duma) EXP=; OBS=; cat=DUMA; tool=duma; tool_prefix=debug; dot2suffix=;;