summaryrefslogtreecommitdiff
path: root/toolchain
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2013-09-24 09:34:07 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2013-09-24 09:34:07 +0200
commite1b71c4af60ef7a69b641b971da24a5a7df79e0d (patch)
treee43aa4bcddec2f12574d441ae7492e048478e484 /toolchain
parent993c8fbc80d05e0cd7301a7ec2970963c14f0e5b (diff)
parent65085e668c0ef986188c0a3d43cb92eb93898758 (diff)
Merge branch 'master' of git+ssh://openadk.org/git/openadk
Diffstat (limited to 'toolchain')
-rw-r--r--toolchain/eglibc/Makefile5
-rw-r--r--toolchain/gcc/patches/4.7.3/musl-mips64.patch14
-rw-r--r--toolchain/gcc/patches/4.7.3/musl-sparc.patch24
-rw-r--r--toolchain/musl/Makefile7
-rw-r--r--toolchain/musl/Makefile.inc4
-rw-r--r--toolchain/musl/patches/0.9.13/musl-git.patch8805
6 files changed, 44 insertions, 8815 deletions
diff --git a/toolchain/eglibc/Makefile b/toolchain/eglibc/Makefile
index 13a537c05..76b09237d 100644
--- a/toolchain/eglibc/Makefile
+++ b/toolchain/eglibc/Makefile
@@ -7,11 +7,6 @@ include Makefile.inc
include Makefile.multilib
include ${TOPDIR}/mk/buildhlp.mk
-# eglibc does not compile with Os
-TARGET_CFLAGS_LIBC:= $(subst Os,O2,$(TARGET_CFLAGS))
-ifneq ($(ADK_DEBUG),)
-TARGET_CFLAGS_LIBC+= -O2
-endif
# ssp partially supported
TARGET_CFLAGS_LIBC:= $(filter-out -fstack-protector,$(TARGET_CFLAGS_LIBC))
diff --git a/toolchain/gcc/patches/4.7.3/musl-mips64.patch b/toolchain/gcc/patches/4.7.3/musl-mips64.patch
new file mode 100644
index 000000000..671ba9f28
--- /dev/null
+++ b/toolchain/gcc/patches/4.7.3/musl-mips64.patch
@@ -0,0 +1,14 @@
+diff -Nur gcc-4.7.3.orig/gcc/config/mips/linux64.h gcc-4.7.3/gcc/config/mips/linux64.h
+--- gcc-4.7.3.orig/gcc/config/mips/linux64.h 2011-07-19 20:00:27.000000000 +0200
++++ gcc-4.7.3/gcc/config/mips/linux64.h 2013-09-17 09:24:36.000000000 +0200
+@@ -28,6 +28,9 @@
+ #define GLIBC_DYNAMIC_LINKERN32 "/lib32/ld.so.1"
+ #define UCLIBC_DYNAMIC_LINKERN32 "/lib32/ld-uClibc.so.0"
+ #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
++#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-mips.so.1"
++#define MUSL_DYNAMIC_LINKERN32 "/lib/ld-musl-mips.so.1"
++#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-mips.so.1"
+ #define GNU_USER_DYNAMIC_LINKERN32 \
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32, \
+- BIONIC_DYNAMIC_LINKERN32)
++ BIONIC_DYNAMIC_LINKERN32, MUSL_DYNAMIC_LINKERN32)
diff --git a/toolchain/gcc/patches/4.7.3/musl-sparc.patch b/toolchain/gcc/patches/4.7.3/musl-sparc.patch
new file mode 100644
index 000000000..228b8522d
--- /dev/null
+++ b/toolchain/gcc/patches/4.7.3/musl-sparc.patch
@@ -0,0 +1,24 @@
+diff -Nur gcc-4.7.3.orig/gcc/config/sparc/linux64.h gcc-4.7.3/gcc/config/sparc/linux64.h
+--- gcc-4.7.3.orig/gcc/config/sparc/linux64.h 2011-11-12 02:05:07.000000000 +0100
++++ gcc-4.7.3/gcc/config/sparc/linux64.h 2013-09-19 11:37:50.000000000 +0200
+@@ -95,6 +95,9 @@
+
+ #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
+ #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2"
++#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-sparc.1"
++#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-sparc.1"
++
+
+ #ifdef SPARC_BI_ARCH
+
+diff -Nur gcc-4.7.3.orig/gcc/config/sparc/linux.h gcc-4.7.3/gcc/config/sparc/linux.h
+--- gcc-4.7.3.orig/gcc/config/sparc/linux.h 2011-11-12 02:05:07.000000000 +0100
++++ gcc-4.7.3/gcc/config/sparc/linux.h 2013-09-19 11:37:12.000000000 +0200
+@@ -85,6 +85,7 @@
+ done. */
+
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-sparc.1"
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
diff --git a/toolchain/musl/Makefile b/toolchain/musl/Makefile
index 3782e5672..2cce6bebc 100644
--- a/toolchain/musl/Makefile
+++ b/toolchain/musl/Makefile
@@ -28,6 +28,10 @@ $(WRKBUILD)/.compiled:
touch $@
$(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
+ $(MAKE) -C $(WRKBUILD) DESTDIR=$(STAGING_TARGET_DIR) install
+ touch $@
+
+$(WRKBUILD)/.fixup:
# reconfigure musl, otherwise linking with libgcc or libgcc_eh is disabled
$(MAKE) CFLAGS='$(TARGET_CFLAGS)' -C $(WRKBUILD) clean
(cd $(WRKBUILD); CC='$(TARGET_CC)' CROSS_COMPILE='$(TARGET_CROSS)' \
@@ -39,7 +43,4 @@ $(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
$(MAKE) -C $(WRKBUILD) DESTDIR=$(STAGING_TARGET_DIR) install
touch $@
-$(WRKBUILD)/.fixup:
- touch $@
-
include ${TOPDIR}/mk/toolchain.mk
diff --git a/toolchain/musl/Makefile.inc b/toolchain/musl/Makefile.inc
index 83dc75168..37bd7a981 100644
--- a/toolchain/musl/Makefile.inc
+++ b/toolchain/musl/Makefile.inc
@@ -2,8 +2,8 @@
# material, please see the LICENCE file in the top-level directory.
PKG_NAME:= musl
-PKG_VERSION:= 0.9.13
+PKG_VERSION:= 0.9.14
PKG_RELEASE:= 1
-PKG_MD5SUM:= 6af97d6157a2f4ee7a17af2316389fd7
+PKG_MD5SUM:= bfb685695aa942e64c63170589e575b2
PKG_SITES:= http://www.musl-libc.org/releases/
DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
diff --git a/toolchain/musl/patches/0.9.13/musl-git.patch b/toolchain/musl/patches/0.9.13/musl-git.patch
deleted file mode 100644
index 110e496f8..000000000
--- a/toolchain/musl/patches/0.9.13/musl-git.patch
+++ /dev/null
@@ -1,8805 +0,0 @@
-diff -Nur musl-0.9.13/.gitignore musl-git/.gitignore
---- musl-0.9.13/.gitignore 1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/.gitignore 2013-09-16 20:31:39.000000000 +0200
-@@ -0,0 +1,10 @@
-+*.o
-+*.lo
-+*.a
-+*.so
-+*.so.1
-+arch/*/bits/alltypes.h
-+config.mak
-+include/bits
-+tools/musl-gcc
-+lib/musl-gcc.specs
-diff -Nur musl-0.9.13/Makefile musl-git/Makefile
---- musl-0.9.13/Makefile 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/Makefile 2013-09-16 20:31:39.000000000 +0200
-@@ -157,7 +157,7 @@
- $(INSTALL) -D -m 644 $< $@
-
- $(DESTDIR)$(LDSO_PATHNAME): $(DESTDIR)$(libdir)/libc.so
-- $(INSTALL) -D -l $< $@ || true
-+ $(INSTALL) -D -l $(libdir)/libc.so $@ || true
-
- install-libs: $(ALL_LIBS:lib/%=$(DESTDIR)$(libdir)/%) $(if $(SHARED_LIBS),$(DESTDIR)$(LDSO_PATHNAME),)
-
-diff -Nur musl-0.9.13/arch/microblaze/bits/limits.h musl-git/arch/microblaze/bits/limits.h
---- musl-0.9.13/arch/microblaze/bits/limits.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/arch/microblaze/bits/limits.h 2013-09-16 20:31:39.000000000 +0200
-@@ -1,6 +1,5 @@
- #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
--#define PAGE_SIZE 4096
- #define LONG_BIT 32
- #endif
-
-diff -Nur musl-0.9.13/arch/microblaze/reloc.h musl-git/arch/microblaze/reloc.h
---- musl-0.9.13/arch/microblaze/reloc.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/arch/microblaze/reloc.h 2013-09-16 20:31:39.000000000 +0200
-@@ -49,7 +49,7 @@
- for (a+=c+1; *a; a++);
- for (a++; *a; a+=2) if (*a<20) t[*a] = a[1];
- base = (char *)t[AT_BASE];
-- if (!base) base = (char *)(t[AT_PHDR] & -4096);
-+ if (!base) base = (char *)(t[AT_PHDR] & -t[AT_PAGESZ]);
- for (a=dynv; *a; a+=2) if (*a<20) t[*a] = a[1];
- n = t[DT_RELASZ];
- for (a=(void *)(base+t[DT_RELA]); n; a+=3, n-=12)
-diff -Nur musl-0.9.13/arch/mips/bits/limits.h musl-git/arch/mips/bits/limits.h
---- musl-0.9.13/arch/mips/bits/limits.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/arch/mips/bits/limits.h 2013-09-16 20:31:39.000000000 +0200
-@@ -1,6 +1,5 @@
- #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
--#define PAGE_SIZE 4096
- #define LONG_BIT 32
- #endif
-
-diff -Nur musl-0.9.13/arch/mips/bits/msg.h musl-git/arch/mips/bits/msg.h
---- musl-0.9.13/arch/mips/bits/msg.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/arch/mips/bits/msg.h 2013-09-16 20:31:39.000000000 +0200
-@@ -1,12 +1,21 @@
- struct msqid_ds
- {
- struct ipc_perm msg_perm;
-+#if _MIPSEL || __MIPSEL || __MIPSEL__
- time_t msg_stime;
- int __unused1;
- time_t msg_rtime;
- int __unused2;
- time_t msg_ctime;
- int __unused3;
-+#else
-+ int __unused1;
-+ time_t msg_stime;
-+ int __unused2;
-+ time_t msg_rtime;
-+ int __unused3;
-+ time_t msg_ctime;
-+#endif
- unsigned long msg_cbytes;
- msgqnum_t msg_qnum;
- msglen_t msg_qbytes;
-diff -Nur musl-0.9.13/arch/mips/bits/shm.h musl-git/arch/mips/bits/shm.h
---- musl-0.9.13/arch/mips/bits/shm.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/arch/mips/bits/shm.h 2013-09-16 20:31:39.000000000 +0200
-@@ -5,11 +5,8 @@
- struct ipc_perm shm_perm;
- size_t shm_segsz;
- time_t shm_atime;
-- int __unused1;
- time_t shm_dtime;
-- int __unused2;
- time_t shm_ctime;
-- int __unused3;
- pid_t shm_cpid;
- pid_t shm_lpid;
- unsigned long shm_nattch;
-diff -Nur musl-0.9.13/arch/mips/reloc.h musl-git/arch/mips/reloc.h
---- musl-0.9.13/arch/mips/reloc.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/arch/mips/reloc.h 2013-09-16 20:31:39.000000000 +0200
-@@ -51,7 +51,7 @@
- for (a+=c+1; *a; a++);
- for (a++; *a; a+=2) if (*a<20) t[*a] = a[1];
- base = (char *)t[AT_BASE];
-- if (!base) base = (char *)(t[AT_PHDR] & -4096);
-+ if (!base) base = (char *)(t[AT_PHDR] & -t[AT_PAGESZ]);
- for (a=dynv; *a; a+=2) if (*a-0x70000000UL<20) t[*a&31] = a[1];
- n = t[DT_MIPS_LOCAL_GOTNO - 0x70000000];
- for (a=got; n; a++, n--) *a += (size_t)base;
-diff -Nur musl-0.9.13/arch/powerpc/bits/limits.h musl-git/arch/powerpc/bits/limits.h
---- musl-0.9.13/arch/powerpc/bits/limits.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/arch/powerpc/bits/limits.h 2013-09-16 20:31:39.000000000 +0200
-@@ -1,6 +1,5 @@
- #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
--#define PAGE_SIZE 4096
- #define LONG_BIT 32
- #endif
-
-diff -Nur musl-0.9.13/arch/powerpc/reloc.h musl-git/arch/powerpc/reloc.h
---- musl-0.9.13/arch/powerpc/reloc.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/arch/powerpc/reloc.h 2013-09-16 20:31:39.000000000 +0200
-@@ -46,7 +46,7 @@
- for (a+=c+1; *a; a++);
- for (a++; *a; a+=2) if (*a<20) t[*a] = a[1];
- base = (char *)t[AT_BASE];
-- if (!base) base = (char *)(t[AT_PHDR] & -4096);
-+ if (!base) base = (char *)(t[AT_PHDR] & -t[AT_PAGESZ]);
- for (a=dynv; *a; a+=2) if (*a<20) t[*a] = a[1];
- n = t[DT_RELASZ];
- for (a=(void *)(base+t[DT_RELA]); n; a+=3, n-=12)
-diff -Nur musl-0.9.13/include/elf.h musl-git/include/elf.h
---- musl-0.9.13/include/elf.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/include/elf.h 2013-09-16 20:31:39.000000000 +0200
-@@ -105,6 +105,7 @@
- #define ELFOSABI_HPUX 1
- #define ELFOSABI_NETBSD 2
- #define ELFOSABI_LINUX 3
-+#define ELFOSABI_GNU 3
- #define ELFOSABI_SOLARIS 6
- #define ELFOSABI_AIX 7
- #define ELFOSABI_IRIX 8
-@@ -211,7 +212,11 @@
- #define EM_OPENRISC 92
- #define EM_ARC_A5 93
- #define EM_XTENSA 94
--#define EM_NUM 95
-+#define EM_AARCH64 183
-+#define EM_TILEPRO 188
-+#define EM_MICROBLAZE 189
-+#define EM_TILEGX 191
-+#define EM_NUM 192
- #define EM_ALPHA 0x9026
-
- #define EV_NONE 0
-@@ -487,6 +492,8 @@
- #define PT_HIPROC 0x7fffffff
-
-
-+#define PN_XNUM 0xffff
-+
-
- #define PF_X (1 << 0)
- #define PF_W (1 << 1)
-@@ -512,12 +519,31 @@
- #define NT_LWPSTATUS 16
- #define NT_LWPSINFO 17
- #define NT_PRFPXREG 20
-+#define NT_SIGINFO 0x53494749
-+#define NT_FILE 0x46494c45
- #define NT_PRXFPREG 0x46e62b7f
- #define NT_PPC_VMX 0x100
- #define NT_PPC_SPE 0x101
- #define NT_PPC_VSX 0x102
- #define NT_386_TLS 0x200
- #define NT_386_IOPERM 0x201
-+#define NT_X86_XSTATE 0x202
-+#define NT_S390_HIGH_GPRS 0x300
-+#define NT_S390_TIMER 0x301
-+#define NT_S390_TODCMP 0x302
-+#define NT_S390_TODPREG 0x303
-+#define NT_S390_CTRS 0x304
-+#define NT_S390_PREFIX 0x305
-+#define NT_S390_LAST_BREAK 0x306
-+#define NT_S390_SYSTEM_CALL 0x307
-+#define NT_S390_TDB 0x308
-+#define NT_ARM_VFP 0x400
-+#define NT_ARM_TLS 0x401
-+#define NT_ARM_HW_BREAK 0x402
-+#define NT_ARM_HW_WATCH 0x403
-+#define NT_METAG_CBUF 0x500
-+#define NT_METAG_RPIPE 0x501
-+#define NT_METAG_TLS 0x502
- #define NT_VERSION 1
-
-
-@@ -666,7 +692,15 @@
- #define DF_1_ENDFILTEE 0x00004000
- #define DF_1_DISPRELDNE 0x00008000
- #define DF_1_DISPRELPND 0x00010000
--
-+#define DF_1_NODIRECT 0x00020000
-+#define DF_1_IGNMULDEF 0x00040000
-+#define DF_1_NOKSYMS 0x00080000
-+#define DF_1_NOHDR 0x00100000
-+#define DF_1_EDITED 0x00200000
-+#define DF_1_NORELOC 0x00400000
-+#define DF_1_SYMINTPOSE 0x00800000
-+#define DF_1_GLOBAUDIT 0x01000000
-+#define DF_1_SINGLETON 0x02000000
-
- #define DTF_1_PARINIT 0x00000001
- #define DTF_1_CONFEXP 0x00000002
-@@ -832,6 +866,8 @@
-
- #define AT_RANDOM 25
-
-+#define AT_HWCAP2 26
-+
- #define AT_EXECFN 31
-
-
-@@ -979,6 +1015,7 @@
- #define R_386_TLS_DTPMOD32 35
- #define R_386_TLS_DTPOFF32 36
- #define R_386_TLS_TPOFF32 37
-+#define R_386_SIZE32 38
- #define R_386_TLS_GOTDESC 39
- #define R_386_TLS_DESC_CALL 40
- #define R_386_TLS_DESC 41
-@@ -1109,20 +1146,6 @@
- #define DT_SPARC_NUM 2
-
-
--
--#define HWCAP_SPARC_FLUSH 1
--#define HWCAP_SPARC_STBAR 2
--#define HWCAP_SPARC_SWAP 4
--#define HWCAP_SPARC_MULDIV 8
--#define HWCAP_SPARC_V9 16
--#define HWCAP_SPARC_ULTRA3 32
--#define HWCAP_SPARC_BLKINIT 64
--#define HWCAP_SPARC_N2 128
--
--
--
--
--
- #define EF_MIPS_NOREORDER 1
- #define EF_MIPS_PIC 2
- #define EF_MIPS_CPIC 4
-@@ -1139,9 +1162,10 @@
- #define EF_MIPS_ARCH_3 0x20000000
- #define EF_MIPS_ARCH_4 0x30000000
- #define EF_MIPS_ARCH_5 0x40000000
--#define EF_MIPS_ARCH_32 0x60000000
--#define EF_MIPS_ARCH_64 0x70000000
--
-+#define EF_MIPS_ARCH_32 0x50000000
-+#define EF_MIPS_ARCH_64 0x60000000
-+#define EF_MIPS_ARCH_32R2 0x70000000
-+#define EF_MIPS_ARCH_64R2 0x80000000
-
-
- #define E_MIPS_ARCH_1 0x00000000
-@@ -1149,8 +1173,8 @@
- #define E_MIPS_ARCH_3 0x20000000
- #define E_MIPS_ARCH_4 0x30000000
- #define E_MIPS_ARCH_5 0x40000000
--#define E_MIPS_ARCH_32 0x60000000
--#define E_MIPS_ARCH_64 0x70000000
-+#define E_MIPS_ARCH_32 0x50000000
-+#define E_MIPS_ARCH_64 0x60000000
-
-
-
-@@ -2020,7 +2044,8 @@
- #define EF_ARM_VFP_FLOAT 0x400
- #define EF_ARM_MAVERICK_FLOAT 0x800
-
--
-+#define EF_ARM_ABI_FLOAT_SOFT 0x200
-+#define EF_ARM_ABI_FLOAT_HARD 0x400
-
-
- #define EF_ARM_SYMSARESORTED 0x04
-@@ -2064,6 +2089,17 @@
- #define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3)
-
-
-+#define R_AARCH64_NONE 0
-+#define R_AARCH64_ABS64 257
-+#define R_AARCH64_ABS32 258
-+#define R_AARCH64_COPY 1024
-+#define R_AARCH64_GLOB_DAT 1025
-+#define R_AARCH64_JUMP_SLOT 1026
-+#define R_AARCH64_RELATIVE 1027
-+#define R_AARCH64_TLS_DTPMOD64 1028
-+#define R_AARCH64_TLS_DTPREL64 1029
-+#define R_AARCH64_TLS_TPREL64 1030
-+#define R_AARCH64_TLSDESC 1031
-
-
- #define R_ARM_NONE 0
-@@ -2079,7 +2115,7 @@
- #define R_ARM_THM_PC22 10
- #define R_ARM_THM_PC8 11
- #define R_ARM_AMP_VCALL9 12
--#define R_ARM_SWI24 13
-+#define R_ARM_TLS_DESC 13
- #define R_ARM_THM_SWI8 14
- #define R_ARM_XPC25 15
- #define R_ARM_THM_XPC22 16
-@@ -2094,12 +2130,78 @@
- #define R_ARM_GOTPC 25
- #define R_ARM_GOT32 26
- #define R_ARM_PLT32 27
-+#define R_ARM_CALL 28
-+#define R_ARM_JUMP24 29
-+#define R_ARM_THM_JUMP24 30
-+#define R_ARM_BASE_ABS 31
- #define R_ARM_ALU_PCREL_7_0 32
- #define R_ARM_ALU_PCREL_15_8 33
- #define R_ARM_ALU_PCREL_23_15 34
- #define R_ARM_LDR_SBREL_11_0 35
- #define R_ARM_ALU_SBREL_19_12 36
- #define R_ARM_ALU_SBREL_27_20 37
-+#define R_ARM_TARGET1 38
-+#define R_ARM_SBREL31 39
-+#define R_ARM_V4BX 40
-+#define R_ARM_TARGET2 41
-+#define R_ARM_PREL31 42
-+#define R_ARM_MOVW_ABS_NC 43
-+#define R_ARM_MOVT_ABS 44
-+#define R_ARM_MOVW_PREL_NC 45
-+#define R_ARM_MOVT_PREL 46
-+#define R_ARM_THM_MOVW_ABS_NC 47
-+#define R_ARM_THM_MOVT_ABS 48
-+#define R_ARM_THM_MOVW_PREL_NC 49
-+#define R_ARM_THM_MOVT_PREL 50
-+#define R_ARM_THM_JUMP19 51
-+#define R_ARM_THM_JUMP6 52
-+#define R_ARM_THM_ALU_PREL_11_0 53
-+#define R_ARM_THM_PC12 54
-+#define R_ARM_ABS32_NOI 55
-+#define R_ARM_REL32_NOI 56
-+#define R_ARM_ALU_PC_G0_NC 57
-+#define R_ARM_ALU_PC_G0 58
-+#define R_ARM_ALU_PC_G1_NC 59
-+#define R_ARM_ALU_PC_G1 60
-+#define R_ARM_ALU_PC_G2 61
-+#define R_ARM_LDR_PC_G1 62
-+#define R_ARM_LDR_PC_G2 63
-+#define R_ARM_LDRS_PC_G0 64
-+#define R_ARM_LDRS_PC_G1 65
-+#define R_ARM_LDRS_PC_G2 66
-+#define R_ARM_LDC_PC_G0 67
-+#define R_ARM_LDC_PC_G1 68
-+#define R_ARM_LDC_PC_G2 69
-+#define R_ARM_ALU_SB_G0_NC 70
-+#define R_ARM_ALU_SB_G0 71
-+#define R_ARM_ALU_SB_G1_NC 72
-+#define R_ARM_ALU_SB_G1 73
-+#define R_ARM_ALU_SB_G2 74
-+#define R_ARM_LDR_SB_G0 75
-+#define R_ARM_LDR_SB_G1 76
-+#define R_ARM_LDR_SB_G2 77
-+#define R_ARM_LDRS_SB_G0 78
-+#define R_ARM_LDRS_SB_G1 79
-+#define R_ARM_LDRS_SB_G2 80
-+#define R_ARM_LDC_SB_G0 81
-+#define R_ARM_LDC_SB_G1 82
-+#define R_ARM_LDC_SB_G2 83
-+#define R_ARM_MOVW_BREL_NC 84
-+#define R_ARM_MOVT_BREL 85
-+#define R_ARM_MOVW_BREL 86
-+#define R_ARM_THM_MOVW_BREL_NC 87
-+#define R_ARM_THM_MOVT_BREL 88
-+#define R_ARM_THM_MOVW_BREL 89
-+#define R_ARM_TLS_GOTDESC 90
-+#define R_ARM_TLS_CALL 91
-+#define R_ARM_TLS_DESCSEQ 92
-+#define R_ARM_THM_TLS_CALL 93
-+#define R_ARM_PLT32_ABS 94
-+#define R_ARM_GOT_ABS 95
-+#define R_ARM_GOT_PREL 96
-+#define R_ARM_GOT_BREL12 97
-+#define R_ARM_GOTOFF12 98
-+#define R_ARM_GOTRELAX 99
- #define R_ARM_GNU_VTENTRY 100
- #define R_ARM_GNU_VTINHERIT 101
- #define R_ARM_THM_PC11 102
-@@ -2113,7 +2215,15 @@
- #define R_ARM_TLS_IE32 107
-
- #define R_ARM_TLS_LE32 108
--
-+#define R_ARM_TLS_LDO12 109
-+#define R_ARM_TLS_LE12 110
-+#define R_ARM_TLS_IE12GP 111
-+#define R_ARM_ME_TOO 128
-+#define R_ARM_THM_TLS_DESCSEQ 129
-+#define R_ARM_THM_TLS_DESCSEQ16 129
-+#define R_ARM_THM_TLS_DESCSEQ32 130
-+#define R_ARM_THM_GOT_BREL12 131
-+#define R_ARM_IRELATIVE 160
- #define R_ARM_RXPC25 249
- #define R_ARM_RSBREL32 250
- #define R_ARM_THM_RPC22 251
-@@ -2421,15 +2531,21 @@
- #define R_X86_64_PC64 24
- #define R_X86_64_GOTOFF64 25
- #define R_X86_64_GOTPC32 26
--
-+#define R_X86_64_GOT64 27
-+#define R_X86_64_GOTPCREL64 28
-+#define R_X86_64_GOTPC64 29
-+#define R_X86_64_GOTPLT64 30
-+#define R_X86_64_PLTOFF64 31
-+#define R_X86_64_SIZE32 32
-+#define R_X86_64_SIZE64 33
-
- #define R_X86_64_GOTPC32_TLSDESC 34
- #define R_X86_64_TLSDESC_CALL 35
-
- #define R_X86_64_TLSDESC 36
- #define R_X86_64_IRELATIVE 37
--
--#define R_X86_64_NUM 38
-+#define R_X86_64_RELATIVE64 38
-+#define R_X86_64_NUM 39
-
-
-
-diff -Nur musl-0.9.13/include/limits.h musl-git/include/limits.h
---- musl-0.9.13/include/limits.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/include/limits.h 2013-09-16 20:31:39.000000000 +0200
-@@ -40,7 +40,9 @@
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-
- #define PIPE_BUF 4096
-+#ifdef PAGE_SIZE
- #define PAGESIZE PAGE_SIZE
-+#endif
- #define FILESIZEBITS 64
- #define NAME_MAX 255
- #define SYMLINK_MAX 255
-diff -Nur musl-0.9.13/include/net/if_arp.h musl-git/include/net/if_arp.h
---- musl-0.9.13/include/net/if_arp.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/include/net/if_arp.h 2013-09-16 20:31:39.000000000 +0200
-@@ -52,6 +52,7 @@
- #define ARPHRD_ROSE 270
- #define ARPHRD_X25 271
- #define ARPHRD_HWX25 272
-+#define ARPHRD_CAN 280
- #define ARPHRD_PPP 512
- #define ARPHRD_CISCO 513
- #define ARPHRD_HDLC ARPHRD_CISCO
-@@ -84,7 +85,12 @@
- #define ARPHRD_IEEE80211_PRISM 802
- #define ARPHRD_IEEE80211_RADIOTAP 803
- #define ARPHRD_IEEE802154 804
--#define ARPHRD_IEEE802154_PHY 805
-+#define ARPHRD_IEEE802154_MONITOR 805
-+#define ARPHRD_PHONET 820
-+#define ARPHRD_PHONET_PIPE 821
-+#define ARPHRD_CAIF 822
-+#define ARPHRD_IP6GRE 823
-+#define ARPHRD_NETLINK 824
-
- #define ARPHRD_VOID 0xFFFF
- #define ARPHRD_NONE 0xFFFE
-diff -Nur musl-0.9.13/include/netinet/in.h musl-git/include/netinet/in.h
---- musl-0.9.13/include/netinet/in.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/include/netinet/in.h 2013-09-16 20:31:39.000000000 +0200
-@@ -91,10 +91,12 @@
- #define IPPROTO_NONE 59
- #define IPPROTO_DSTOPTS 60
- #define IPPROTO_MTP 92
-+#define IPPROTO_BEETPH 94
- #define IPPROTO_ENCAP 98
- #define IPPROTO_PIM 103
- #define IPPROTO_COMP 108
- #define IPPROTO_SCTP 132
-+#define IPPROTO_MH 135
- #define IPPROTO_UDPLITE 136
- #define IPPROTO_RAW 255
- #define IPPROTO_MAX 256
-diff -Nur musl-0.9.13/include/sys/ptrace.h musl-git/include/sys/ptrace.h
---- musl-0.9.13/include/sys/ptrace.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/include/sys/ptrace.h 2013-09-16 20:31:39.000000000 +0200
-@@ -37,6 +37,8 @@
- #define PTRACE_INTERRUPT 0x4207
- #define PTRACE_LISTEN 0x4208
- #define PTRACE_PEEKSIGINFO 0x4209
-+#define PTRACE_GETSIGMASK 0x420a
-+#define PTRACE_SETSIGMASK 0x420b
-
- #define PT_READ_I PTRACE_PEEKTEXT
- #define PT_READ_D PTRACE_PEEKDATA
-diff -Nur musl-0.9.13/include/sys/resource.h musl-git/include/sys/resource.h
---- musl-0.9.13/include/sys/resource.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/include/sys/resource.h 2013-09-16 20:31:39.000000000 +0200
-@@ -59,6 +59,9 @@
- #define prlimit64 prlimit
- #endif
-
-+#define PRIO_MIN (-20)
-+#define PRIO_MAX 20
-+
- #define PRIO_PROCESS 0
- #define PRIO_PGRP 1
- #define PRIO_USER 2
-diff -Nur musl-0.9.13/include/sys/socket.h musl-git/include/sys/socket.h
---- musl-0.9.13/include/sys/socket.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/include/sys/socket.h 2013-09-16 20:31:39.000000000 +0200
-@@ -199,6 +199,7 @@
- #define SO_NOFCS 43
- #define SO_LOCK_FILTER 44
- #define SO_SELECT_ERR_QUEUE 45
-+#define SO_BUSY_POLL 46
-
- #ifndef SOL_SOCKET
- #define SOL_SOCKET 1
-diff -Nur musl-0.9.13/include/wait.h musl-git/include/wait.h
---- musl-0.9.13/include/wait.h 1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/include/wait.h 2013-09-16 20:31:39.000000000 +0200
-@@ -0,0 +1,2 @@
-+#warning redirecting incorrect #include <wait.h> to <sys/wait.h>
-+#include <sys/wait.h>
-diff -Nur musl-0.9.13/src/aio/aio_readwrite.c musl-git/src/aio/aio_readwrite.c
---- musl-0.9.13/src/aio/aio_readwrite.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/aio/aio_readwrite.c 2013-09-16 20:31:39.000000000 +0200
-@@ -2,8 +2,8 @@
- #include <fcntl.h>
- #include <errno.h>
- #include <unistd.h>
--#include <limits.h>
- #include "pthread_impl.h"
-+#include "libc.h"
-
- static void dummy(void)
- {
-diff -Nur musl-0.9.13/src/aio/lio_listio.c musl-git/src/aio/lio_listio.c
---- musl-0.9.13/src/aio/lio_listio.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/aio/lio_listio.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,9 +1,9 @@
- #include <aio.h>
- #include <errno.h>
--#include <limits.h>
- #include <unistd.h>
- #include <string.h>
- #include "pthread_impl.h"
-+#include "libc.h"
-
- struct lio_state {
- struct sigevent *sev;
-diff -Nur musl-0.9.13/src/conf/fpathconf.c musl-git/src/conf/fpathconf.c
---- musl-0.9.13/src/conf/fpathconf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/conf/fpathconf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -19,11 +19,11 @@
- [_PC_PRIO_IO] = -1,
- [_PC_SOCK_MAXBUF] = -1,
- [_PC_FILESIZEBITS] = FILESIZEBITS,
-- [_PC_REC_INCR_XFER_SIZE] = PAGE_SIZE,
-- [_PC_REC_MAX_XFER_SIZE] = PAGE_SIZE,
-- [_PC_REC_MIN_XFER_SIZE] = PAGE_SIZE,
-- [_PC_REC_XFER_ALIGN] = PAGE_SIZE,
-- [_PC_ALLOC_SIZE_MIN] = PAGE_SIZE,
-+ [_PC_REC_INCR_XFER_SIZE] = 4096,
-+ [_PC_REC_MAX_XFER_SIZE] = 4096,
-+ [_PC_REC_MIN_XFER_SIZE] = 4096,
-+ [_PC_REC_XFER_ALIGN] = 4096,
-+ [_PC_ALLOC_SIZE_MIN] = 4096,
- [_PC_SYMLINK_MAX] = SYMLINK_MAX,
- [_PC_2_SYMLINKS] = 1
- };
-diff -Nur musl-0.9.13/src/conf/sysconf.c musl-git/src/conf/sysconf.c
---- musl-0.9.13/src/conf/sysconf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/conf/sysconf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -3,6 +3,7 @@
- #include <errno.h>
- #include <sys/resource.h>
- #include "syscall.h"
-+#include "libc.h"
-
- #define VER (-2)
- #define OFLOW (-3)
-@@ -40,9 +41,9 @@
- [_SC_AIO_PRIO_DELTA_MAX] = 0, /* ?? */
- [_SC_DELAYTIMER_MAX] = _POSIX_DELAYTIMER_MAX,
- [_SC_MQ_OPEN_MAX] = -1,
-- [_SC_MQ_PRIO_MAX] = MQ_PRIO_MAX,
-+ [_SC_MQ_PRIO_MAX] = OFLOW,
- [_SC_VERSION] = VER,
-- [_SC_PAGE_SIZE] = PAGE_SIZE,
-+ [_SC_PAGE_SIZE] = OFLOW,
- [_SC_RTSIG_MAX] = 63, /* ?? */
- [_SC_SEM_NSEMS_MAX] = SEM_NSEMS_MAX,
- [_SC_SEM_VALUE_MAX] = OFLOW,
-@@ -221,6 +222,9 @@
- } else if (values[name] == OFLOW) {
- if (name == _SC_ARG_MAX) return ARG_MAX;
- if (name == _SC_SEM_VALUE_MAX) return SEM_VALUE_MAX;
-+ if (name == _SC_MQ_PRIO_MAX) return MQ_PRIO_MAX;
-+ /* name == _SC_PAGE_SIZE */
-+ return PAGE_SIZE;
- } else if (values[name] == CPUCNT) {
- unsigned char set[128] = {1};
- int i, cnt;
-diff -Nur musl-0.9.13/src/env/__libc_start_main.c musl-git/src/env/__libc_start_main.c
---- musl-0.9.13/src/env/__libc_start_main.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/env/__libc_start_main.c 2013-09-16 20:31:39.000000000 +0200
-@@ -26,6 +26,7 @@
- for (i=0; auxv[i]; i+=2) if (auxv[i]<AUX_CNT) aux[auxv[i]] = auxv[i+1];
- __hwcap = aux[AT_HWCAP];
- __sysinfo = aux[AT_SYSINFO];
-+ libc.page_size = aux[AT_PAGESZ];
-
- if (pn) {
- __progname = __progname_full = pn;
-diff -Nur musl-0.9.13/src/internal/libc.h musl-git/src/internal/libc.h
---- musl-0.9.13/src/internal/libc.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/internal/libc.h 2013-09-16 20:31:39.000000000 +0200
-@@ -3,6 +3,7 @@
-
- #include <stdlib.h>
- #include <stdio.h>
-+#include <limits.h>
-
- struct __libc {
- void *main_thread;
-@@ -14,10 +15,15 @@
- FILE *ofl_head;
- int ofl_lock[2];
- size_t tls_size;
-+ size_t page_size;
- };
-
- extern size_t __hwcap;
-
-+#ifndef PAGE_SIZE
-+#define PAGE_SIZE libc.page_size
-+#endif
-+
- #if !defined(__PIC__) || (100*__GNUC__+__GNUC_MINOR__ >= 303 && !defined(__PCC__))
-
- #ifdef __PIC__
-diff -Nur musl-0.9.13/src/internal/libm.h musl-git/src/internal/libm.h
---- musl-0.9.13/src/internal/libm.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/internal/libm.h 2013-09-16 20:31:39.000000000 +0200
-@@ -17,117 +17,115 @@
- #include <float.h>
- #include <math.h>
- #include <complex.h>
-+#include <endian.h>
-
--#include "longdbl.h"
--
--#include "libc.h"
--
--union fshape {
-- float value;
-- uint32_t bits;
-+#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-+#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 && __BYTE_ORDER == __LITTLE_ENDIAN
-+union ldshape {
-+ long double f;
-+ struct {
-+ uint64_t m;
-+ uint16_t se;
-+ } i;
- };
--
--union dshape {
-- double value;
-- uint64_t bits;
-+#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384 && __BYTE_ORDER == __LITTLE_ENDIAN
-+union ldshape {
-+ long double f;
-+ struct {
-+ uint64_t lo;
-+ uint32_t mid;
-+ uint16_t top;
-+ uint16_t se;
-+ } i;
-+ struct {
-+ uint64_t lo;
-+ uint64_t hi;
-+ } i2;
- };
-+#else
-+#error Unsupported long double representation
-+#endif
-
--#define FORCE_EVAL(x) do { \
-- if (sizeof(x) == sizeof(float)) { \
-- volatile float __x; \
-- __x = (x); \
-- } else if (sizeof(x) == sizeof(double)) { \
-- volatile double __x; \
-- __x = (x); \
-- } else { \
-- volatile long double __x; \
-- __x = (x); \
-- } \
-+#define FORCE_EVAL(x) do { \
-+ if (sizeof(x) == sizeof(float)) { \
-+ volatile float __x; \
-+ __x = (x); \
-+ } else if (sizeof(x) == sizeof(double)) { \
-+ volatile double __x; \
-+ __x = (x); \
-+ } else { \
-+ volatile long double __x; \
-+ __x = (x); \
-+ } \
- } while(0)
-
- /* Get two 32 bit ints from a double. */
--#define EXTRACT_WORDS(hi,lo,d) \
--do { \
-- union dshape __u; \
-- __u.value = (d); \
-- (hi) = __u.bits >> 32; \
-- (lo) = (uint32_t)__u.bits; \
--} while (0)
--
--/* Get a 64 bit int from a double. */
--#define EXTRACT_WORD64(i,d) \
--do { \
-- union dshape __u; \
-- __u.value = (d); \
-- (i) = __u.bits; \
-+#define EXTRACT_WORDS(hi,lo,d) \
-+do { \
-+ union {double f; uint64_t i;} __u; \
-+ __u.f = (d); \
-+ (hi) = __u.i >> 32; \
-+ (lo) = (uint32_t)__u.i; \
- } while (0)
-
- /* Get the more significant 32 bit int from a double. */
--#define GET_HIGH_WORD(i,d) \
--do { \
-- union dshape __u; \
-- __u.value = (d); \
-- (i) = __u.bits >> 32; \
-+#define GET_HIGH_WORD(hi,d) \
-+do { \
-+ union {double f; uint64_t i;} __u; \
-+ __u.f = (d); \
-+ (hi) = __u.i >> 32; \
- } while (0)
-
- /* Get the less significant 32 bit int from a double. */
--#define GET_LOW_WORD(i,d) \
--do { \
-- union dshape __u; \
-- __u.value = (d); \
-- (i) = (uint32_t)__u.bits; \
-+#define GET_LOW_WORD(lo,d) \
-+do { \
-+ union {double f; uint64_t i;} __u; \
-+ __u.f = (d); \
-+ (lo) = (uint32_t)__u.i; \
- } while (0)
-
- /* Set a double from two 32 bit ints. */
--#define INSERT_WORDS(d,hi,lo) \
--do { \
-- union dshape __u; \
-- __u.bits = ((uint64_t)(hi) << 32) | (uint32_t)(lo); \
-- (d) = __u.value; \
--} while (0)
--
--/* Set a double from a 64 bit int. */
--#define INSERT_WORD64(d,i) \
--do { \
-- union dshape __u; \
-- __u.bits = (i); \
-- (d) = __u.value; \
-+#define INSERT_WORDS(d,hi,lo) \
-+do { \
-+ union {double f; uint64_t i;} __u; \
-+ __u.i = ((uint64_t)(hi)<<32) | (uint32_t)(lo); \
-+ (d) = __u.f; \
- } while (0)
-
- /* Set the more significant 32 bits of a double from an int. */
--#define SET_HIGH_WORD(d,hi) \
--do { \
-- union dshape __u; \
-- __u.value = (d); \
-- __u.bits &= 0xffffffff; \
-- __u.bits |= (uint64_t)(hi) << 32; \
-- (d) = __u.value; \
-+#define SET_HIGH_WORD(d,hi) \
-+do { \
-+ union {double f; uint64_t i;} __u; \
-+ __u.f = (d); \
-+ __u.i &= 0xffffffff; \
-+ __u.i |= (uint64_t)(hi) << 32; \
-+ (d) = __u.f; \
- } while (0)
-
- /* Set the less significant 32 bits of a double from an int. */
--#define SET_LOW_WORD(d,lo) \
--do { \
-- union dshape __u; \
-- __u.value = (d); \
-- __u.bits &= 0xffffffff00000000ull; \
-- __u.bits |= (uint32_t)(lo); \
-- (d) = __u.value; \
-+#define SET_LOW_WORD(d,lo) \
-+do { \
-+ union {double f; uint64_t i;} __u; \
-+ __u.f = (d); \
-+ __u.i &= 0xffffffff00000000ull; \
-+ __u.i |= (uint32_t)(lo); \
-+ (d) = __u.f; \
- } while (0)
-
- /* Get a 32 bit int from a float. */
--#define GET_FLOAT_WORD(i,d) \
--do { \
-- union fshape __u; \
-- __u.value = (d); \
-- (i) = __u.bits; \
-+#define GET_FLOAT_WORD(w,d) \
-+do { \
-+ union {float f; uint32_t i;} __u; \
-+ __u.f = (d); \
-+ (w) = __u.i; \
- } while (0)
-
- /* Set a float from a 32 bit int. */
--#define SET_FLOAT_WORD(d,i) \
--do { \
-- union fshape __u; \
-- __u.bits = (i); \
-- (d) = __u.value; \
-+#define SET_FLOAT_WORD(d,w) \
-+do { \
-+ union {float f; uint32_t i;} __u; \
-+ __u.i = (w); \
-+ (d) = __u.f; \
- } while (0)
-
- /* fdlibm kernel functions */
-@@ -157,15 +155,4 @@
- long double __polevll(long double, const long double *, int);
- long double __p1evll(long double, const long double *, int);
-
--#if 0
--/* Attempt to get strict C99 semantics for assignment with non-C99 compilers. */
--#define STRICT_ASSIGN(type, lval, rval) do { \
-- volatile type __v = (rval); \
-- (lval) = __v; \
--} while (0)
--#else
--/* Should work wit