From c7e2e11059d0ac46f5aba156e535e7064387a5e3 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Fri, 13 Jan 2017 23:56:19 -0800 Subject: [PATCH 1/3] addToolVersion.sh: support musl Signed-off-by: Alexey Neyman --- scripts/addToolVersion.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/addToolVersion.sh b/scripts/addToolVersion.sh index 90eac2f6..05b73577 100755 --- a/scripts/addToolVersion.sh +++ b/scripts/addToolVersion.sh @@ -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 ;; @@ -194,6 +194,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=;; From 130a2bc0216759520a4b95358a4b6475957191da Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sat, 14 Jan 2017 00:03:45 -0800 Subject: [PATCH 2/3] Add musl 1.1.16. Patch we had for 1.0.4/1.1.5 is now upstream. Signed-off-by: Alexey Neyman --- config/libc/musl.in | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/config/libc/musl.in b/config/libc/musl.in index 3e0b5a12..5ea166f1 100644 --- a/config/libc/musl.in +++ b/config/libc/musl.in @@ -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 From 41bdf88156a1fca01ec2c03d246ffa7866441e44 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Sat, 14 Jan 2017 14:57:56 -0800 Subject: [PATCH 3/3] Remove patches for unsupported musl versions Signed-off-by: Alexey Neyman --- patches/musl/1.0.4/0001-max_align_t.patch | 140 -------------------- patches/musl/1.1.4/0001-max_align_t.patch | 153 ---------------------- 2 files changed, 293 deletions(-) delete mode 100644 patches/musl/1.0.4/0001-max_align_t.patch delete mode 100644 patches/musl/1.1.4/0001-max_align_t.patch diff --git a/patches/musl/1.0.4/0001-max_align_t.patch b/patches/musl/1.0.4/0001-max_align_t.patch deleted file mode 100644 index 766f6678..00000000 --- a/patches/musl/1.0.4/0001-max_align_t.patch +++ /dev/null @@ -1,140 +0,0 @@ -From 321f4fa9067185aa6bb47403dfba46e8cfe917d3 Mon Sep 17 00:00:00 2001 -From: Rich Felker -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 - diff --git a/patches/musl/1.1.4/0001-max_align_t.patch b/patches/musl/1.1.4/0001-max_align_t.patch deleted file mode 100644 index 64233370..00000000 --- a/patches/musl/1.1.4/0001-max_align_t.patch +++ /dev/null @@ -1,153 +0,0 @@ -From 321f4fa9067185aa6bb47403dfba46e8cfe917d3 Mon Sep 17 00:00:00 2001 -From: Rich Felker -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 - --- -cgit v0.9.0.3-65-g4555