From 9fefab63a7256b36807cb0f5eb8a290468582c2c Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sun, 9 Mar 2014 18:09:34 +0100 Subject: add the stable cubox-i kernel 3.10.30, add kernel patch from solidrun git --- .../patches/3.10.30/cleankernel.patch | 11 + .../kernel-headers/patches/3.10.30/mkpiggy.patch | 28 + .../kernel-headers/patches/3.10.30/relocs.patch | 2693 ++++++++++++++++++++ .../kernel-headers/patches/3.10.30/sgidefs.patch | 18 + .../kernel-headers/patches/3.10.30/sortext.patch | 33 + 5 files changed, 2783 insertions(+) create mode 100644 toolchain/kernel-headers/patches/3.10.30/cleankernel.patch create mode 100644 toolchain/kernel-headers/patches/3.10.30/mkpiggy.patch create mode 100644 toolchain/kernel-headers/patches/3.10.30/relocs.patch create mode 100644 toolchain/kernel-headers/patches/3.10.30/sgidefs.patch create mode 100644 toolchain/kernel-headers/patches/3.10.30/sortext.patch (limited to 'toolchain') diff --git a/toolchain/kernel-headers/patches/3.10.30/cleankernel.patch b/toolchain/kernel-headers/patches/3.10.30/cleankernel.patch new file mode 100644 index 000000000..5f26a6b72 --- /dev/null +++ b/toolchain/kernel-headers/patches/3.10.30/cleankernel.patch @@ -0,0 +1,11 @@ +diff -Nur linux-3.10.30.orig/scripts/Makefile.headersinst linux-3.10.30/scripts/Makefile.headersinst +--- linux-3.10.30.orig/scripts/Makefile.headersinst 2014-02-13 22:48:15.000000000 +0100 ++++ linux-3.10.30/scripts/Makefile.headersinst 2014-03-09 09:47:17.000000000 +0100 +@@ -99,7 +99,6 @@ + + targets += $(install-file) + $(install-file): scripts/headers_install.sh $(input-files) FORCE +- $(if $(unwanted),$(call cmd,remove),) + $(if $(wildcard $(dir $@)),,$(shell mkdir -p $(dir $@))) + $(call if_changed,install) + diff --git a/toolchain/kernel-headers/patches/3.10.30/mkpiggy.patch b/toolchain/kernel-headers/patches/3.10.30/mkpiggy.patch new file mode 100644 index 000000000..d4e815cd2 --- /dev/null +++ b/toolchain/kernel-headers/patches/3.10.30/mkpiggy.patch @@ -0,0 +1,28 @@ +diff -Nur linux-3.4.4.orig/arch/x86/boot/compressed/mkpiggy.c linux-3.4.4/arch/x86/boot/compressed/mkpiggy.c +--- linux-3.4.4.orig/arch/x86/boot/compressed/mkpiggy.c 2012-06-22 20:37:50.000000000 +0200 ++++ linux-3.4.4/arch/x86/boot/compressed/mkpiggy.c 2012-07-03 09:48:02.000000000 +0200 +@@ -29,7 +29,14 @@ + #include + #include + #include +-#include ++ ++static uint32_t getle32(const void *p) ++{ ++ const uint8_t *cp = p; ++ ++ return (uint32_t)cp[0] + ((uint32_t)cp[1] << 8) + ++ ((uint32_t)cp[2] << 16) + ((uint32_t)cp[3] << 24); ++} + + int main(int argc, char *argv[]) + { +@@ -62,7 +69,7 @@ + } + + ilen = ftell(f); +- olen = get_unaligned_le32(&olen); ++ olen = getle32(&olen); + fclose(f); + + /* diff --git a/toolchain/kernel-headers/patches/3.10.30/relocs.patch b/toolchain/kernel-headers/patches/3.10.30/relocs.patch new file mode 100644 index 000000000..649b9e73e --- /dev/null +++ b/toolchain/kernel-headers/patches/3.10.30/relocs.patch @@ -0,0 +1,2693 @@ +diff -Nur linux-3.11.5.orig/arch/x86/tools/relocs.h linux-3.11.5/arch/x86/tools/relocs.h +--- linux-3.11.5.orig/arch/x86/tools/relocs.h 2013-10-14 03:14:45.000000000 +0200 ++++ linux-3.11.5/arch/x86/tools/relocs.h 2013-10-20 17:41:16.000000000 +0200 +@@ -9,10 +9,14 @@ + #include + #include + #include ++#ifdef __linux__ + #include + #include + #define USE_BSD + #include ++#else ++#include "elf.h" ++#endif + #include + #include + +diff -Nur linux-3.11.5.orig/tools/include/elf.h linux-3.11.5/tools/include/elf.h +--- linux-3.11.5.orig/tools/include/elf.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.11.5/tools/include/elf.h 2013-10-20 17:42:10.000000000 +0200 +@@ -0,0 +1,2671 @@ ++#ifndef _ELF_H ++#define _ELF_H ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++#include ++ ++typedef uint16_t Elf32_Half; ++typedef uint16_t Elf64_Half; ++ ++typedef uint32_t Elf32_Word; ++typedef int32_t Elf32_Sword; ++typedef uint32_t Elf64_Word; ++typedef int32_t Elf64_Sword; ++ ++typedef uint64_t Elf32_Xword; ++typedef int64_t Elf32_Sxword; ++typedef uint64_t Elf64_Xword; ++typedef int64_t Elf64_Sxword; ++ ++typedef uint32_t Elf32_Addr; ++typedef uint64_t Elf64_Addr; ++ ++typedef uint32_t Elf32_Off; ++typedef uint64_t Elf64_Off; ++ ++typedef uint16_t Elf32_Section; ++typedef uint16_t Elf64_Section; ++ ++typedef Elf32_Half Elf32_Versym; ++typedef Elf64_Half Elf64_Versym; ++ ++#define EI_NIDENT (16) ++ ++typedef struct { ++ unsigned char e_ident[EI_NIDENT]; ++ Elf32_Half e_type; ++ Elf32_Half e_machine; ++ Elf32_Word e_version; ++ Elf32_Addr e_entry; ++ Elf32_Off e_phoff; ++ Elf32_Off e_shoff; ++ Elf32_Word e_flags; ++ Elf32_Half e_ehsize; ++ Elf32_Half e_phentsize; ++ Elf32_Half e_phnum; ++ Elf32_Half e_shentsize; ++ Elf32_Half e_shnum; ++ Elf32_Half e_shstrndx; ++} Elf32_Ehdr; ++ ++typedef struct { ++ unsigned char e_ident[EI_NIDENT]; ++ Elf64_Half e_type; ++ Elf64_Half e_machine; ++ Elf64_Word e_version; ++ Elf64_Addr e_entry; ++ Elf64_Off e_phoff; ++ Elf64_Off e_shoff; ++ Elf64_Word e_flags; ++ Elf64_Half e_ehsize; ++ Elf64_Half e_phentsize; ++ Elf64_Half e_phnum; ++ Elf64_Half e_shentsize; ++ Elf64_Half e_shnum; ++ Elf64_Half e_shstrndx; ++} Elf64_Ehdr; ++ ++#define EI_MAG0 0 ++#define ELFMAG0 0x7f ++ ++#define EI_MAG1 1 ++#define ELFMAG1 'E' ++ ++#define EI_MAG2 2 ++#define ELFMAG2 'L' ++ ++#define EI_MAG3 3 ++#define ELFMAG3 'F' ++ ++ ++#define ELFMAG "\177ELF" ++#define SELFMAG 4 ++ ++#define EI_CLASS 4 ++#define ELFCLASSNONE 0 ++#define ELFCLASS32 1 ++#define ELFCLASS64 2 ++#define ELFCLASSNUM 3 ++ ++#define EI_DATA 5 ++#define ELFDATANONE 0 ++#define ELFDATA2LSB 1 ++#define ELFDATA2MSB 2 ++#define ELFDATANUM 3 ++ ++#define EI_VERSION 6 ++ ++ ++#define EI_OSABI 7 ++#define ELFOSABI_NONE 0 ++#define ELFOSABI_SYSV 0 ++#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 ++#define ELFOSABI_FREEBSD 9 ++#define ELFOSABI_TRU64 10 ++#define ELFOSABI_MODESTO 11 ++#define ELFOSABI_OPENBSD 12 ++#define ELFOSABI_ARM 97 ++#define ELFOSABI_STANDALONE 255 ++ ++#define EI_ABIVERSION 8 ++ ++#define EI_PAD 9 ++ ++ ++ ++#define ET_NONE 0 ++#define ET_REL 1 ++#define ET_EXEC 2 ++#define ET_DYN 3 ++#define ET_CORE 4 ++#define ET_NUM 5 ++#define ET_LOOS 0xfe00 ++#define ET_HIOS 0xfeff ++#define ET_LOPROC 0xff00 ++#define ET_HIPROC 0xffff ++ ++ ++ ++#define EM_NONE 0 ++#define EM_M32 1 ++#define EM_SPARC 2 ++#define EM_386 3 ++#define EM_68K 4 ++#define EM_88K 5 ++#define EM_860 7 ++#define EM_MIPS 8 ++#define EM_S370 9 ++#define EM_MIPS_RS3_LE 10 ++ ++#define EM_PARISC 15 ++#define EM_VPP500 17 ++#define EM_SPARC32PLUS 18 ++#define EM_960 19 ++#define EM_PPC 20 ++#define EM_PPC64 21 ++#define EM_S390 22 ++ ++#define EM_V800 36 ++#define EM_FR20 37 ++#define EM_RH32 38 ++#define EM_RCE 39 ++#define EM_ARM 40 ++#define EM_FAKE_ALPHA 41 ++#define EM_SH 42 ++#define EM_SPARCV9 43 ++#define EM_TRICORE 44 ++#define EM_ARC 45 ++#define EM_H8_300 46 ++#define EM_H8_300H 47 ++#define EM_H8S 48 ++#define EM_H8_500 49 ++#define EM_IA_64 50 ++#define EM_MIPS_X 51 ++#define EM_COLDFIRE 52 ++#define EM_68HC12 53 ++#define EM_MMA 54 ++#define EM_PCP 55 ++#define EM_NCPU 56 ++#define EM_NDR1 57 ++#define EM_STARCORE 58 ++#define EM_ME16 59 ++#define EM_ST100 60 ++#define EM_TINYJ 61 ++#define EM_X86_64 62 ++#define EM_PDSP 63 ++ ++#define EM_FX66 66 ++#define EM_ST9PLUS 67 ++#define EM_ST7 68 ++#define EM_68HC16 69 ++#define EM_68HC11 70 ++#define EM_68HC08 71 ++#define EM_68HC05 72 ++#define EM_SVX 73 ++#define EM_ST19 74 ++#define EM_VAX 75 ++#define EM_CRIS 76 ++#define EM_JAVELIN 77 ++#define EM_FIREPATH 78 ++#define EM_ZSP 79 ++#define EM_MMIX 80 ++#define EM_HUANY 81 ++#define EM_PRISM 82 ++#define EM_AVR 83 ++#define EM_FR30 84 ++#define EM_D10V 85 ++#define EM_D30V 86 ++#define EM_V850 87 ++#define EM_M32R 88 ++#define EM_MN10300 89 ++#define EM_MN10200 90 ++#define EM_PJ 91 ++#define EM_OPENRISC 92 ++#define EM_ARC_A5 93 ++#define EM_XTENSA 94 ++#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 ++#define EV_CURRENT 1 ++#define EV_NUM 2 ++ ++typedef struct { ++ Elf32_Word sh_name; ++ Elf32_Word sh_type; ++ Elf32_Word sh_flags; ++ Elf32_Addr sh_addr; ++ Elf32_Off sh_offset; ++ Elf32_Word sh_size; ++ Elf32_Word sh_link; ++ Elf32_Word sh_info; ++ Elf32_Word sh_addralign; ++ Elf32_Word sh_entsize; ++} Elf32_Shdr; ++ ++typedef struct { ++ Elf64_Word sh_name; ++ Elf64_Word sh_type; ++ Elf64_Xword sh_flags; ++ Elf64_Addr sh_addr; ++ Elf64_Off sh_offset; ++ Elf64_Xword sh_size; ++ Elf64_Word sh_link; ++ Elf64_Word sh_info; ++ Elf64_Xword sh_addralign; ++ Elf64_Xword sh_entsize; ++} Elf64_Shdr; ++ ++ ++ ++#define SHN_UNDEF 0 ++#define SHN_LORESERVE 0xff00 ++#define SHN_LOPROC 0xff00 ++#define SHN_BEFORE 0xff00 ++ ++#define SHN_AFTER 0xff01 ++ ++#define SHN_HIPROC 0xff1f ++#define SHN_LOOS 0xff20 ++#define SHN_HIOS 0xff3f ++#define SHN_ABS 0xfff1 ++#define SHN_COMMON 0xfff2 ++#define SHN_XINDEX 0xffff ++#define SHN_HIRESERVE 0xffff ++ ++ ++ ++#define SHT_NULL 0 ++#define SHT_PROGBITS 1 ++#define SHT_SYMTAB 2 ++#define SHT_STRTAB 3 ++#define SHT_RELA 4 ++#define SHT_HASH 5 ++#define SHT_DYNAMIC 6 ++#define SHT_NOTE 7 ++#define SHT_NOBITS 8 ++#define SHT_REL 9 ++#define SHT_SHLIB 10 ++#define SHT_DYNSYM 11 ++#define SHT_INIT_ARRAY 14 ++#define SHT_FINI_ARRAY 15 ++#define SHT_PREINIT_ARRAY 16 ++#define SHT_GROUP 17 ++#define SHT_SYMTAB_SHNDX 18 ++#define SHT_NUM 19 ++#define SHT_LOOS 0x60000000 ++#define SHT_GNU_ATTRIBUTES 0x6ffffff5 ++#define SHT_GNU_HASH 0x6ffffff6 ++#define SHT_GNU_LIBLIST 0x6ffffff7 ++#define SHT_CHECKSUM 0x6ffffff8 ++#define SHT_LOSUNW 0x6ffffffa ++#define SHT_SUNW_move 0x6ffffffa ++#define SHT_SUNW_COMDAT 0x6ffffffb ++#define SHT_SUNW_syminfo 0x6ffffffc ++#define SHT_GNU_verdef 0x6ffffffd ++#define SHT_GNU_verneed 0x6ffffffe ++#define SHT_GNU_versym 0x6fffffff ++#define SHT_HISUNW 0x6fffffff ++#define SHT_HIOS 0x6fffffff ++#define SHT_LOPROC 0x70000000 ++#define SHT_HIPROC 0x7fffffff ++#define SHT_LOUSER 0x80000000 ++#define SHT_HIUSER 0x8fffffff ++ ++#define SHF_WRITE (1 << 0) ++#define SHF_ALLOC (1 << 1) ++#define SHF_EXECINSTR (1 << 2) ++#define SHF_MERGE (1 << 4) ++#define SHF_STRINGS (1 << 5) ++#define SHF_INFO_LINK (1 << 6) ++#define SHF_LINK_ORDER (1 << 7) ++#define SHF_OS_NONCONFORMING (1 << 8) ++ ++#define SHF_GROUP (1 << 9) ++#define SHF_TLS (1 << 10) ++#define SHF_MASKOS 0x0ff00000 ++#define SHF_MASKPROC 0xf0000000 ++#define SHF_ORDERED (1 << 30) ++#define SHF_EXCLUDE (1 << 31) ++ ++#define GRP_COMDAT 0x1 ++ ++typedef struct { ++ Elf32_Word st_name; ++ Elf32_Addr st_value; ++ Elf32_Word st_size; ++ unsigned char st_info; ++ unsigned char st_other; ++ Elf32_Section st_shndx; ++} Elf32_Sym; ++ ++typedef struct { ++ Elf64_Word st_name; ++ unsigned char st_info; ++ unsigned char st_other; ++ Elf64_Section st_shndx; ++ Elf64_Addr st_value; ++ Elf64_Xword st_size; ++} Elf64_Sym; ++ ++typedef struct { ++ Elf32_Half si_boundto; ++ Elf32_Half si_flags; ++} Elf32_Syminfo; ++ ++typedef struct { ++ Elf64_Half si_boundto; ++ Elf64_Half si_flags; ++} Elf64_Syminfo; ++ ++#define SYMINFO_BT_SELF 0xffff ++#define SYMINFO_BT_PARENT 0xfffe ++#define SYMINFO_BT_LOWRESERVE 0xff00 ++ ++#define SYMINFO_FLG_DIRECT 0x0001 ++#define SYMINFO_FLG_PASSTHRU 0x0002 ++#define SYMINFO_FLG_COPY 0x0004 ++#define SYMINFO_FLG_LAZYLOAD 0x0008 ++ ++#define SYMINFO_NONE 0 ++#define SYMINFO_CURRENT 1 ++#define SYMINFO_NUM 2 ++ ++#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4) ++#define ELF32_ST_TYPE(val) ((val) & 0xf) ++#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf)) ++ ++#define ELF64_ST_BIND(val) ELF32_ST_BIND (val) ++#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val) ++#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type)) ++ ++#define STB_LOCAL 0 ++#define STB_GLOBAL 1 ++#define STB_WEAK 2 ++#define STB_NUM 3 ++#define STB_LOOS 10 ++#define STB_GNU_UNIQUE 10 ++#define STB_HIOS 12 ++#define STB_LOPROC 13 ++#define STB_HIPROC 15 ++ ++#define STT_NOTYPE 0 ++#define STT_OBJECT 1 ++#define STT_FUNC 2 ++#define STT_SECTION 3 ++#define STT_FILE 4 ++#define STT_COMMON 5 ++#define STT_TLS 6 ++#define STT_NUM 7 ++#define STT_LOOS 10 ++#define STT_GNU_IFUNC 10 ++#define STT_HIOS 12 ++#define STT_LOPROC 13 ++#define STT_HIPROC 15 ++ ++#define STN_UNDEF 0 ++ ++#define ELF32_ST_VISIBILITY(o) ((o) & 0x03) ++#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o) ++ ++#define STV_DEFAULT 0 ++#define STV_INTERNAL 1 ++#define STV_HIDDEN 2 ++#define STV_PROTECTED 3 ++ ++ ++ ++ ++typedef struct ++{ ++ Elf32_Addr r_offset; ++ Elf32_Word r_info; ++} Elf32_Rel; ++ ++typedef struct { ++ Elf64_Addr r_offset; ++ Elf64_Xword r_info; ++} Elf64_Rel; ++ ++ ++ ++typedef struct { ++ Elf32_Addr r_offset; ++ Elf32_Word r_info; ++ Elf32_Sword r_addend; ++} Elf32_Rela; ++ ++typedef struct { ++ Elf64_Addr r_offset; ++ Elf64_Xword r_info; ++ Elf64_Sxword r_addend; ++} Elf64_Rela; ++ ++ ++ ++#define ELF32_R_SYM(val) ((val) >> 8) ++#define ELF32_R_TYPE(val) ((val) & 0xff) ++#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff)) ++ ++#define ELF64_R_SYM(i) ((i) >> 32) ++#define ELF64_R_TYPE(i) ((i) & 0xffffffff) ++#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type)) ++ ++ ++ ++typedef struct { ++ Elf32_Word p_type; ++ Elf32_Off p_offset; ++ Elf32_Addr p_vaddr; ++ Elf32_Addr p_paddr; ++ Elf32_Word p_filesz; ++ Elf32_Word p_memsz; ++ Elf32_Word p_flags; ++ Elf32_Word p_align; ++} Elf32_Phdr; ++ ++typedef struct { ++ Elf64_Word p_type; ++ Elf64_Word p_flags; ++ Elf64_Off p_offset; ++ Elf64_Addr p_vaddr; ++ Elf64_Addr p_paddr; ++ Elf64_Xword p_filesz; ++ Elf64_Xword p_memsz; ++ Elf64_Xword p_align; ++} Elf64_Phdr; ++ ++ ++ ++#define PT_NULL 0 ++#define PT_LOAD 1 ++#define PT_DYNAMIC 2 ++#define PT_INTERP 3 ++#define PT_NOTE 4 ++#define PT_SHLIB 5 ++#define PT_PHDR 6 ++#define PT_TLS 7 ++#define PT_NUM 8 ++#define PT_LOOS 0x60000000 ++#define PT_GNU_EH_FRAME 0x6474e550 ++#define PT_GNU_STACK 0x6474e551 ++#define PT_GNU_RELRO 0x6474e552 ++#define PT_LOSUNW 0x6ffffffa ++#define PT_SUNWBSS 0x6ffffffa ++#define PT_SUNWSTACK 0x6ffffffb ++#define PT_HISUNW 0x6fffffff ++#define PT_HIOS 0x6fffffff ++#define PT_LOPROC 0x70000000 ++#define PT_HIPROC 0x7fffffff ++ ++ ++#define PN_XNUM 0xffff ++ ++ ++#define PF_X (1 << 0) ++#define PF_W (1 << 1) ++#define PF_R (1 << 2) ++#define PF_MASKOS 0x0ff00000 ++#define PF_MASKPROC 0xf0000000 ++ ++ ++ ++#define NT_PRSTATUS 1 ++#define NT_FPREGSET 2 ++#define NT_PRPSINFO 3 ++#define NT_PRXREG 4 ++#define NT_TASKSTRUCT 4 ++#define NT_PLATFORM 5 ++#define NT_AUXV 6 ++#define NT_GWINDOWS 7 ++#define NT_ASRS 8 ++#define NT_PSTATUS 10 ++#define NT_PSINFO 13 ++#define NT_PRCRED 14 ++#define NT_UTSNAME 15 ++#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 ++ ++ ++ ++ ++typedef struct { ++ Elf32_Sword d_tag; ++ union { ++ Elf32_Word d_val; ++ Elf32_Addr d_ptr; ++ } d_un; ++} Elf32_Dyn; ++ ++typedef struct { ++ Elf64_Sxword d_tag; ++ union { ++ Elf64_Xword d_val; ++ Elf64_Addr d_ptr; ++ } d_un; ++} Elf64_Dyn; ++ ++ ++ ++#define DT_NULL 0 ++#define DT_NEEDED 1 ++#define DT_PLTRELSZ 2 ++#define DT_PLTGOT 3 ++#define DT_HASH 4 ++#define DT_STRTAB 5 ++#define DT_SYMTAB 6 ++#define DT_RELA 7 ++#define DT_RELASZ 8 ++#define DT_RELAENT 9 ++#define DT_STRSZ 10 ++#define DT_SYMENT 11 ++#define DT_INIT 12 ++#define DT_FINI 13 ++#define DT_SONAME 14 ++#define DT_RPATH 15 ++#define DT_SYMBOLIC 16 ++#define DT_REL 17 ++#define DT_RELSZ 18 ++#define DT_RELENT 19 ++#define DT_PLTREL 20 ++#define DT_DEBUG 21 ++#define DT_TEXTREL 22 ++#define DT_JMPREL 23 ++#define DT_BIND_NOW 24 ++#define DT_INIT_ARRAY 25 ++#define DT_FINI_ARRAY 26 ++#define DT_INIT_ARRAYSZ 27 ++#define DT_FINI_ARRAYSZ 28 ++#define DT_RUNPATH 29 ++#define DT_FLAGS 30 ++#define DT_ENCODING 32 ++#define DT_PREINIT_ARRAY 32 ++#define DT_PREINIT_ARRAYSZ 33 ++#define DT_NUM 34 ++#define DT_LOOS 0x6000000d ++#define DT_HIOS 0x6ffff000 ++#define DT_LOPROC 0x70000000 ++#define DT_HIPROC 0x7fffffff ++#define DT_PROCNUM DT_MIPS_NUM ++ ++#define DT_VALRNGLO 0x6ffffd00 ++#define DT_GNU_PRELINKED 0x6ffffdf5 ++#define DT_GNU_CONFLICTSZ 0x6ffffdf6 ++#define DT_GNU_LIBLISTSZ 0x6ffffdf7 ++#define DT_CHECKSUM 0x6ffffdf8 ++#define DT_PLTPADSZ 0x6ffffdf9 ++#define DT_MOVEENT 0x6ffffdfa ++#define DT_MOVESZ 0x6ffffdfb ++#define DT_FEATURE_1 0x6ffffdfc ++#define DT_POSFLAG_1 0x6ffffdfd ++ ++#define DT_SYMINSZ 0x6ffffdfe ++#define DT_SYMINENT 0x6ffffdff ++#define DT_VALRNGHI 0x6ffffdff ++#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag)) ++#define DT_VALNUM 12 ++ ++#define DT_ADDRRNGLO 0x6ffffe00 ++#define DT_GNU_HASH 0x6ffffef5 ++#define DT_TLSDESC_PLT 0x6ffffef6 ++#define DT_TLSDESC_GOT 0x6ffffef7 ++#define DT_GNU_CONFLICT 0x6ffffef8 ++#define DT_GNU_LIBLIST 0x6ffffef9 ++#define DT_CONFIG 0x6ffffefa ++#define DT_DEPAUDIT 0x6ffffefb ++#define DT_AUDIT 0x6ffffefc ++#define DT_PLTPAD 0x6ffffefd ++#define DT_MOVETAB 0x6ffffefe ++#define DT_SYMINFO 0x6ffffeff ++#define DT_ADDRRNGHI 0x6ffffeff ++#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag)) ++#define DT_ADDRNUM 11 ++ ++ ++ ++#define DT_VERSYM 0x6ffffff0 ++ ++#define DT_RELACOUNT 0x6ffffff9 ++#define DT_RELCOUNT 0x6ffffffa ++ ++ ++#define DT_FLAGS_1 0x6ffffffb ++#define DT_VERDEF 0x6ffffffc ++ ++#define DT_VERDEFNUM 0x6ffffffd ++#define DT_VERNEED 0x6ffffffe ++ ++#define DT_VERNEEDNUM 0x6fffffff ++#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) ++#define DT_VERSIONTAGNUM 16 ++ ++ ++ ++#define DT_AUXILIARY 0x7ffffffd ++#define DT_FILTER 0x7fffffff ++#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1) ++#define DT_EXTRANUM 3 ++ ++ ++#define DF_ORIGIN 0x00000001 ++#define DF_SYMBOLIC 0x00000002 ++#define DF_TEXTREL 0x00000004 ++#define DF_BIND_NOW 0x00000008 ++#define DF_STATIC_TLS 0x00000010 ++ ++ ++ ++#define DF_1_NOW 0x00000001 ++#define DF_1_GLOBAL 0x00000002 ++#define DF_1_GROUP 0x00000004 ++#define DF_1_NODELETE 0x00000008 ++#define DF_1_LOADFLTR 0x00000010 ++#define DF_1_INITFIRST 0x00000020 ++#define DF_1_NOOPEN 0x00000040 ++#define DF_1_ORIGIN 0x00000080 ++#define DF_1_DIRECT 0x00000100 ++#define DF_1_TRANS 0x00000200 ++#define DF_1_INTERPOSE 0x00000400 ++#define DF_1_NODEFLIB 0x00000800 ++#define DF_1_NODUMP 0x00001000 ++#define DF_1_CONFALT 0x00002000 ++#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 ++ ++ ++#define DF_P1_LAZYLOAD 0x00000001 ++#define DF_P1_GROUPPERM 0x00000002 ++ ++ ++ ++ ++typedef struct { ++ Elf32_Half vd_version; ++ Elf32_Half vd_flags; ++ Elf32_Half vd_ndx; ++ Elf32_Half vd_cnt; ++ Elf32_Word vd_hash; ++ Elf32_Word vd_aux; ++ Elf32_Word vd_next; ++} Elf32_Verdef; ++ ++typedef struct { ++ Elf64_Half vd_version; ++ Elf64_Half vd_flags; ++ Elf64_Half vd_ndx; ++ Elf64_Half vd_cnt; ++ Elf64_Word vd_hash; ++ Elf64_Word vd_aux; ++ Elf64_Word vd_next; ++} Elf64_Verdef; ++ ++ ++ ++#define VER_DEF_NONE 0 ++#define VER_DEF_CURRENT 1 ++#define VER_DEF_NUM 2 ++ ++ ++#define VER_FLG_BASE 0x1 ++#define VER_FLG_WEAK 0x2 ++ ++ ++#define VER_NDX_LOCAL 0 ++#define VER_NDX_GLOBAL 1 ++#define VER_NDX_LORESERVE 0xff00 ++#define VER_NDX_ELIMINATE 0xff01 ++ ++ ++ ++typedef struct { ++ Elf32_Word vda_name; ++ Elf32_Word vda_next; ++} Elf32_Verdaux; ++ ++typedef struct { ++ Elf64_Word vda_name; ++ Elf64_Word vda_next; ++} Elf64_Verdaux; ++ ++ ++ ++ ++typedef struct { ++ Elf32_Half vn_version; ++ Elf32_Half vn_cnt; ++ Elf32_Word vn_file; ++ Elf32_Word vn_aux; ++ Elf32_Word vn_next; ++} Elf32_Verneed; ++ ++typedef struct { ++ Elf64_Half vn_version; ++ Elf64_Half vn_cnt; ++ Elf64_Word vn_file; ++ Elf64_Word vn_aux; ++ Elf64_Word vn_next; ++} Elf64_Verneed; ++ ++ ++ ++#define VER_NEED_NONE 0 ++#define VER_NEED_CURRENT 1 ++#define VER_NEED_NUM 2 ++ ++ ++ ++typedef struct { ++ Elf32_Word vna_hash; ++ Elf32_Half vna_flags; ++ Elf32_Half vna_other; ++ Elf32_Word vna_name; ++ Elf32_Word vna_next; ++} Elf32_Vernaux; ++ ++typedef struct { ++ Elf64_Word vna_hash; ++ Elf64_Half vna_flags; ++ Elf64_Half vna_other; ++ Elf64_Word vna_name; ++ Elf64_Word vna_next; ++} Elf64_Vernaux; ++ ++ ++ ++#define VER_FLG_WEAK 0x2 ++ ++ ++ ++typedef struct { ++ uint32_t a_type; ++ union { ++ uint32_t a_val; ++ } a_un; ++} Elf32_auxv_t; ++ ++typedef struct { ++ uint64_t a_type; ++ union { ++ uint64_t a_val; ++ } a_un; ++} Elf64_auxv_t; ++ ++ ++ ++#define AT_NULL 0 ++#define AT_IGNORE 1 ++#define AT_EXECFD 2 ++#define AT_PHDR 3 ++#define AT_PHENT 4 ++#define AT_PHNUM 5 ++#define AT_PAGESZ 6 ++#define AT_BASE 7 ++#define AT_FLAGS 8 ++#define AT_ENTRY 9 ++#define AT_NOTELF 10 ++#define AT_UID 11 ++#define AT_EUID 12 ++#define AT_GID 13 ++#define AT_EGID 14 ++#define AT_CLKTCK 17 ++ ++ ++#define AT_PLATFORM 15 ++#define AT_HWCAP 16 ++ ++ ++ ++ ++#define AT_FPUCW 18 ++ ++ ++#define AT_DCACHEBSIZE 19 ++#define AT_ICACHEBSIZE 20 ++#define AT_UCACHEBSIZE 21 ++ ++ ++ ++#define AT_IGNOREPPC 22 ++ ++#define AT_SECURE 23 ++ ++#define AT_BASE_PLATFORM 24 ++ ++#define AT_RANDOM 25 ++ ++#define AT_HWCAP2 26 ++ ++#define AT_EXECFN 31 ++ ++ ++ ++#define AT_SYSINFO 32 ++#define AT_SYSINFO_EHDR 33 ++ ++ ++ ++#define AT_L1I_CACHESHAPE 34 ++#define AT_L1D_CACHESHAPE 35 ++#define AT_L2_CACHESHAPE 36 ++#define AT_L3_CACHESHAPE 37 ++ ++ ++ ++ ++typedef struct { ++ Elf32_Word n_namesz; ++ Elf32_Word n_descsz; ++ Elf32_Word n_type; ++} Elf32_Nhdr; ++ ++typedef struct { ++ Elf64_Word n_namesz; ++ Elf64_Word n_descsz; ++ Elf64_Word n_type; ++} Elf64_Nhdr; ++ ++ ++ ++ ++#define ELF_NOTE_SOLARIS "SUNW Solaris" ++ ++ ++#define ELF_NOTE_GNU "GNU" ++ ++ ++ ++ ++ ++#define ELF_NOTE_PAGESIZE_HINT 1 ++ ++ ++#define NT_GNU_ABI_TAG 1 ++#define ELF_NOTE_ABI NT_GNU_ABI_TAG ++ ++ ++ ++#define ELF_NOTE_OS_LINUX 0 ++#define ELF_NOTE_OS_GNU 1 ++#define ELF_NOTE_OS_SOLARIS2 2 ++#define ELF_NOTE_OS_FREEBSD 3 ++ ++#define NT_GNU_BUILD_ID 3 ++#define NT_GNU_GOLD_VERSION 4 ++ ++ ++ ++typedef struct { ++ Elf32_Xword m_value; ++ Elf32_Word m_info; ++ Elf32_Word m_poffset; ++ Elf32_Half m_repeat; ++ Elf32_Half m_stride; ++} Elf32_Move; ++ ++typedef struct { ++ Elf64_Xword m_value; ++ Elf64_Xword m_info; ++ Elf64_Xword m_poffset; ++ Elf64_Half m_repeat; ++ Elf64_Half m_stride; ++} Elf64_Move; ++ ++ ++#define ELF32_M_SYM(info) ((info) >> 8) ++#define ELF32_M_SIZE(info) ((unsigned char) (info)) ++#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size)) ++ ++#define ELF64_M_SYM(info) ELF32_M_SYM (info) ++#define ELF64_M_SIZE(info) ELF32_M_SIZE (info) ++#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size) ++ ++#define EF_CPU32 0x00810000 ++ ++#define R_68K_NONE 0 ++#define R_68K_32 1 ++#define R_68K_16 2 ++#define R_68K_8 3 ++#define R_68K_PC32 4 ++#define R_68K_PC16 5 ++#define R_68K_PC8 6 ++#define R_68K_GOT32 7 ++#define R_68K_GOT16 8 ++#define R_68K_GOT8 9 ++#define R_68K_GOT32O 10 ++#define R_68K_GOT16O 11 ++#define R_68K_GOT8O 12 ++#define R_68K_PLT32 13 ++#define R_68K_PLT16 14 ++#define R_68K_PLT8 15 ++#define R_68K_PLT32O 16 ++#define R_68K_PLT16O 17 ++#define R_68K_PLT8O 18 ++#define R_68K_COPY 19 ++#define R_68K_GLOB_DAT 20 ++#define R_68K_JMP_SLOT 21 ++#define R_68K_RELATIVE 22 ++#define R_68K_NUM 23 ++ ++#define R_386_NONE 0 ++#define R_386_32 1 ++#define R_386_PC32 2 ++#define R_386_GOT32 3 ++#define R_386_PLT32 4 ++#define R_386_COPY 5 ++#define R_386_GLOB_DAT 6 ++#define R_386_JMP_SLOT 7 ++#define R_386_RELATIVE 8 ++#define R_386_GOTOFF 9 ++#define R_386_GOTPC 10 ++#define R_386_32PLT 11 ++#define R_386_TLS_TPOFF 14 ++#define R_386_TLS_IE 15 ++#define R_386_TLS_GOTIE 16 ++#define R_386_TLS_LE 17 ++#define R_386_TLS_GD 18 ++#define R_386_TLS_LDM 19 ++#define R_386_16 20 ++#define R_386_PC16 21 ++#define R_386_8 22 ++#define R_386_PC8 23 ++#define R_386_TLS_GD_32 24 ++#define R_386_TLS_GD_PUSH 25 ++#define R_386_TLS_GD_CALL 26 ++#define R_386_TLS_GD_POP 27 ++#define R_386_TLS_LDM_32 28 ++#define R_386_TLS_LDM_PUSH 29 ++#define R_386_TLS_LDM_CALL 30 ++#define R_386_TLS_LDM_POP 31 ++#define R_386_TLS_LDO_32 32 ++#define R_386_TLS_IE_32 33 ++#define R_386_TLS_LE_32 34 ++#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 ++#define R_386_IRELATIVE 42 ++#define R_386_NUM 43 ++ ++ ++ ++ ++ ++#define STT_SPARC_REGISTER 13 ++ ++ ++ ++#define EF_SPARCV9_MM 3 ++#define EF_SPARCV9_TSO 0 ++#define EF_SPARCV9_PSO 1 ++#define EF_SPARCV9_RMO 2 ++#define EF_SPARC_LEDATA 0x800000 ++#define EF_SPARC_EXT_MASK 0xFFFF00 ++#define EF_SPARC_32PLUS 0x000100 ++#define EF_SPARC_SUN_US1 0x000200 ++#define EF_SPARC_HAL_R1 0x000400 ++#define EF_SPARC_SUN_US3 0x000800 ++ ++ ++ ++#define R_SPARC_NONE 0 ++#define R_SPARC_8 1 ++#define R_SPARC_16 2 ++#define R_SPARC_32 3 ++#define R_SPARC_DISP8 4 ++#define R_SPARC_DISP16 5 ++#define R_SPARC_DISP32 6 ++#define R_SPARC_WDISP30 7 ++#define R_SPARC_WDISP22 8 ++#define R_SPARC_HI22 9 ++#define R_SPARC_22 10 ++#define R_SPARC_13 11 ++#define R_SPARC_LO10 12 ++#define R_SPARC_GOT10 13 ++#define R_SPARC_GOT13 14 ++#define R_SPARC_GOT22 15 ++#define R_SPARC_PC10 16 ++#define R_SPARC_PC22 17 ++#define R_SPARC_WPLT30 18 ++#define R_SPARC_COPY 19 ++#define R_SPARC_GLOB_DAT 20 ++#define R_SPARC_JMP_SLOT 21 ++#define R_SPARC_RELATIVE 22 ++#define R_SPARC_UA32 23 ++ ++ ++ ++#define R_SPARC_PLT32 24 ++#define R_SPARC_HIPLT22 25 ++#define R_SPARC_LOPLT10 26 ++#define R_SPARC_PCPLT32 27 ++#define R_SPARC_PCPLT22 28 ++#define R_SPARC_PCPLT10 29 ++#define R_SPARC_10 30 ++#define R_SPARC_11 31 ++#define R_SPARC_64 32 ++#define R_SPARC_OLO10 33 ++#define R_SPARC_HH22 34 ++#define R_SPARC_HM10 35 ++#define R_SPARC_LM22 36 ++#define R_SPARC_PC_HH22 37 ++#define R_SPARC_PC_HM10 38 ++#define R_SPARC_PC_LM22 39 ++#define R_SPARC_WDISP16 40 ++#define R_SPARC_WDISP19 41 ++#define R_SPARC_GLOB_JMP 42 ++#define R_SPARC_7 43 ++#define R_SPARC_5 44 ++#define R_SPARC_6 45 ++#define R_SPARC_DISP64 46 ++#define R_SPARC_PLT64 47 ++#define R_SPARC_HIX22 48 ++#define R_SPARC_LOX10 49 ++#define R_SPARC_H44 50 ++#define R_SPARC_M44 51 ++#define R_SPARC_L44 52 ++#define R_SPARC_REGISTER 53 ++#define R_SPARC_UA64 54 ++#define R_SPARC_UA16 55 ++#define R_SPARC_TLS_GD_HI22 56 ++#define R_SPARC_TLS_GD_LO10 57 ++#define R_SPARC_TLS_GD_ADD 58 ++#define R_SPARC_TLS_GD_CALL 59 ++#define R_SPARC_TLS_LDM_HI22 60 ++#define R_SPARC_TLS_LDM_LO10 61 ++#define R_SPARC_TLS_LDM_ADD 62 ++#define R_SPARC_TLS_LDM_CALL 63 ++#define R_SPARC_TLS_LDO_HIX22 64 ++#define R_SPARC_TLS_LDO_LOX10 65 ++#define R_SPARC_TLS_LDO_ADD 66 ++#define R_SPARC_TLS_IE_HI22 67 ++#define R_SPARC_TLS_IE_LO10 68 ++#define R_SPARC_TLS_IE_LD 69 ++#define R_SPARC_TLS_IE_LDX 70 ++#define R_SPARC_TLS_IE_ADD 71 ++#define R_SPARC_TLS_LE_HIX22 72 ++#define R_SPARC_TLS_LE_LOX10 73 ++#define R_SPARC_TLS_DTPMOD32 74 ++#define R_SPARC_TLS_DTPMOD64 75 ++#define R_SPARC_TLS_DTPOFF32 76 ++#define R_SPARC_TLS_DTPOFF64 77 ++#define R_SPARC_TLS_TPOFF32 78 ++#define R_SPARC_TLS_TPOFF64 79 ++#define R_SPARC_GOTDATA_HIX22 80 ++#define R_SPARC_GOTDATA_LOX10 81 ++#define R_SPARC_GOTDATA_OP_HIX22 82 ++#define R_SPARC_GOTDATA_OP_LOX10 83 ++#define R_SPARC_GOTDATA_OP 84 ++#define R_SPARC_H34 85 ++#define R_SPARC_SIZE32 86 ++#define R_SPARC_SIZE64 87 ++#define R_SPARC_GNU_VTINHERIT 250 ++#define R_SPARC_GNU_VTENTRY 251 ++#define R_SPARC_REV32 252 ++ ++#define R_SPARC_NUM 253 ++ ++ ++ ++#define DT_SPARC_REGISTER 0x70000001 ++#define DT_SPARC_NUM 2 ++ ++ ++#define EF_MIPS_NOREORDER 1 ++#define EF_MIPS_PIC 2 ++#define EF_MIPS_CPIC 4 ++#define EF_MIPS_XGOT 8 ++#define EF_MIPS_64BIT_WHIRL 16 ++#define EF_MIPS_ABI2 32 ++#define EF_MIPS_ABI_ON32 64 ++#define EF_MIPS_ARCH 0xf0000000 ++ ++ ++ ++#define EF_MIPS_ARCH_1 0x00000000 ++#define EF_MIPS_ARCH_2 0x10000000 ++#define EF_MIPS_ARCH_3 0x20000000 ++#define EF_MIPS_ARCH_4 0x30000000 ++#define EF_MIPS_ARCH_5 0x40000000 ++#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 ++#define E_MIPS_ARCH_2 0x10000000 ++#define E_MIPS_ARCH_3 0x20000000 ++#define E_MIPS_ARCH_4 0x30000000 ++#define E_MIPS_ARCH_5 0x40000000 ++#define E_MIPS_ARCH_32 0x50000000 ++#define E_MIPS_ARCH_64 0x60000000 ++ ++ ++ ++#define SHN_MIPS_ACOMMON 0xff00 ++#define SHN_MIPS_TEXT 0xff01 ++#define SHN_MIPS_DATA 0xff02 ++#define SHN_MIPS_SCOMMON 0xff03 ++#define SHN_MIPS_SUNDEFINED 0xff04 ++ ++ ++ ++#define SHT_MIPS_LIBLIST 0x70000000 ++#define SHT_MIPS_MSYM 0x70000001 ++#define SHT_MIPS_CONFLICT 0x70000002 ++#define SHT_MIPS_GPTAB 0x70000003 ++#define SHT_MIPS_UCODE 0x70000004 ++#define SHT_MIPS_DEBUG 0x70000005 ++#define SHT_MIPS_REGINFO 0x70000006 ++#define SHT_MIPS_PACKAGE 0x70000007 ++#define SHT_MIPS_PACKSYM 0x70000008 ++#define SHT_MIPS_RELD 0x70000009 ++#define SHT_MIPS_IFACE 0x7000000b ++#define SHT_MIPS_CONTENT 0x7000000c ++#define SHT_MIPS_OPTIONS 0x7000000d ++#define SHT_MIPS_SHDR 0x70000010 ++#define SHT_MIPS_FDESC 0x70000011 ++#define SHT_MIPS_EXTSYM 0x70000012 ++#define SHT_MIPS_DENSE 0x70000013 ++#define SHT_MIPS_PDESC 0x70000014 ++#define SHT_MIPS_LOCSYM 0x70000015 ++#define SHT_MIPS_AUXSYM 0x70000016 ++#define SHT_MIPS_OPTSYM 0x70000017 ++#define SHT_MIPS_LOCSTR 0x70000018 ++#define SHT_MIPS_LINE 0x70000019 ++#define SHT_MIPS_RFDESC 0x7000001a ++#define SHT_MIPS_DELTASYM 0x7000001b ++#define SHT_MIPS_DELTAINST 0x7000001c ++#define SHT_MIPS_DELTACLASS 0x7000001d ++#define SHT_MIPS_DWARF 0x7000001e ++#define SHT_MIPS_DELTADECL 0x7000001f ++#define SHT_MIPS_SYMBOL_LIB 0x70000020 ++#define SHT_MIPS_EVENTS 0x70000021 ++#define SHT_MIPS_TRANSLATE 0x70000022 ++#define SHT_MIPS_PIXIE 0x70000023 ++#define SHT_MIPS_XLATE 0x70000024 ++#define SHT_MIPS_XLATE_DEBUG 0x70000025 ++#define SHT_MIPS_WHIRL 0x70000026 ++#define SHT_MIPS_EH_REGION 0x70000027 ++#define SHT_MIPS_XLATE_OLD 0x70000028 ++#define SHT_MIPS_PDR_EXCEPTION 0x70000029 ++ ++ ++ ++#define SHF_MIPS_GPREL 0x10000000 ++#define SHF_MIPS_MERGE 0x20000000 ++#define SHF_MIPS_ADDR 0x40000000 ++#define SHF_MIPS_STRINGS 0x80000000 ++#define SHF_MIPS_NOSTRIP 0x08000000 ++#define SHF_MIPS_LOCAL 0x04000000 ++#define SHF_MIPS_NAMES 0x02000000 ++#define SHF_MIPS_NODUPE 0x01000000 ++ ++ ++ ++ ++ ++#define STO_MIPS_DEFAULT 0x0 ++#define STO_MIPS_INTERNAL 0x1 ++#define STO_MIPS_HIDDEN 0x2 ++#define STO_MIPS_PROTECTED 0x3 ++#define STO_MIPS_PLT 0x8 ++#define STO_MIPS_SC_ALIGN_UNUSED 0xff ++ ++ ++#define STB_MIPS_SPLIT_COMMON 13 ++ ++ ++ ++typedef union { ++ struct { ++ Elf32_Word gt_current_g_value; ++ Elf32_Word gt_unused; ++ } gt_header; ++ struct { ++ Elf32_Word gt_g_value; ++ Elf32_Word gt_bytes; ++ } gt_entry; ++} Elf32_gptab; ++ ++ ++ ++typedef struct { ++ Elf32_Word ri_gprmask; ++ Elf32_Word ri_cprmask[4]; ++ Elf32_Sword ri_gp_value; ++} Elf32_RegInfo; ++ ++ ++ ++typedef struct { ++ unsigned char kind; ++ ++ unsigned char size; ++ Elf32_Section section; ++ ++ Elf32_Word info; ++} Elf_Options; ++ ++ ++ ++#define ODK_NULL 0 ++#define ODK_REGINFO 1 ++#define ODK_EXCEPTIONS 2 ++#define ODK_PAD 3 ++#define ODK_HWPATCH 4 ++#define ODK_FILL 5 ++#define ODK_TAGS 6 ++#define ODK_HWAND 7 ++#define ODK_HWOR 8 ++ ++ ++ ++#define OEX_FPU_MIN 0x1f ++#define OEX_FPU_MAX 0x1f00 ++#define OEX_PAGE0 0x10000 ++#define OEX_SMM 0x20000 ++#define OEX_FPDBUG 0x40000 ++#define OEX_PRECISEFP OEX_FPDBUG ++#define OEX_DISMISS 0x80000 ++ ++#define OEX_FPU_INVAL 0x10 ++#define OEX_FPU_DIV0 0x08 ++#define OEX_FPU_OFLO 0x04 ++#define OEX_FPU_UFLO 0x02 ++#define OEX_FPU_INEX 0x01 ++ ++ ++ ++#define OHW_R4KEOP 0x1 ++#define OHW_R8KPFETCH 0x2 ++#define OHW_R5KEOP 0x4 ++#define OHW_R5KCVTL 0x8 ++ ++#define OPAD_PREFIX 0x1 ++#define OPAD_POSTFIX 0x2 ++#define OPAD_SYMBOL 0x4 ++ ++ ++ ++typedef struct { ++ Elf32_Word hwp_flags1; ++ Elf32_Word hwp_flags2; ++} Elf_Options_Hw; ++ ++ ++ ++#define OHWA0_R4KEOP_CHECKED 0x00000001 ++#define OHWA1_R4KEOP_CLEAN 0x00000002 ++ ++ ++ ++#define R_MIPS_NONE 0 ++#define R_MIPS_16 1 ++#define R_MIPS_32 2 ++#define R_MIPS_REL32 3 ++#define R_MIPS_26 4 ++#define R_MIPS_HI16 5 ++#define R_MIPS_LO16 6 ++#define R_MIPS_GPREL16 7 ++#define R_MIPS_LITERAL 8 ++#define R_MIPS_GOT16 9 ++#define R_MIPS_PC16 10 ++#define R_MIPS_CALL16 11 ++#define R_MIPS_GPREL32 12 ++ ++#define R_MIPS_SHIFT5 16 ++#define R_MIPS_SHIFT6 17 ++#define R_MIPS_64 18 ++#define R_MIPS_GOT_DISP 19 ++#define R_MIPS_GOT_PAGE 20 ++#define R_MIPS_GOT_OFST 21 ++#define R_MIPS_GOT_HI16 22 ++#define R_MIPS_GOT_LO16 23 ++#define R_MIPS_SUB 24 ++#define R_MIPS_INSERT_A 25 ++#define R_MIPS_INSERT_B 26 ++#define R_MIPS_DELETE 27 ++#define R_MIPS_HIGHER 28 ++#define R_MIPS_HIGHEST 29 ++#define R_MIPS_CALL_HI16 30 ++#define R_MIPS_CALL_LO16 31 ++#define R_MIPS_SCN_DISP 32 ++#define R_MIPS_REL16 33 ++#define R_MIPS_ADD_IMMEDIATE 34 ++#define R_MIPS_PJUMP 35 ++#define R_MIPS_RELGOT 36 ++#define R_MIPS_JALR 37 ++#define R_MIPS_TLS_DTPMOD32 38 ++#define R_MIPS_TLS_DTPREL32 39 ++#define R_MIPS_TLS_DTPMOD64 40 ++#define R_MIPS_TLS_DTPREL64 41 ++#define R_MIPS_TLS_GD 42 ++#define R_MIPS_TLS_LDM 43 ++#define R_MIPS_TLS_DTPREL_HI16 44 ++#define R_MIPS_TLS_DTPREL_LO16 45 ++#define R_MIPS_TLS_GOTTPREL 46 ++#define R_MIPS_TLS_TPREL32 47 ++#define R_MIPS_TLS_TPREL64 48 ++#define R_MIPS_TLS_TPREL_HI16 49 ++#define R_MIPS_TLS_TPREL_LO16 50 ++#define R_MIPS_GLOB_DAT 51 ++#define R_MIPS_COPY 126 ++#define R_MIPS_JUMP_SLOT 127 ++ ++#define R_MIPS_NUM 128 ++ ++ ++ ++#define PT_MIPS_REGINFO 0x70000000 ++#define PT_MIPS_RTPROC 0x70000001 ++#define PT_MIPS_OPTIONS 0x70000002 ++ ++ ++ ++#define PF_MIPS_LOCAL 0x10000000 ++ ++ ++ ++#define DT_MIPS_RLD_VERSION 0x70000001 ++#define DT_MIPS_TIME_STAMP 0x70000002 ++#define DT_MIPS_ICHECKSUM 0x70000003 ++#define DT_MIPS_IVERSION 0x70000004 ++#define DT_MIPS_FLAGS 0x70000005 ++#define DT_MIPS_BASE_ADDRESS 0x70000006 ++#define DT_MIPS_MSYM 0x70000007 ++#define DT_MIPS_CONFLICT 0x70000008 ++#define DT_MIPS_LIBLIST 0x70000009 ++#define DT_MIPS_LOCAL_GOTNO 0x7000000a ++#define DT_MIPS_CONFLICTNO 0x7000000b ++#define DT_MIPS_LIBLISTNO 0x70000010 ++#define DT_MIPS_SYMTABNO 0x70000011 ++#define DT_MIPS_UNREFEXTNO 0x70000012 ++#define DT_MIPS_GOTSYM 0x70000013 ++#define DT_MIPS_HIPAGENO 0x70000014 ++#define DT_MIPS_RLD_MAP 0x70000016 ++#define DT_MIPS_DELTA_CLASS 0x70000017 ++#define DT_MIPS_DELTA_CLASS_NO 0x70000018 ++ ++#define DT_MIPS_DELTA_INSTANCE 0x70000019 ++#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a ++ ++#define DT_MIPS_DELTA_RELOC 0x7000001b ++#define DT_MIPS_DELTA_RELOC_NO 0x7000001c ++ ++#define DT_MIPS_DELTA_SYM 0x7000001d ++ ++#define DT_MIPS_DELTA_SYM_NO 0x7000001e ++ ++#define DT_MIPS_DELTA_CLASSSYM 0x70000020 ++ ++#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 ++ ++#define DT_MIPS_CXX_FLAGS 0x70000022 ++#define DT_MIPS_PIXIE_INIT 0x70000023 ++#define DT_MIPS_SYMBOL_LIB 0x70000024 ++#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025 ++#define DT_MIPS_LOCAL_GOTIDX 0x70000026 ++#define DT_MIPS_HIDDEN_GOTIDX 0x70000027 ++#define DT_MIPS_PROTECTED_GOTIDX 0x70000028 ++#define DT_MIPS_OPTIONS 0x70000029 ++#define DT_MIPS_INTERFACE 0x7000002a ++#define DT_MIPS_DYNSTR_ALIGN 0x7000002b ++#define DT_MIPS_INTERFACE_SIZE 0x7000002c ++#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d ++ ++#define DT_MIPS_PERF_SUFFIX 0x7000002e ++ ++#define DT_MIPS_COMPACT_SIZE 0x7000002f ++#define DT_MIPS_GP_VALUE 0x70000030 ++#define DT_MIPS_AUX_DYNAMIC 0x70000031 ++ ++#define DT_MIPS_PLTGOT 0x70000032 ++ ++#define DT_MIPS_RWPLT 0x70000034 ++#define DT_MIPS_NUM 0x35 ++ ++ ++ ++#define RHF_NONE 0 ++#define RHF_QUICKSTART (1 << 0) ++#define RHF_NOTPOT (1 << 1) ++#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2) ++#define RHF_NO_MOVE (1 << 3) ++#define RHF_SGI_ONLY (1 << 4) ++#define RHF_GUARANTEE_INIT (1 << 5) ++#define RHF_DELTA_C_PLUS_PLUS (1 << 6) ++#define RHF_GUARANTEE_START_INIT (1 << 7) ++#define RHF_PIXIE (1 << 8) ++#define RHF_DEFAULT_DELAY_LOAD (1 << 9) ++#define RHF_REQUICKSTART (1 << 10) ++#define RHF_REQUICKSTARTED (1 << 11) ++#define RHF_CORD (1 << 12) ++#define RHF_NO_UNRES_UNDEF (1 << 13) ++#define RHF_RLD_ORDER_SAFE (1 << 14) ++ ++ ++ ++typedef struct ++{ ++ Elf32_Word l_name; ++ Elf32_Word l_time_stamp; ++ Elf32_Word l_checksum; ++ Elf32_Word l_version; ++ Elf32_Word l_flags; ++} Elf32_Lib; ++ ++typedef struct ++{ ++ Elf64_Word l_name; ++ Elf64_Word l_time_stamp; ++ Elf64_Word l_checksum; ++ Elf64_Word l_version; ++ Elf64_Word l_flags; ++} Elf64_Lib; ++ ++ ++ ++ ++#define LL_NONE 0 ++#define LL_EXACT_MATCH (1 << 0) ++#define LL_IGNORE_INT_VER (1 << 1) ++#define LL_REQUIRE_MINOR (1 << 2) ++#define LL_EXPORTS (1 << 3) ++#define LL_DELAY_LOAD (1 << 4) ++#define LL_DELTA (1 << 5) ++ ++ ++ ++typedef Elf32_Addr Elf32_Conflict; ++ ++ ++ ++ ++ ++ ++#define EF_PARISC_TRAPNIL 0x00010000 ++#define EF_PARISC_EXT 0x00020000 ++#define EF_PARISC_LSB 0x00040000 ++#define EF_PARISC_WIDE 0x00080000 ++#define EF_PARISC_NO_KABP 0x00100000 ++ ++#define EF_PARISC_LAZYSWAP 0x00400000 ++#define EF_PARISC_ARCH 0x0000ffff ++ ++ ++ ++#define EFA_PARISC_1_0 0x020b ++#define EFA_PARISC_1_1 0x0210 ++#define EFA_PARISC_2_0 0x0214 ++ ++ ++ ++#define SHN_PARISC_ANSI_COMMON 0xff00 ++ ++#define SHN_PARISC_HUGE_COMMON 0xff01 ++ ++ ++ ++#define SHT_PARISC_EXT 0x70000000 ++#define SHT_PARISC_UNWIND 0x70000001 ++#define SHT_PARISC_DOC 0x70000002 ++ ++ ++ ++#define SHF_PARISC_SHORT 0x20000000 ++#define SHF_PARISC_HUGE 0x40000000 ++#define SHF_PARISC_SBP 0x80000000 ++ ++ ++ ++#define STT_PARISC_MILLICODE 13 ++ ++#define STT_HP_OPAQUE (STT_LOOS + 0x1) ++#define STT_HP_STUB (STT_LOOS + 0x2) ++ ++ ++ ++#define R_PARISC_NONE 0 ++#define R_PARISC_DIR32 1 ++#define R_PARISC_DIR21L 2 ++#define R_PARISC_DIR17R 3 ++#define R_PARISC_DIR17F 4 ++#define R_PARISC_DIR14R 6 ++#define R_PARISC_PCREL32 9 ++#define R_PARISC_PCREL21L 10 ++#define R_PARISC_PCREL17R 11 ++#define R_PARISC_PCREL17F 12 ++#define R_PARISC_PCREL14R 14 ++#define R_PARISC_DPREL21L 18 ++#define R_PARISC_DPREL14R 22 ++#define R_PARISC_GPREL21L 26 ++#define R_PARISC_GPREL14R 30 ++#define R_PARISC_LTOFF21L 34 ++#define R_PARISC_LTOFF14R 38 ++#define R_PARISC_SECREL32 41 ++#define R_PARISC_SEGBASE 48 ++#define R_PARISC_SEGREL32 49 ++#define R_PARISC_PLTOFF21L 50 ++#define R_PARISC_PLTOFF14R 54 ++#define R_PARISC_LTOFF_FPTR32 57 ++#define R_PARISC_LTOFF_FPTR21L 58 ++#define R_PARISC_LTOFF_FPTR14R 62 ++#define R_PARISC_FPTR64 64 ++#define R_PARISC_PLABEL32 65 ++#define R_PARISC_PLABEL21L 66 ++#define R_PARISC_PLABEL14R 70 ++#define R_PARISC_PCREL64 72 ++#define R_PARISC_PCREL22F 74 ++#define R_PARISC_PCREL14WR 75 ++#define R_PARISC_PCREL14DR 76 ++#define R_PARISC_PCREL16F 77 ++#define R_PARISC_PCREL16WF 78 ++#define R_PARISC_PCREL16DF 79 ++#define R_PARISC_DIR64 80 ++#define R_PARISC_DIR14WR 83 ++#define R_PARISC_DIR14DR 84 ++#define R_PARISC_DIR16F 85 ++#define R_PARISC_DIR16WF 86 ++#define R_PARISC_DIR16DF 87 ++#define R_PARISC_GPREL64 88 ++#define R_PARISC_GPREL14WR 91 ++#define R_PARISC_GPREL14DR 92 ++#define R_PARISC_GPREL16F 93 ++#define R_PARISC_GPREL16WF 94 ++#define R_PARISC_GPREL16DF 95 ++#define R_PARISC_LTOFF64 96 ++#define R_PARISC_LTOFF14WR 99 ++#define R_PARISC_LTOFF14DR 100 ++#define R_PARISC_LTOFF16F 101 ++#define R_PARISC_LTOFF16WF 102 ++#define R_PARISC_LTOFF16DF 103 ++#define R_PARISC_SECREL64 104 ++#define R_PARISC_SEGREL64 112 ++#define R_PARISC_PLTOFF14WR 115 ++#define R_PARISC_PLTOFF14DR 116 ++#define R_PARISC_PLTOFF16F 117 ++#define R_PARISC_PLTOFF16WF 118 ++#define R_PARISC_PLTOFF16DF 119 ++#define R_PARISC_LTOFF_FPTR64 120 ++#define R_PARISC_LTOFF_FPTR14WR 123 ++#define R_PARISC_LTOFF_FPTR14DR 124 ++#define R_PARISC_LTOFF_FPTR16F 125 ++#define R_PARISC_LTOFF_FPTR16WF 126 ++#define R_PARISC_LTOFF_FPTR16DF 127 ++#define R_PARISC_LORESERVE 128 ++#define R_PARISC_COPY 128 ++#define R_PARISC_IPLT 129 ++#define R_PARISC_EPLT 130 ++#define R_PARISC_TPREL32 153 ++#define R_PARISC_TPREL21L 154 ++#define R_PARISC_TPREL14R 158 ++#define R_PARISC_LTOFF_TP21L 162 ++#define R_PARISC_LTOFF_TP14R 166 ++#define R_PARISC_LTOFF_TP14F 167 ++#define R_PARISC_TPREL64 216 ++#define R_PARISC_TPREL14WR 219 ++#define R_PARISC_TPREL14DR 220 ++#define R_PARISC_TPREL16F 221 ++#define R_PARISC_TPREL16WF 222 ++#define R_PARISC_TPREL16DF 223 ++#define R_PARISC_LTOFF_TP64 224 ++#define R_PARISC_LTOFF_TP14WR 227 ++#define R_PARISC_LTOFF_TP14DR 228 ++#define R_PARISC_LTOFF_TP16F 229 ++#define R_PARISC_LTOFF_TP16WF 230 ++#define R_PARISC_LTOFF_TP16DF 231 ++#define R_PARISC_GNU_VTENTRY 232 ++#define R_PARISC_GNU_VTINHERIT 233 ++#define R_PARISC_TLS_GD21L 234 ++#define R_PARISC_TLS_GD14R 235 ++#define R_PARISC_TLS_GDCALL 236 ++#define R_PARISC_TLS_LDM21L 237 ++#define R_PARISC_TLS_LDM14R 238 ++#define R_PARISC_TLS_LDMCALL 239 ++#define R_PARISC_TLS_LDO21L 240 ++#define R_PARISC_TLS_LDO14R 241 ++#define R_PARISC_TLS_DTPMOD32 242 ++#define R_PARISC_TLS_DTPMOD64 243 ++#define R_PARISC_TLS_DTPOFF32 244 ++#define R_PARISC_TLS_DTPOFF64 245 ++#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L ++#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R ++#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L ++#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R ++#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32 ++#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64 ++#define R_PARISC_HIRESERVE 255 ++ ++ ++ ++#define PT_HP_TLS (PT_LOOS + 0x0) ++#define PT_HP_CORE_NONE (PT_LOOS + 0x1) ++#define PT_HP_CORE_VERSION (PT_LOOS + 0x2) ++#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3) ++#define PT_HP_CORE_COMM (PT_LOOS + 0x4) ++#define PT_HP_CORE_PROC (PT_LOOS + 0x5) ++#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6) ++#define PT_HP_CORE_STACK (PT_LOOS + 0x7) ++#define PT_HP_CORE_SHM (PT_LOOS + 0x8) ++#define PT_HP_CORE_MMF (PT_LOOS + 0x9) ++#define PT_HP_PARALLEL (PT_LOOS + 0x10) ++#define PT_HP_FASTBIND (PT_LOOS + 0x11) ++#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12) ++#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13) ++#define PT_HP_STACK (PT_LOOS + 0x14) ++ ++#define PT_PARISC_ARCHEXT 0x70000000 ++#define PT_PARISC_UNWIND 0x70000001 ++ ++ ++ ++#define PF_PARISC_SBP 0x08000000 ++ ++#define PF_HP_PAGE_SIZE 0x00100000 ++#define PF_HP_FAR_SHARED 0x00200000 ++#define PF_HP_NEAR_SHARED 0x00400000 ++#define PF_HP_CODE 0x01000000 ++#define PF_HP_MODIFY 0x02000000 ++#define PF_HP_LAZYSWAP 0x04000000 ++#define PF_HP_SBP 0x08000000 ++ ++ ++ ++ ++ ++ ++#define EF_ALPHA_32BIT 1 ++#define EF_ALPHA_CANRELAX 2 ++ ++ ++ ++ ++#define SHT_ALPHA_DEBUG 0x70000001 ++#define SHT_ALPHA_REGINFO 0x70000002 ++ ++ ++ ++#define SHF_ALPHA_GPREL 0x10000000 ++ ++ ++#define STO_ALPHA_NOPV 0x80 ++#define STO_ALPHA_STD_GPLOAD 0x88 ++ ++ ++ ++#define R_ALPHA_NONE 0 ++#define R_ALPHA_REFLONG 1 ++#define R_ALPHA_REFQUAD 2 ++#define R_ALPHA_GPREL32 3 ++#define R_ALPHA_LITERAL 4 ++#define R_ALPHA_LITUSE 5 ++#define R_ALPHA_GPDISP 6 ++#define R_ALPHA_BRADDR 7 ++#define R_ALPHA_HINT 8 ++#define R_ALPHA_SREL16 9 ++#define R_ALPHA_SREL32 10 ++#define R_ALPHA_SREL64 11 ++#define R_ALPHA_GPRELHIGH 17 ++#define R_ALPHA_GPRELLOW 18 ++#define R_ALPHA_GPREL16 19 ++#define R_ALPHA_COPY 24 ++#define R_ALPHA_GLOB_DAT 25 ++#define R_ALPHA_JMP_SLOT 26 ++#define R_ALPHA_RELATIVE 27 ++#define R_ALPHA_TLS_GD_HI 28 ++#define R_ALPHA_TLSGD 29 ++#define R_ALPHA_TLS_LDM 30 ++#define R_ALPHA_DTPMOD64 31 ++#define R_ALPHA_GOTDTPREL 32 ++#define R_ALPHA_DTPREL64 33 ++#define R_ALPHA_DTPRELHI 34 ++#define R_ALPHA_DTPRELLO 35 ++#define R_ALPHA_DTPREL16 36 ++#define R_ALPHA_GOTTPREL 37 ++#define R_ALPHA_TPREL64 38 ++#define R_ALPHA_TPRELHI 39 ++#define R_ALPHA_TPRELLO 40 ++#define R_ALPHA_TPREL16 41 ++ ++#define R_ALPHA_NUM 46 ++ ++ ++#define LITUSE_ALPHA_ADDR 0 ++#define LITUSE_ALPHA_BASE 1 ++#define LITUSE_ALPHA_BYTOFF 2 ++#define LITUSE_ALPHA_JSR 3 ++#define LITUSE_ALPHA_TLS_GD 4 ++#define LITUSE_ALPHA_TLS_LDM 5 ++ ++ ++#define DT_ALPHA_PLTRO (DT_LOPROC + 0) ++#define DT_ALPHA_NUM 1 ++ ++ ++ ++ ++#define EF_PPC_EMB 0x80000000 ++ ++ ++#define EF_PPC_RELOCATABLE 0x00010000 ++#define EF_PPC_RELOCATABLE_LIB 0x00008000 ++ ++ ++ ++#define R_PPC_NONE 0 ++#define R_PPC_ADDR32 1 ++#define R_PPC_ADDR24 2 ++#define R_PPC_ADDR16 3 ++#define R_PPC_ADDR16_LO 4 ++#define R_PPC_ADDR16_HI 5 ++#define R_PPC_ADDR16_HA 6 ++#define R_PPC_ADDR14 7 ++#define R_PPC_ADDR14_BRTAKEN 8 ++#define R_PPC_ADDR14_BRNTAKEN 9 ++#define R_PPC_REL24 10 ++#define R_PPC_REL14 11 ++#define R_PPC_REL14_BRTAKEN 12 ++#define R_PPC_REL14_BRNTAKEN 13 ++#define R_PPC_GOT16 14 ++#define R_PPC_GOT16_LO 15 ++#define R_PPC_GOT16_HI 16 ++#define R_PPC_GOT16_HA 17 ++#define R_PPC_PLTREL24 18 ++#define R_PPC_COPY 19 ++#define R_PPC_GLOB_DAT 20 ++#define R_PPC_JMP_SLOT 21 ++#define R_PPC_RELATIVE 22 ++#define R_PPC_LOCAL24PC 23 ++#define R_PPC_UADDR32 24 ++#define R_PPC_UADDR16 25 ++#define R_PPC_REL32 26 ++#define R_PPC_PLT32 27 ++#define R_PPC_PLTREL32 28 ++#define R_PPC_PLT16_LO 29 ++#define R_PPC_PLT16_HI 30 ++#define R_PPC_PLT16_HA 31 ++#define R_PPC_SDAREL16 32 ++#define R_PPC_SECTOFF 33 ++#define R_PPC_SECTOFF_LO 34 ++#define R_PPC_SECTOFF_HI 35 ++#define R_PPC_SECTOFF_HA 36 ++ ++ ++#define R_PPC_TLS 67 ++#define R_PPC_DTPMOD32 68 ++#define R_PPC_TPREL16 69 ++#define R_PPC_TPREL16_LO 70 ++#define R_PPC_TPREL16_HI 71 ++#define R_PPC_TPREL16_HA 72 ++#define R_PPC_TPREL32 73 ++#define R_PPC_DTPREL16 74 ++#define R_PPC_DTPREL16_LO 75 ++#define R_PPC_DTPREL16_HI 76 ++#define R_PPC_DTPREL16_HA 77 ++#define R_PPC_DTPREL32 78 ++#define R_PPC_GOT_TLSGD16 79 ++#define R_PPC_GOT_TLSGD16_LO 80 ++#define R_PPC_GOT_TLSGD16_HI 81 ++#define R_PPC_GOT_TLSGD16_HA 82 ++#define R_PPC_GOT_TLSLD16 83 ++#define R_PPC_GOT_TLSLD16_LO 84 ++#define R_PPC_GOT_TLSLD16_HI 85 ++#define R_PPC_GOT_TLSLD16_HA 86 ++#define R_PPC_GOT_TPREL16 87 ++#define R_PPC_GOT_TPREL16_LO 88 ++#define R_PPC_GOT_TPREL16_HI 89 ++#define R_PPC_GOT_TPREL16_HA 90 ++#define R_PPC_GOT_DTPREL16 91 ++#define R_PPC_GOT_DTPREL16_LO 92 ++#define R_PPC_GOT_DTPREL16_HI 93 ++#define R_PPC_GOT_DTPREL16_HA 94 ++ ++ ++ ++#define R_PPC_EMB_NADDR32 101 ++#define R_PPC_EMB_NADDR16 102 ++#define R_PPC_EMB_NADDR16_LO 103 ++#define R_PPC_EMB_NADDR16_HI 104 ++#define R_PPC_EMB_NADDR16_HA 105 ++#define R_PPC_EMB_SDAI16 106 ++#define R_PPC_EMB_SDA2I16 107 ++#define R_PPC_EMB_SDA2REL 108 ++#define R_PPC_EMB_SDA21 109 ++#define R_PPC_EMB_MRKREF 110 ++#define R_PPC_EMB_RELSEC16 111 ++#define R_PPC_EMB_RELST_LO 112 ++#define R_PPC_EMB_RELST_HI 113 ++#define R_PPC_EMB_RELST_HA 114 ++#define R_PPC_EMB_BIT_FLD 115 ++#define R_PPC_EMB_RELSDA 116 ++ ++ ++#define R_PPC_DIAB_SDA21_LO 180 ++#define R_PPC_DIAB_SDA21_HI 181 ++#define R_PPC_DIAB_SDA21_HA 182 ++#define R_PPC_DIAB_RELSDA_LO 183 ++#define R_PPC_DIAB_RELSDA_HI 184 ++#define R_PPC_DIAB_RELSDA_HA 185 ++ ++ ++#define R_PPC_IRELATIVE 248 ++ ++ ++#define R_PPC_REL16 249 ++#define R_PPC_REL16_LO 250 ++#define R_PPC_REL16_HI 251 ++#define R_PPC_REL16_HA 252 ++ ++ ++ ++#define R_PPC_TOC16 255 ++ ++ ++#define DT_PPC_GOT (DT_LOPROC + 0) ++#define DT_PPC_NUM 1 ++ ++ ++#define R_PPC64_NONE R_PPC_NONE ++#define R_PPC64_ADDR32 R_PPC_ADDR32 ++#define R_PPC64_ADDR24 R_PPC_ADDR24 ++#define R_PPC64_ADDR16 R_PPC_ADDR16 ++#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO ++#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI ++#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA ++#define R_PPC64_ADDR14 R_PPC_ADDR14 ++#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN ++#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN ++#define R_PPC64_REL24 R_PPC_REL24 ++#define R_PPC64_REL14 R_PPC_REL14 ++#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN ++#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN ++#define R_PPC64_GOT16 R_PPC_GOT16 ++#define R_PPC64_GOT16_LO R_PPC_GOT16_LO ++#define R_PPC64_GOT16_HI R_PPC_GOT16_HI ++#define R_PPC64_GOT16_HA R_PPC_GOT16_HA ++ ++#define R_PPC64_COPY R_PPC_COPY ++#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT ++#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT ++#define R_PPC64_RELATIVE R_PPC_RELATIVE ++ ++#define R_PPC64_UADDR32 R_PPC_UADDR32 ++#define R_PPC64_UADDR16 R_PPC_UADDR16 ++#define R_PPC64_REL32 R_PPC_REL32 ++#define R_PPC64_PLT32 R_PPC_PLT32 ++#define R_PPC64_PLTREL32 R_PPC_PLTREL32 ++#define R_PPC64_PLT16_LO R_PPC_PLT16_LO ++#define R_PPC64_PLT16_HI R_PPC_PLT16_HI ++#define R_PPC64_PLT16_HA R_PPC_PLT16_HA ++ ++#define R_PPC64_SECTOFF R_PPC_SECTOFF ++#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO ++#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI ++#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA ++#define R_PPC64_ADDR30 37 ++#define R_PPC64_ADDR64 38 ++#define R_PPC64_ADDR16_HIGHER 39 ++#define R_PPC64_ADDR16_HIGHERA 40 ++#define R_PPC64_ADDR16_HIGHEST 41 ++#define R_PPC64_ADDR16_HIGHESTA 42 ++#define R_PPC64_UADDR64 43 ++#define R_PPC64_REL64 44 ++#define R_PPC64_PLT64 45 ++#define R_PPC64_PLTREL64 46 ++#define R_PPC64_TOC16 47 ++#define R_PPC64_TOC16_LO 48 ++#define R_PPC64_TOC16_HI 49 ++#define R_PPC64_TOC16_HA 50 ++#define R_PPC64_TOC 51 ++#define R_PPC64_PLTGOT16 52 ++#define R_PPC64_PLTGOT16_LO 53 ++#define R_PPC64_PLTGOT16_HI 54 ++#define R_PPC64_PLTGOT16_HA 55 ++ ++#define R_PPC64_ADDR16_DS 56 ++#define R_PPC64_ADDR16_LO_DS 57 ++#define R_PPC64_GOT16_DS 58 ++#define R_PPC64_GOT16_LO_DS 59 ++#define R_PPC64_PLT16_LO_DS 60 ++#define R_PPC64_SECTOFF_DS 61 ++#define R_PPC64_SECTOFF_LO_DS 62 ++#define R_PPC64_TOC16_DS 63 ++#define R_PPC64_TOC16_LO_DS 64 ++#define R_PPC64_PLTGOT16_DS 65 ++#define R_PPC64_PLTGOT16_LO_DS 66 ++ ++ ++#define R_PPC64_TLS 67 ++#define R_PPC64_DTPMOD64 68 ++#define R_PPC64_TPREL16 69 ++#define R_PPC64_TPREL16_LO 70 ++#define R_PPC64_TPREL16_HI 71 ++#define R_PPC64_TPREL16_HA 72 ++#define R_PPC64_TPREL64 73 ++#define R_PPC64_DTPREL16 74 ++#define R_PPC64_DTPREL16_LO 75 ++#define R_PPC64_DTPREL16_HI 76 ++#define R_PPC64_DTPREL16_HA 77 ++#define R_PPC64_DTPREL64 78 ++#define R_PPC64_GOT_TLSGD16 79 ++#define R_PPC64_GOT_TLSGD16_LO 80 ++#define R_PPC64_GOT_TLSGD16_HI 81 ++#define R_PPC64_GOT_TLSGD16_HA 82 ++#define R_PPC64_GOT_TLSLD16 83 ++#define R_PPC64_GOT_TLSLD16_LO 84 ++#define R_PPC64_GOT_TLSLD16_HI 85 ++#define R_PPC64_GOT_TLSLD16_HA 86 ++#define R_PPC64_GOT_TPREL16_DS 87 ++#define R_PPC64_GOT_TPREL16_LO_DS 88 ++#define R_PPC64_GOT_TPREL16_HI 89 ++#define R_PPC64_GOT_TPREL16_HA 90 ++#define R_PPC64_GOT_DTPREL16_DS 91 ++#define R_PPC64_GOT_DTPREL16_LO_DS 92 ++#define R_PPC64_GOT_DTPREL16_HI 93 ++#define R_PPC64_GOT_DTPREL16_HA 94 ++#define R_PPC64_TPREL16_DS 95 ++#define R_PPC64_TPREL16_LO_DS 96 ++#define R_PPC64_TPREL16_HIGHER 97 ++#define R_PPC64_TPREL16_HIGHERA 98 ++#define R_PPC64_TPREL16_HIGHEST 99 ++#define R_PPC64_TPREL16_HIGHESTA 100 ++#define R_PPC64_DTPREL16_DS 101 ++#define R_PPC64_DTPREL16_LO_DS 102 ++#define R_PPC64_DTPREL16_HIGHER 103 ++#define R_PPC64_DTPREL16_HIGHERA 104 ++#define R_PPC64_DTPREL16_HIGHEST 105 ++#define R_PPC64_DTPREL16_HIGHESTA 106 ++ ++ ++#define R_PPC64_JMP_IREL 247 ++#define R_PPC64_IRELATIVE 248 ++#define R_PPC64_REL16 249 ++#define R_PPC64_REL16_LO 250 ++#define R_PPC64_REL16_HI 251 ++#define R_PPC64_REL16_HA 252 ++ ++ ++#define DT_PPC64_GLINK (DT_LOPROC + 0) ++#define DT_PPC64_OPD (DT_LOPROC + 1) ++#define DT_PPC64_OPDSZ (DT_LOPROC + 2) ++#define DT_PPC64_NUM 3 ++ ++ ++ ++ ++ ++#define EF_ARM_RELEXEC 0x01 ++#define EF_ARM_HASENTRY 0x02 ++#define EF_ARM_INTERWORK 0x04 ++#define EF_ARM_APCS_26 0x08 ++#define EF_ARM_APCS_FLOAT 0x10 ++#define EF_ARM_PIC 0x20 ++#define EF_ARM_ALIGN8 0x40 ++#define EF_ARM_NEW_ABI 0x80 ++#define EF_ARM_OLD_ABI 0x100 ++#define EF_ARM_SOFT_FLOAT 0x200 ++#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 ++#define EF_ARM_DYNSYMSUSESEGIDX 0x08 ++#define EF_ARM_MAPSYMSFIRST 0x10 ++#define EF_ARM_EABIMASK 0XFF000000 ++ ++ ++#define EF_ARM_BE8 0x00800000 ++#define EF_ARM_LE8 0x00400000 ++ ++#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK) ++#define EF_ARM_EABI_UNKNOWN 0x00000000 ++#define EF_ARM_EABI_VER1 0x01000000 ++#define EF_ARM_EABI_VER2 0x02000000 ++#define EF_ARM_EABI_VER3 0x03000000 ++#define EF_ARM_EABI_VER4 0x04000000 ++#define EF_ARM_EABI_VER5 0x05000000 ++ ++ ++#define STT_ARM_TFUNC STT_LOPROC ++#define STT_ARM_16BIT STT_HIPROC ++ ++ ++#define SHF_ARM_ENTRYSECT 0x10000000 ++#define SHF_ARM_COMDEF 0x80000000 ++ ++ ++ ++#define PF_ARM_SB 0x10000000 ++ ++#define PF_ARM_PI 0x20000000 ++#define PF_ARM_ABS 0x40000000 ++ ++ ++#define PT_ARM_EXIDX (PT_LOPROC + 1) ++ ++ ++#define SHT_ARM_EXIDX (SHT_LOPROC + 1) ++#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) ++#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 ++#define R_ARM_PC24 1 ++#define R_ARM_ABS32 2 ++#define R_ARM_REL32 3 ++#define R_ARM_PC13 4 ++#define R_ARM_ABS16 5 ++#define R_ARM_ABS12 6 ++#define R_ARM_THM_ABS5 7 ++#define R_ARM_ABS8 8 ++#define R_ARM_SBREL32 9 ++#define R_ARM_THM_PC22 10 ++#define R_ARM_THM_PC8 11 ++#define R_ARM_AMP_VCALL9 12 ++#define R_ARM_TLS_DESC 13 ++#define R_ARM_THM_SWI8 14 ++#define R_ARM_XPC25 15 ++#define R_ARM_THM_XPC22 16 ++#define R_ARM_TLS_DTPMOD32 17 ++#define R_ARM_TLS_DTPOFF32 18 ++#define R_ARM_TLS_TPOFF32 19 ++#define R_ARM_COPY 20 ++#define R_ARM_GLOB_DAT 21 ++#define R_ARM_JUMP_SLOT 22 ++#define R_ARM_RELATIVE 23 ++#define R_ARM_GOTOFF 24 ++#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 ++#define R_ARM_THM_PC9 103 ++#define R_ARM_TLS_GD32 104 ++ ++#define R_ARM_TLS_LDM32 105 ++ ++#define R_ARM_TLS_LDO32 106 ++ ++#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 ++#define R_ARM_RREL32 252 ++#define R_ARM_RABS22 253 ++#define R_ARM_RPC24 254 ++#define R_ARM_RBASE 255 ++ ++#define R_ARM_NUM 256 ++ ++ ++ ++ ++#define EF_IA_64_MASKOS 0x0000000f ++#define EF_IA_64_ABI64 0x00000010 ++#define EF_IA_64_ARCH 0xff000000 ++ ++ ++#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) ++#define PT_IA_64_UNWIND (PT_LOPROC + 1) ++#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12) ++#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13) ++#define PT_IA_64_HP_STACK (PT_LOOS + 0x14) ++ ++ ++#define PF_IA_64_NORECOV 0x80000000 ++ ++ ++#define SHT_IA_64_EXT (SHT_LOPROC + 0) ++#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) ++ ++ ++#define SHF_IA_64_SHORT 0x10000000 ++#define SHF_IA_64_NORECOV 0x20000000 ++ ++ ++#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0) ++#define DT_IA_64_NUM 1 ++ ++ ++#define R_IA64_NONE 0x00 ++#define R_IA64_IMM14 0x21 ++#define R_IA64_IMM22 0x22 ++#define R_IA64_IMM64 0x23 ++#define R_IA64_DIR32MSB 0x24 ++#define R_IA64_DIR32LSB 0x25 ++#define R_IA64_DIR64MSB 0x26 ++#define R_IA64_DIR64LSB 0x27 ++#define R_IA64_GPREL22 0x2a ++#define R_IA64_GPREL64I 0x2b ++#define R_IA64_GPREL32MSB 0x2c ++#define R_IA64_GPREL32LSB 0x2d ++#define R_IA64_GPREL64MSB 0x2e ++#define R_IA64_GPREL64LSB 0x2f ++#define R_IA64_LTOFF22 0x32 ++#define R_IA64_LTOFF64I 0x33 ++#define R_IA64_PLTOFF22 0x3a ++#define R_IA64_PLTOFF64I 0x3b ++#define R_IA64_PLTOFF64MSB 0x3e ++#define R_IA64_PLTOFF64LSB 0x3f ++#define R_IA64_FPTR64I 0x43 ++#define R_IA64_FPTR32MSB 0x44 ++#define R_IA64_FPTR32LSB 0x45 ++#define R_IA64_FPTR64MSB 0x46 ++#define R_IA64_FPTR64LSB 0x47 ++#define R_IA64_PCREL60B 0x48 ++#define R_IA64_PCREL21B 0x49 ++#define R_IA64_PCREL21M 0x4a ++#define R_IA64_PCREL21F 0x4b ++#define R_IA64_PCREL32MSB 0x4c ++#define R_IA64_PCREL32LSB 0x4d ++#define R_IA64_PCREL64MSB 0x4e ++#define R_IA64_PCREL64LSB 0x4f ++#define R_IA64_LTOFF_FPTR22 0x52 ++#define R_IA64_LTOFF_FPTR64I 0x53 ++#define R_IA64_LTOFF_FPTR32MSB 0x54 ++#define R_IA64_LTOFF_FPTR32LSB 0x55 ++#define R_IA64_LTOFF_FPTR64MSB 0x56 ++#define R_IA64_LTOFF_FPTR64LSB 0x57 ++#define R_IA64_SEGREL32MSB 0x5c ++#define R_IA64_SEGREL32LSB 0x5d ++#define R_IA64_SEGREL64MSB 0x5e ++#define R_IA64_SEGREL64LSB 0x5f ++#define R_IA64_SECREL32MSB 0x64 ++#define R_IA64_SECREL32LSB 0x65 ++#define R_IA64_SECREL64MSB 0x66 ++#define R_IA64_SECREL64LSB 0x67 ++#define R_IA64_REL32MSB 0x6c ++#define R_IA64_REL32LSB 0x6d ++#define R_IA64_REL64MSB 0x6e ++#define R_IA64_REL64LSB 0x6f ++#define R_IA64_LTV32MSB 0x74 ++#define R_IA64_LTV32LSB 0x75 ++#define R_IA64_LTV64MSB 0x76 ++#define R_IA64_LTV64LSB 0x77 ++#define R_IA64_PCREL21BI 0x79 ++#define R_IA64_PCREL22 0x7a ++#define R_IA64_PCREL64I 0x7b ++#define R_IA64_IPLTMSB 0x80 ++#define R_IA64_IPLTLSB 0x81 ++#define R_IA64_COPY 0x84 ++#define R_IA64_SUB 0x85 ++#define R_IA64_LTOFF22X 0x86 ++#define R_IA64_LDXMOV 0x87 ++#define R_IA64_TPREL14 0x91 ++#define R_IA64_TPREL22 0x92 ++#define R_IA64_TPREL64I 0x93 ++#define R_IA64_TPREL64MSB 0x96 ++#define R_IA64_TPREL64LSB 0x97 ++#define R_IA64_LTOFF_TPREL22 0x9a ++#define R_IA64_DTPMOD64MSB 0xa6 ++#define R_IA64_DTPMOD64LSB 0xa7 ++#define R_IA64_LTOFF_DTPMOD22 0xaa ++#define R_IA64_DTPREL14 0xb1 ++#define R_IA64_DTPREL22 0xb2 ++#define R_IA64_DTPREL64I 0xb3 ++#define R_IA64_DTPREL32MSB 0xb4 ++#define R_IA64_DTPREL32LSB 0xb5 ++#define R_IA64_DTPREL64MSB 0xb6 ++#define R_IA64_DTPREL64LSB 0xb7 ++#define R_IA64_LTOFF_DTPREL22 0xba ++ ++ ++ ++ ++#define R_SH_NONE 0 ++#define R_SH_DIR32 1 ++#define R_SH_REL32 2 ++#define R_SH_DIR8WPN 3 ++#define R_SH_IND12W 4 ++#define R_SH_DIR8WPL 5 ++#define R_SH_DIR8WPZ 6 ++#define R_SH_DIR8BP 7 ++#define R_SH_DIR8W 8 ++#define R_SH_DIR8L 9 ++#define R_SH_SWITCH16 25 ++#define R_SH_SWITCH32 26 ++#define R_SH_USES 27 ++#define R_SH_COUNT 28 ++#define R_SH_ALIGN 29 ++#define R_SH_CODE 30 ++#define R_SH_DATA 31 ++#define R_SH_LABEL 32 ++#define R_SH_SWITCH8 33 ++#define R_SH_GNU_VTINHERIT 34 ++#define R_SH_GNU_VTENTRY 35 ++#define R_SH_TLS_GD_32 144 ++#define R_SH_TLS_LD_32 145 ++#define R_SH_TLS_LDO_32 146 ++#define R_SH_TLS_IE_32 147 ++#define R_SH_TLS_LE_32 148 ++#define R_SH_TLS_DTPMOD32 149 ++#define R_SH_TLS_DTPOFF32 150 ++#define R_SH_TLS_TPOFF32 151 ++#define R_SH_GOT32 160 ++#define R_SH_PLT32 161 ++#define R_SH_COPY 162 ++#define R_SH_GLOB_DAT 163 ++#define R_SH_JMP_SLOT 164 ++#define R_SH_RELATIVE 165 ++#define R_SH_GOTOFF 166 ++#define R_SH_GOTPC 167 ++ ++#define R_SH_NUM 256 ++ ++ ++ ++#define R_390_NONE 0 ++#define R_390_8 1 ++#define R_390_12 2 ++#define R_390_16 3 ++#define R_390_32 4 ++#define R_390_PC32 5 ++#define R_390_GOT12 6 ++#define R_390_GOT32 7 ++#define R_390_PLT32 8 ++#define R_390_COPY 9 ++#define R_390_GLOB_DAT 10 ++#define R_390_JMP_SLOT 11 ++#define R_390_RELATIVE 12 ++#define R_390_GOTOFF32 13 ++#define R_390_GOTPC 14 ++#define R_390_GOT16 15 ++#define R_390_PC16 16 ++#define R_390_PC16DBL 17 ++#define R_390_PLT16DBL 18 ++#define R_390_PC32DBL 19 ++#define R_390_PLT32DBL 20 ++#define R_390_GOTPCDBL 21 ++#define R_390_64 22 ++#define R_390_PC64 23 ++#define R_390_GOT64 24 ++#define R_390_PLT64 25 ++#define R_390_GOTENT 26 ++#define R_390_GOTOFF16 27 ++#define R_390_GOTOFF64 28 ++#define R_390_GOTPLT12 29 ++#define R_390_GOTPLT16 30 ++#define R_390_GOTPLT32 31 ++#define R_390_GOTPLT64 32 ++#define R_390_GOTPLTENT 33 ++#define R_390_PLTOFF16 34 ++#define R_390_PLTOFF32 35 ++#define R_390_PLTOFF64 36 ++#define R_390_TLS_LOAD 37 ++#define R_390_TLS_GDCALL 38 ++ ++#define R_390_TLS_LDCALL 39 ++ ++#define R_390_TLS_GD32 40 ++ ++#define R_390_TLS_GD64 41 ++ ++#define R_390_TLS_GOTIE12 42 ++ ++#define R_390_TLS_GOTIE32 43 ++ ++#define R_390_TLS_GOTIE64 44 ++ ++#define R_390_TLS_LDM32 45 ++ ++#define R_390_TLS_LDM64 46 ++ ++#define R_390_TLS_IE32 47 ++ ++#define R_390_TLS_IE64 48 ++ ++#define R_390_TLS_IEENT 49 ++ ++#define R_390_TLS_LE32 50 ++ ++#define R_390_TLS_LE64 51 ++ ++#define R_390_TLS_LDO32 52 ++ ++#define R_390_TLS_LDO64 53 ++ ++#define R_390_TLS_DTPMOD 54 ++#define R_390_TLS_DTPOFF 55 ++#define R_390_TLS_TPOFF 56 ++ ++#define R_390_20 57 ++#define R_390_GOT20 58 ++#define R_390_GOTPLT20 59 ++#define R_390_TLS_GOTIE20 60 ++ ++ ++#define R_390_NUM 61 ++ ++ ++ ++#define R_CRIS_NONE 0 ++#define R_CRIS_8 1 ++#define R_CRIS_16 2 ++#define R_CRIS_32 3 ++#define R_CRIS_8_PCREL 4 ++#define R_CRIS_16_PCREL 5 ++#define R_CRIS_32_PCREL 6 ++#define R_CRIS_GNU_VTINHERIT 7 ++#define R_CRIS_GNU_VTENTRY 8 ++#define R_CRIS_COPY 9 ++#define R_CRIS_GLOB_DAT 10 ++#define R_CRIS_JUMP_SLOT 11 ++#define R_CRIS_RELATIVE 12 ++#define R_CRIS_16_GOT 13 ++#define R_CRIS_32_GOT 14 ++#define R_CRIS_16_GOTPLT 15 ++#define R_CRIS_32_GOTPLT 16 ++#define R_CRIS_32_GOTREL 17 ++#define R_CRIS_32_PLT_GOTREL 18 ++#define R_CRIS_32_PLT_PCREL 19 ++ ++#define R_CRIS_NUM 20 ++ ++ ++ ++#define R_X86_64_NONE 0 ++#define R_X86_64_64 1 ++#define R_X86_64_PC32 2 ++#define R_X86_64_GOT32 3 ++#define R_X86_64_PLT32 4 ++#define R_X86_64_COPY 5 ++#define R_X86_64_GLOB_DAT 6 ++#define R_X86_64_JUMP_SLOT 7 ++#define R_X86_64_RELATIVE 8 ++#define R_X86_64_GOTPCREL 9 ++ ++#define R_X86_64_32 10 ++#define R_X86_64_32S 11 ++#define R_X86_64_16 12 ++#define R_X86_64_PC16 13 ++#define R_X86_64_8 14 ++#define R_X86_64_PC8 15 ++#define R_X86_64_DTPMOD64 16 ++#define R_X86_64_DTPOFF64 17 ++#define R_X86_64_TPOFF64 18 ++#define R_X86_64_TLSGD 19 ++ ++#define R_X86_64_TLSLD 20 ++ ++#define R_X86_64_DTPOFF32 21 ++#define R_X86_64_GOTTPOFF 22 ++ ++#define R_X86_64_TPOFF32 23 ++#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_RELATIVE64 38 ++#define R_X86_64_NUM 39 ++ ++ ++ ++#define R_MN10300_NONE 0 ++#define R_MN10300_32 1 ++#define R_MN10300_16 2 ++#define R_MN10300_8 3 ++#define R_MN10300_PCREL32 4 ++#define R_MN10300_PCREL16 5 ++#define R_MN10300_PCREL8 6 ++#define R_MN10300_GNU_VTINHERIT 7 ++#define R_MN10300_GNU_VTENTRY 8 ++#define R_MN10300_24 9 ++#define R_MN10300_GOTPC32 10 ++#define R_MN10300_GOTPC16 11 ++#define R_MN10300_GOTOFF32 12 ++#define R_MN10300_GOTOFF24 13 ++#define R_MN10300_GOTOFF16 14 ++#define R_MN10300_PLT32 15 ++#define R_MN10300_PLT16 16 ++#define R_MN10300_GOT32 17 ++#define R_MN10300_GOT24 18 ++#define R_MN10300_GOT16 19 ++#define R_MN10300_COPY 20 ++#define R_MN10300_GLOB_DAT 21 ++#define R_MN10300_JMP_SLOT 22 ++#define R_MN10300_RELATIVE 23 ++ ++#define R_MN10300_NUM 24 ++ ++ ++ ++#define R_M32R_NONE 0 ++#define R_M32R_16 1 ++#define R_M32R_32 2 ++#define R_M32R_24 3 ++#define R_M32R_10_PCREL 4 ++#define R_M32R_18_PCREL 5 ++#define R_M32R_26_PCREL 6 ++#define R_M32R_HI16_ULO 7 ++#define R_M32R_HI16_SLO 8 ++#define R_M32R_LO16 9 ++#define R_M32R_SDA16 10 ++#define R_M32R_GNU_VTINHERIT 11 ++#define R_M32R_GNU_VTENTRY 12 ++ ++#define R_M32R_16_RELA 33 ++#define R_M32R_32_RELA 34 ++#define R_M32R_24_RELA 35 ++#define R_M32R_10_PCREL_RELA 36 ++#define R_M32R_18_PCREL_RELA 37 ++#define R_M32R_26_PCREL_RELA 38 ++#define R_M32R_HI16_ULO_RELA 39 ++#define R_M32R_HI16_SLO_RELA 40 ++#define R_M32R_LO16_RELA 41 ++#define R_M32R_SDA16_RELA 42 ++#define R_M32R_RELA_GNU_VTINHERIT 43 ++#define R_M32R_RELA_GNU_VTENTRY 44 ++#define R_M32R_REL32 45 ++ ++#define R_M32R_GOT24 48 ++#define R_M32R_26_PLTREL 49 ++#define R_M32R_COPY 50 ++#define R_M32R_GLOB_DAT 51 ++#define R_M32R_JMP_SLOT 52 ++#define R_M32R_RELATIVE 53 ++#define R_M32R_GOTOFF 54 ++#define R_M32R_GOTPC24 55 ++#define R_M32R_GOT16_HI_ULO 56 ++ ++#define R_M32R_GOT16_HI_SLO 57 ++ ++#define R_M32R_GOT16_LO 58 ++#define R_M32R_GOTPC_HI_ULO 59 ++ ++#define R_M32R_GOTPC_HI_SLO 60 ++ ++#define R_M32R_GOTPC_LO 61 ++ ++#define R_M32R_GOTOFF_HI_ULO 62 ++ ++#define R_M32R_GOTOFF_HI_SLO 63 ++ ++#define R_M32R_GOTOFF_LO 64 ++#define R_M32R_NUM 256 ++ ++#define R_MICROBLAZE_NONE 0 ++#define R_MICROBLAZE_32 1 ++#define R_MICROBLAZE_32_PCREL 2 ++#define R_MICROBLAZE_64_PCREL 3 ++#define R_MICROBLAZE_32_PCREL_LO 4 ++#define R_MICROBLAZE_64 5 ++#define R_MICROBLAZE_32_LO 6 ++#define R_MICROBLAZE_SRO32 7 ++#define R_MICROBLAZE_SRW32 8 ++#define R_MICROBLAZE_64_NONE 9 ++#define R_MICROBLAZE_32_SYM_OP_SYM 10 ++#define R_MICROBLAZE_GNU_VTINHERIT 11 ++#define R_MICROBLAZE_GNU_VTENTRY 12 ++#define R_MICROBLAZE_GOTPC_64 13 ++#define R_MICROBLAZE_GOT_64 14 ++#define R_MICROBLAZE_PLT_64 15 ++#define R_MICROBLAZE_REL 16 ++#define R_MICROBLAZE_JUMP_SLOT 17 ++#define R_MICROBLAZE_GLOB_DAT 18 ++#define R_MICROBLAZE_GOTOFF_64 19 ++#define R_MICROBLAZE_GOTOFF_32 20 ++#define R_MICROBLAZE_COPY 21 ++#define R_MICROBLAZE_TLS 22 ++#define R_MICROBLAZE_TLSGD 23 ++#define R_MICROBLAZE_TLSLD 24 ++#define R_MICROBLAZE_TLSDTPMOD32 25 ++#define R_MICROBLAZE_TLSDTPREL32 26 ++#define R_MICROBLAZE_TLSDTPREL64 27 ++#define R_MICROBLAZE_TLSGOTTPREL32 28 ++#define R_MICROBLAZE_TLSTPREL32 29 ++ ++#ifdef __cplusplus ++} ++#endif ++ ++ ++#endif diff --git a/toolchain/kernel-headers/patches/3.10.30/sgidefs.patch b/toolchain/kernel-headers/patches/3.10.30/sgidefs.patch new file mode 100644 index 000000000..f00a284d9 --- /dev/null +++ b/toolchain/kernel-headers/patches/3.10.30/sgidefs.patch @@ -0,0 +1,18 @@ +diff -Nur linux-3.11.5.orig/arch/mips/include/uapi/asm/sgidefs.h linux-3.11.5/arch/mips/include/uapi/asm/sgidefs.h +--- linux-3.11.5.orig/arch/mips/include/uapi/asm/sgidefs.h 2013-10-14 03:14:45.000000000 +0200 ++++ linux-3.11.5/arch/mips/include/uapi/asm/sgidefs.h 2013-11-08 22:01:28.000000000 +0100 +@@ -11,14 +11,6 @@ + #define __ASM_SGIDEFS_H + + /* +- * Using a Linux compiler for building Linux seems logic but not to +- * everybody. +- */ +-#ifndef __linux__ +-#error Use a Linux compiler or give up. +-#endif +- +-/* + * Definitions for the ISA levels + * + * With the introduction of MIPS32 / MIPS64 instruction sets definitions diff --git a/toolchain/kernel-headers/patches/3.10.30/sortext.patch b/toolchain/kernel-headers/patches/3.10.30/sortext.patch new file mode 100644 index 000000000..65bbbb64b --- /dev/null +++ b/toolchain/kernel-headers/patches/3.10.30/sortext.patch @@ -0,0 +1,33 @@ +diff -Nur linux-3.11.5.orig/arch/arm/Kconfig linux-3.11.5/arch/arm/Kconfig +--- linux-3.11.5.orig/arch/arm/Kconfig 2013-10-14 03:14:45.000000000 +0200 ++++ linux-3.11.5/arch/arm/Kconfig 2013-10-16 10:36:41.000000000 +0200 +@@ -6,7 +6,6 @@ + select ARCH_HAVE_CUSTOM_GPIO_H + select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST + select ARCH_WANT_IPC_PARSE_VERSION +- select BUILDTIME_EXTABLE_SORT if MMU + select CPU_PM if (SUSPEND || CPU_IDLE) + select DCACHE_WORD_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && !CPU_BIG_ENDIAN && MMU + select GENERIC_ATOMIC64 if (CPU_V7M || CPU_V6 || !CPU_32v6K || !AEABI) +diff -Nur linux-3.11.5.orig/arch/mips/Kconfig linux-3.11.5/arch/mips/Kconfig +--- linux-3.11.5.orig/arch/mips/Kconfig 2013-10-14 03:14:45.000000000 +0200 ++++ linux-3.11.5/arch/mips/Kconfig 2013-10-16 10:36:41.000000000 +0200 +@@ -36,7 +36,6 @@ + select HAVE_MEMBLOCK_NODE_MAP + select ARCH_DISCARD_MEMBLOCK + select GENERIC_SMP_IDLE_THREAD +- select BUILDTIME_EXTABLE_SORT + select GENERIC_CLOCKEVENTS + select GENERIC_CMOS_UPDATE + select HAVE_MOD_ARCH_SPECIFIC +diff -Nur linux-3.11.5.orig/arch/x86/Kconfig linux-3.11.5/arch/x86/Kconfig +--- linux-3.11.5.orig/arch/x86/Kconfig 2013-10-14 03:14:45.000000000 +0200 ++++ linux-3.11.5/arch/x86/Kconfig 2013-10-16 10:36:55.000000000 +0200 +@@ -101,7 +101,6 @@ + select GENERIC_SMP_IDLE_THREAD + select ARCH_WANT_IPC_PARSE_VERSION if X86_32 + select HAVE_ARCH_SECCOMP_FILTER +- select BUILDTIME_EXTABLE_SORT + select GENERIC_CMOS_UPDATE + select HAVE_ARCH_SOFT_DIRTY + select CLOCKSOURCE_WATCHDOG -- cgit v1.2.3 From 0f64c10d29d21b8e39050df345435c76dd700043 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Mon, 10 Mar 2014 11:31:17 +0100 Subject: rename STAGING_DIR to STAGING_TARGET_DIR, since ADK_NATIVE is gone, there is no difference --- toolchain/kernel-headers/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'toolchain') diff --git a/toolchain/kernel-headers/Makefile b/toolchain/kernel-headers/Makefile index e62b33e2d..4303accdc 100644 --- a/toolchain/kernel-headers/Makefile +++ b/toolchain/kernel-headers/Makefile @@ -10,10 +10,10 @@ $(WRKBUILD)/.headers: $(MAKE) -C $(WRKBUILD) HOSTCC=$(CC_FOR_BUILD) ARCH=$(ARCH) V=1 \ headers_check $(MAKE) -C $(WRKBUILD) HOSTCC=$(CC_FOR_BUILD) ARCH=$(ARCH) V=1 \ - INSTALL_HDR_PATH=$(STAGING_DIR)/usr \ + INSTALL_HDR_PATH=$(STAGING_TARGET_DIR)/usr \ headers_install - @-find $(STAGING_DIR)/usr/include -name .install -delete - @-find $(STAGING_DIR)/usr/include -name ..install.cmd -delete + @-find $(STAGING_TARGET_DIR)/usr/include -name .install -delete + @-find $(STAGING_TARGET_DIR)/usr/include -name ..install.cmd -delete touch $@ include ${TOPDIR}/mk/toolchain.mk -- cgit v1.2.3 From 5ab921af6386c3c9ba3f2dd8b3e0db9bfd8903f4 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Mon, 10 Mar 2014 16:16:12 +0100 Subject: kernel bump, add hifiberry device drivers --- .../patches/3.13.5/cleankernel.patch | 11 - .../kernel-headers/patches/3.13.5/microperl.patch | 13 - .../kernel-headers/patches/3.13.5/mkpiggy.patch | 28 - .../kernel-headers/patches/3.13.5/relocs.patch | 2693 -------------------- .../kernel-headers/patches/3.13.5/sgidefs.patch | 18 - .../kernel-headers/patches/3.13.5/sortext.patch | 33 - .../patches/3.13.6/cleankernel.patch | 11 + .../kernel-headers/patches/3.13.6/microperl.patch | 13 + .../kernel-headers/patches/3.13.6/mkpiggy.patch | 28 + .../kernel-headers/patches/3.13.6/relocs.patch | 2693 ++++++++++++++++++++ .../kernel-headers/patches/3.13.6/sgidefs.patch | 18 + .../kernel-headers/patches/3.13.6/sortext.patch | 33 + 12 files changed, 2796 insertions(+), 2796 deletions(-) delete mode 100644 toolchain/kernel-headers/patches/3.13.5/cleankernel.patch delete mode 100644 toolchain/kernel-headers/patches/3.13.5/microperl.patch delete mode 100644 toolchain/kernel-headers/patches/3.13.5/mkpiggy.patch delete mode 100644 toolchain/kernel-headers/patches/3.13.5/relocs.patch delete mode 100644 toolchain/kernel-headers/patches/3.13.5/sgidefs.patch delete mode 100644 toolchain/kernel-headers/patches/3.13.5/sortext.patch create mode 100644 toolchain/kernel-headers/patches/3.13.6/cleankernel.patch create mode 100644 toolchain/kernel-headers/patches/3.13.6/microperl.patch create mode 100644 toolchain/kernel-headers/patches/3.13.6/mkpiggy.patch create mode 100644 toolchain/kernel-headers/patches/3.13.6/relocs.patch create mode 100644 toolchain/kernel-headers/patches/3.13.6/sgidefs.patch create mode 100644 toolchain/kernel-headers/patches/3.13.6/sortext.patch (limited to 'toolchain') diff --git a/toolchain/kernel-headers/patches/3.13.5/cleankernel.patch b/toolchain/kernel-headers/patches/3.13.5/cleankernel.patch deleted file mode 100644 index d8c055dc3..000000000 --- a/toolchain/kernel-headers/patches/3.13.5/cleankernel.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -Nur linux-3.11.5.orig/scripts/Makefile.headersinst linux-3.11.5/scripts/Makefile.headersinst ---- linux-3.11.5.orig/scripts/Makefile.headersinst 2013-10-14 03:14:45.000000000 +0200 -+++ linux-3.11.5/scripts/Makefile.headersinst 2013-10-15 16:33:10.000000000 +0200 -@@ -107,7 +107,6 @@ - - targets += $(install-file) - $(install-file): scripts/headers_install.sh $(input-files1) $(input-files2) $(input-files3) FORCE -- $(if $(unwanted),$(call cmd,remove),) - $(if $(wildcard $(dir $@)),,$(shell mkdir -p $(dir $@))) - $(call if_changed,install) - diff --git a/toolchain/kernel-headers/patches/3.13.5/microperl.patch b/toolchain/kernel-headers/patches/3.13.5/microperl.patch deleted file mode 100644 index 298d96593..000000000 --- a/toolchain/kernel-headers/patches/3.13.5/microperl.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -Nur linux-3.11.5.orig/scripts/headers_check.pl linux-3.11.5/scripts/headers_check.pl ---- linux-3.11.5.orig/scripts/headers_check.pl 2013-10-14 03:14:45.000000000 +0200 -+++ linux-3.11.5/scripts/headers_check.pl 2013-10-16 17:08:59.000000000 +0200 -@@ -18,7 +18,7 @@ - # - # 3) Check for leaked CONFIG_ symbols - --use strict; -+#use strict; - use File::Basename; - - my ($dir, $arch, @files) = @ARGV; - diff --git a/toolchain/kernel-headers/patches/3.13.5/mkpiggy.patch b/toolchain/kernel-headers/patches/3.13.5/mkpiggy.patch deleted file mode 100644 index 751678b74..000000000 --- a/toolchain/kernel-headers/patches/3.13.5/mkpiggy.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff -Nur linux-3.13.3.orig/arch/x86/boot/compressed/mkpiggy.c linux-3.13.3/arch/x86/boot/compressed/mkpiggy.c ---- linux-3.13.3.orig/arch/x86/boot/compressed/mkpiggy.c 2014-02-13 23:00:14.000000000 +0100 -+++ linux-3.13.3/arch/x86/boot/compressed/mkpiggy.c 2014-02-17 11:09:06.000000000 +0100 -@@ -29,7 +29,14 @@ - #include - #include - #include --#include -+ -+static uint32_t getle32(const void *p) -+{ -+ const uint8_t *cp = p; -+ -+ return (uint32_t)cp[0] + ((uint32_t)cp[1] << 8) + -+ ((uint32_t)cp[2] << 16) + ((uint32_t)cp[3] << 24); -+} - - int main(int argc, char *argv[]) - { -@@ -63,7 +70,7 @@ - } - - ilen = ftell(f); -- olen = get_unaligned_le32(&olen); -+ olen = getle32(&olen); - - /* - * Now we have the input (compressed) and output (uncompressed) diff --git a/toolchain/kernel-headers/patches/3.13.5/relocs.patch b/toolchain/kernel-headers/patches/3.13.5/relocs.patch deleted file mode 100644 index 649b9e73e..000000000 --- a/toolchain/kernel-headers/patches/3.13.5/relocs.patch +++ /dev/null @@ -1,2693 +0,0 @@ -diff -Nur linux-3.11.5.orig/arch/x86/tools/relocs.h linux-3.11.5/arch/x86/tools/relocs.h ---- linux-3.11.5.orig/arch/x86/tools/relocs.h 2013-10-14 03:14:45.000000000 +0200 -+++ linux-3.11.5/arch/x86/tools/relocs.h 2013-10-20 17:41:16.000000000 +0200 -@@ -9,10 +9,14 @@ - #include - #include - #include -+#ifdef __linux__ - #include - #include - #define USE_BSD - #include -+#else -+#include "elf.h" -+#endif - #include - #include - -diff -Nur linux-3.11.5.orig/tools/include/elf.h linux-3.11.5/tools/include/elf.h ---- linux-3.11.5.orig/tools/include/elf.h 1970-01-01 01:00:00.000000000 +0100 -+++ linux-3.11.5/tools/include/elf.h 2013-10-20 17:42:10.000000000 +0200 -@@ -0,0 +1,2671 @@ -+#ifndef _ELF_H -+#define _ELF_H -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+#include -+ -+typedef uint16_t Elf32_Half; -+typedef uint16_t Elf64_Half; -+ -+typedef uint32_t Elf32_Word; -+typedef int32_t Elf32_Sword; -+typedef uint32_t Elf64_Word; -+typedef int32_t Elf64_Sword; -+ -+typedef uint64_t Elf32_Xword; -+typedef int64_t Elf32_Sxword; -+typedef uint64_t Elf64_Xword; -+typedef int64_t Elf64_Sxword; -+ -+typedef uint32_t Elf32_Addr; -+typedef uint64_t Elf64_Addr; -+ -+typedef uint32_t Elf32_Off; -+typedef uint64_t Elf64_Off; -+ -+typedef uint16_t Elf32_Section; -+typedef uint16_t Elf64_Section; -+ -+typedef Elf32_Half Elf32_Versym; -+typedef Elf64_Half Elf64_Versym; -+ -+#define EI_NIDENT (16) -+ -+typedef struct { -+ unsigned char e_ident[EI_NIDENT]; -+ Elf32_Half e_type; -+ Elf32_Half e_machine; -+ Elf32_Word e_version; -+ Elf32_Addr e_entry; -+ Elf32_Off e_phoff; -+ Elf32_Off e_shoff; -+ Elf32_Word e_flags; -+ Elf32_Half e_ehsize; -+ Elf32_Half e_phentsize; -+ Elf32_Half e_phnum; -+ Elf32_Half e_shentsize; -+ Elf32_Half e_shnum; -+ Elf32_Half e_shstrndx; -+} Elf32_Ehdr; -+ -+typedef struct { -+ unsigned char e_ident[EI_NIDENT]; -+ Elf64_Half e_type; -+ Elf64_Half e_machine; -+ Elf64_Word e_version; -+ Elf64_Addr e_entry; -+ Elf64_Off e_phoff; -+ Elf64_Off e_shoff; -+ Elf64_Word e_flags; -+ Elf64_Half e_ehsize; -+ Elf64_Half e_phentsize; -+ Elf64_Half e_phnum; -+ Elf64_Half e_shentsize; -+ Elf64_Half e_shnum; -+ Elf64_Half e_shstrndx; -+} Elf64_Ehdr; -+ -+#define EI_MAG0 0 -+#define ELFMAG0 0x7f -+ -+#define EI_MAG1 1 -+#define ELFMAG1 'E' -+ -+#define EI_MAG2 2 -+#define ELFMAG2 'L' -+ -+#define EI_MAG3 3 -+#define ELFMAG3 'F' -+ -+ -+#define ELFMAG "\177ELF" -+#define SELFMAG 4 -+ -+#define EI_CLASS 4 -+#define ELFCLASSNONE 0 -+#define ELFCLASS32 1 -+#define ELFCLASS64 2 -+#define ELFCLASSNUM 3 -+ -+#define EI_DATA 5 -+#define ELFDATANONE 0 -+#define ELFDATA2LSB 1 -+#define ELFDATA2MSB 2 -+#define ELFDATANUM 3 -+ -+#define EI_VERSION 6 -+ -+ -+#define EI_OSABI 7 -+#define ELFOSABI_NONE 0 -+#define ELFOSABI_SYSV 0 -+#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 -+#define ELFOSABI_FREEBSD 9 -+#define ELFOSABI_TRU64 10 -+#define ELFOSABI_MODESTO 11 -+#define ELFOSABI_OPENBSD 12 -+#define ELFOSABI_ARM 97 -+#define ELFOSABI_STANDALONE 255 -+ -+#define EI_ABIVERSION 8 -+ -+#define EI_PAD 9 -+ -+ -+ -+#define ET_NONE 0 -+#define ET_REL 1 -+#define ET_EXEC 2 -+#define ET_DYN 3 -+#define ET_CORE 4 -+#define ET_NUM 5 -+#define ET_LOOS 0xfe00 -+#define ET_HIOS 0xfeff -+#define ET_LOPROC 0xff00 -+#define ET_HIPROC 0xffff -+ -+ -+ -+#define EM_NONE 0 -+#define EM_M32 1 -+#define EM_SPARC 2 -+#define EM_386 3 -+#define EM_68K 4 -+#define EM_88K 5 -+#define EM_860 7 -+#define EM_MIPS 8 -+#define EM_S370 9 -+#define EM_MIPS_RS3_LE 10 -+ -+#define EM_PARISC 15 -+#define EM_VPP500 17 -+#define EM_SPARC32PLUS 18 -+#define EM_960 19 -+#define EM_PPC 20 -+#define EM_PPC64 21 -+#define EM_S390 22 -+ -+#define EM_V800 36 -+#define EM_FR20 37 -+#define EM_RH32 38 -+#define EM_RCE 39 -+#define EM_ARM 40 -+#define EM_FAKE_ALPHA 41 -+#define EM_SH 42 -+#define EM_SPARCV9 43 -+#define EM_TRICORE 44 -+#define EM_ARC 45 -+#define EM_H8_300 46 -+#define EM_H8_300H 47 -+#define EM_H8S 48 -+#define EM_H8_500 49 -+#define EM_IA_64 50 -+#define EM_MIPS_X 51 -+#define EM_COLDFIRE 52 -+#define EM_68HC12 53 -+#define EM_MMA 54 -+#define EM_PCP 55 -+#define EM_NCPU 56 -+#define EM_NDR1 57 -+#define EM_STARCORE 58 -+#define EM_ME16 59 -+#define EM_ST100 60 -+#define EM_TINYJ 61 -+#define EM_X86_64 62 -+#define EM_PDSP 63 -+ -+#define EM_FX66 66 -+#define EM_ST9PLUS 67 -+#define EM_ST7 68 -+#define EM_68HC16 69 -+#define EM_68HC11 70 -+#define EM_68HC08 71 -+#define EM_68HC05 72 -+#define EM_SVX 73 -+#define EM_ST19 74 -+#define EM_VAX 75 -+#define EM_CRIS 76 -+#define EM_JAVELIN 77 -+#define EM_FIREPATH 78 -+#define EM_ZSP 79 -+#define EM_MMIX 80 -+#define EM_HUANY 81 -+#define EM_PRISM 82 -+#define EM_AVR 83 -+#define EM_FR30 84 -+#define EM_D10V 85 -+#define EM_D30V 86 -+#define EM_V850 87 -+#define EM_M32R 88 -+#define EM_MN10300 89 -+#define EM_MN10200 90 -+#define EM_PJ 91 -+#define EM_OPENRISC 92 -+#define EM_ARC_A5 93 -+#define EM_XTENSA 94 -+#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 -+#define EV_CURRENT 1 -+#define EV_NUM 2 -+ -+typedef struct { -+ Elf32_Word sh_name; -+ Elf32_Word sh_type; -+ Elf32_Word sh_flags; -+ Elf32_Addr sh_addr; -+ Elf32_Off sh_offset; -+ Elf32_Word sh_size; -+ Elf32_Word sh_link; -+ Elf32_Word sh_info; -+ Elf32_Word sh_addralign; -+ Elf32_Word sh_entsize; -+} Elf32_Shdr; -+ -+typedef struct { -+ Elf64_Word sh_name; -+ Elf64_Word sh_type; -+ Elf64_Xword sh_flags; -+ Elf64_Addr sh_addr; -+ Elf64_Off sh_offset; -+ Elf64_Xword sh_size; -+ Elf64_Word sh_link; -+ Elf64_Word sh_info; -+ Elf64_Xword sh_addralign; -+ Elf64_Xword sh_entsize; -+} Elf64_Shdr; -+ -+ -+ -+#define SHN_UNDEF 0 -+#define SHN_LORESERVE 0xff00 -+#define SHN_LOPROC 0xff00 -+#define SHN_BEFORE 0xff00 -+ -+#define SHN_AFTER 0xff01 -+ -+#define SHN_HIPROC 0xff1f -+#define SHN_LOOS 0xff20 -+#define SHN_HIOS 0xff3f -+#define SHN_ABS 0xfff1 -+#define SHN_COMMON 0xfff2 -+#define SHN_XINDEX 0xffff -+#define SHN_HIRESERVE 0xffff -+ -+ -+ -+#define SHT_NULL 0 -+#define SHT_PROGBITS 1 -+#define SHT_SYMTAB 2 -+#define SHT_STRTAB 3 -+#define SHT_RELA 4 -+#define SHT_HASH 5 -+#define SHT_DYNAMIC 6 -+#define SHT_NOTE 7 -+#define SHT_NOBITS 8 -+#define SHT_REL 9 -+#define SHT_SHLIB 10 -+#define SHT_DYNSYM 11 -+#define SHT_INIT_ARRAY 14 -+#define SHT_FINI_ARRAY 15 -+#define SHT_PREINIT_ARRAY 16 -+#define SHT_GROUP 17 -+#define SHT_SYMTAB_SHNDX 18 -+#define SHT_NUM 19 -+#define SHT_LOOS 0x60000000 -+#define SHT_GNU_ATTRIBUTES 0x6ffffff5 -+#define SHT_GNU_HASH 0x6ffffff6 -+#define SHT_GNU_LIBLIST 0x6ffffff7 -+#define SHT_CHECKSUM 0x6ffffff8 -+#define SHT_LOSUNW 0x6ffffffa -+#define SHT_SUNW_move 0x6ffffffa -+#define SHT_SUNW_COMDAT 0x6ffffffb -+#define SHT_SUNW_syminfo 0x6ffffffc -+#define SHT_GNU_verdef 0x6ffffffd -+#define SHT_GNU_verneed 0x6ffffffe -+#define SHT_GNU_versym 0x6fffffff -+#define SHT_HISUNW 0x6fffffff -+#define SHT_HIOS 0x6fffffff -+#define SHT_LOPROC 0x70000000 -+#define SHT_HIPROC 0x7fffffff -+#define SHT_LOUSER 0x80000000 -+#define SHT_HIUSER 0x8fffffff -+ -+#define SHF_WRITE (1 << 0) -+#define SHF_ALLOC (1 << 1) -+#define SHF_EXECINSTR (1 << 2) -+#define SHF_MERGE (1 << 4) -+#define SHF_STRINGS (1 << 5) -+#define SHF_INFO_LINK (1 << 6) -+#define SHF_LINK_ORDER (1 << 7) -+#define SHF_OS_NONCONFORMING (1 << 8) -+ -+#define SHF_GROUP (1 << 9) -+#define SHF_TLS (1 << 10) -+#define SHF_MASKOS 0x0ff00000 -+#define SHF_MASKPROC 0xf0000000 -+#define SHF_ORDERED (1 << 30) -+#define SHF_EXCLUDE (1 << 31) -+ -+#define GRP_COMDAT 0x1 -+ -+typedef struct { -+ Elf32_Word st_name; -+ Elf32_Addr st_value; -+ Elf32_Word st_size; -+ unsigned char st_info; -+ unsigned char st_other; -+ Elf32_Section st_shndx; -+} Elf32_Sym; -+ -+typedef struct { -+ Elf64_Word st_name; -+ unsigned char st_info; -+ unsigned char st_other; -+ Elf64_Section st_shndx; -+ Elf64_Addr st_value; -+ Elf64_Xword st_size; -+} Elf64_Sym; -+ -+typedef struct { -+ Elf32_Half si_boundto; -+ Elf32_Half si_flags; -+} Elf32_Syminfo; -+ -+typedef struct { -+ Elf64_Half si_boundto; -+ Elf64_Half si_flags; -+} Elf64_Syminfo; -+ -+#define SYMINFO_BT_SELF 0xffff -+#define SYMINFO_BT_PARENT 0xfffe -+#define SYMINFO_BT_LOWRESERVE 0xff00 -+ -+#define SYMINFO_FLG_DIRECT 0x0001 -+#define SYMINFO_FLG_PASSTHRU 0x0002 -+#define SYMINFO_FLG_COPY 0x0004 -+#define SYMINFO_FLG_LAZYLOAD 0x0008 -+ -+#define SYMINFO_NONE 0 -+#define SYMINFO_CURRENT 1 -+#define SYMINFO_NUM 2 -+ -+#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4) -+#define ELF32_ST_TYPE(val) ((val) & 0xf) -+#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf)) -+ -+#define ELF64_ST_BIND(val) ELF32_ST_BIND (val) -+#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val) -+#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type)) -+ -+#define STB_LOCAL 0 -+#define STB_GLOBAL 1 -+#define STB_WEAK 2 -+#define STB_NUM 3 -+#define STB_LOOS 10 -+#define STB_GNU_UNIQUE 10 -+#define STB_HIOS 12 -+#define STB_LOPROC 13 -+#define STB_HIPROC 15 -+ -+#define STT_NOTYPE 0 -+#define STT_OBJECT 1 -+#define STT_FUNC 2 -+#define STT_SECTION 3 -+#define STT_FILE 4 -+#define STT_COMMON 5 -+#define STT_TLS 6 -+#define STT_NUM 7 -+#define STT_LOOS 10 -+#define STT_GNU_IFUNC 10 -+#define STT_HIOS 12 -+#define STT_LOPROC 13 -+#define STT_HIPROC 15 -+ -+#define STN_UNDEF 0 -+ -+#define ELF32_ST_VISIBILITY(o) ((o) & 0x03) -+#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o) -+ -+#define STV_DEFAULT 0 -+#define STV_INTERNAL 1 -+#define STV_HIDDEN 2 -+#define STV_PROTECTED 3 -+ -+ -+ -+ -+typedef struct -+{ -+ Elf32_Addr r_offset; -+ Elf32_Word r_info; -+} Elf32_Rel; -+ -+typedef struct { -+ Elf64_Addr r_offset; -+ Elf64_Xword r_info; -+} Elf64_Rel; -+ -+ -+ -+typedef struct { -+ Elf32_Addr r_offset; -+ Elf32_Word r_info; -+ Elf32_Sword r_addend; -+} Elf32_Rela; -+ -+typedef struct { -+ Elf64_Addr r_offset; -+ Elf64_Xword r_info; -+ Elf64_Sxword r_addend; -+} Elf64_Rela; -+ -+ -+ -+#define ELF32_R_SYM(val) ((val) >> 8) -+#define ELF32_R_TYPE(val) ((val) & 0xff) -+#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff)) -+ -+#define ELF64_R_SYM(i) ((i) >> 32) -+#define ELF64_R_TYPE(i) ((i) & 0xffffffff) -+#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type)) -+ -+ -+ -+typedef struct { -+ Elf32_Word p_type; -+ Elf32_Off p_offset; -+ Elf32_Addr p_vaddr; -+ Elf32_Addr p_paddr; -+ Elf32_Word p_filesz; -+ Elf32_Word p_memsz; -+ Elf32_Word p_flags; -+ Elf32_Word p_align; -+} Elf32_Phdr; -+ -+typedef struct { -+ Elf64_Word p_type; -+ Elf64_Word p_flags; -+ Elf64_Off p_offset; -+ Elf64_Addr p_vaddr; -+ Elf64_Addr p_paddr; -+ Elf64_Xword p_filesz; -+ Elf64_Xword p_memsz; -+ Elf64_Xword p_align; -+} Elf64_Phdr; -+ -+ -+ -+#define PT_NULL 0 -+#define PT_LOAD 1 -+#define PT_DYNAMIC 2 -+#define PT_INTERP 3 -+#define PT_NOTE 4 -+#define PT_SHLIB 5 -+#define PT_PHDR 6 -+#define PT_TLS 7 -+#define PT_NUM 8 -+#define PT_LOOS 0x60000000 -+#define PT_GNU_EH_FRAME 0x6474e550 -+#define PT_GNU_STACK 0x6474e551 -+#define PT_GNU_RELRO 0x6474e552 -+#define PT_LOSUNW 0x6ffffffa -+#define PT_SUNWBSS 0x6ffffffa -+#define PT_SUNWSTACK 0x6ffffffb -+#define PT_HISUNW 0x6fffffff -+#define PT_HIOS 0x6fffffff -+#define PT_LOPROC 0x70000000 -+#define PT_HIPROC 0x7fffffff -+ -+ -+#define PN_XNUM 0xffff -+ -+ -+#define PF_X (1 << 0) -+#define PF_W (1 << 1) -+#define PF_R (1 << 2) -+#define PF_MASKOS 0x0ff00000 -+#define PF_MASKPROC 0xf0000000 -+ -+ -+ -+#define NT_PRSTATUS 1 -+#define NT_FPREGSET 2 -+#define NT_PRPSINFO 3 -+#define NT_PRXREG 4 -+#define NT_TASKSTRUCT 4 -+#define NT_PLATFORM 5 -+#define NT_AUXV 6 -+#define NT_GWINDOWS 7 -+#define NT_ASRS 8 -+#define NT_PSTATUS 10 -+#define NT_PSINFO 13 -+#define NT_PRCRED 14 -+#define NT_UTSNAME 15 -+#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 -+ -+ -+ -+ -+typedef struct { -+ Elf32_Sword d_tag; -+ union { -+ Elf32_Word d_val; -+ Elf32_Addr d_ptr; -+ } d_un; -+} Elf32_Dyn; -+ -+typedef struct { -+ Elf64_Sxword d_tag; -+ union { -+ Elf64_Xword d_val; -+ Elf64_Addr d_ptr; -+ } d_un; -+} Elf64_Dyn; -+ -+ -+ -+#define DT_NULL 0 -+#define DT_NEEDED 1 -+#define DT_PLTRELSZ 2 -+#define DT_PLTGOT 3 -+#define DT_HASH 4 -+#define DT_STRTAB 5 -+#define DT_SYMTAB 6 -+#define DT_RELA 7 -+#define DT_RELASZ 8 -+#define DT_RELAENT 9 -+#define DT_STRSZ 10 -+#define DT_SYMENT 11 -+#define DT_INIT 12 -+#define DT_FINI 13 -+#define DT_SONAME 14 -+#define DT_RPATH 15 -+#define DT_SYMBOLIC 16 -+#define DT_REL 17 -+#define DT_RELSZ 18 -+#define DT_RELENT 19 -+#define DT_PLTREL 20 -+#define DT_DEBUG 21 -+#define DT_TEXTREL 22 -+#define DT_JMPREL 23 -+#define DT_BIND_NOW 24 -+#define DT_INIT_ARRAY 25 -+#define DT_FINI_ARRAY 26 -+#define DT_INIT_ARRAYSZ 27 -+#define DT_FINI_ARRAYSZ 28 -+#define DT_RUNPATH 29 -+#define DT_FLAGS 30 -+#define DT_ENCODING 32 -+#define DT_PREINIT_ARRAY 32 -+#define DT_PREINIT_ARRAYSZ 33 -+#define DT_NUM 34 -+#define DT_LOOS 0x6000000d -+#define DT_HIOS 0x6ffff000 -+#define DT_LOPROC 0x70000000 -+#define DT_HIPROC 0x7fffffff -+#define DT_PROCNUM DT_MIPS_NUM -+ -+#define DT_VALRNGLO 0x6ffffd00 -+#define DT_GNU_PRELINKED 0x6ffffdf5 -+#define DT_GNU_CONFLICTSZ 0x6ffffdf6 -+#define DT_GNU_LIBLISTSZ 0x6ffffdf7 -+#define DT_CHECKSUM 0x6ffffdf8 -+#define DT_PLTPADSZ 0x6ffffdf9 -+#define DT_MOVEENT 0x6ffffdfa -+#define DT_MOVESZ 0x6ffffdfb -+#define DT_FEATURE_1 0x6ffffdfc -+#define DT_POSFLAG_1 0x6ffffdfd -+ -+#define DT_SYMINSZ 0x6ffffdfe -+#define DT_SYMINENT 0x6ffffdff -+#define DT_VALRNGHI 0x6ffffdff -+#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag)) -+#define DT_VALNUM 12 -+ -+#define DT_ADDRRNGLO 0x6ffffe00 -+#define DT_GNU_HASH 0x6ffffef5 -+#define DT_TLSDESC_PLT 0x6ffffef6 -+#define DT_TLSDESC_GOT 0x6ffffef7 -+#define DT_GNU_CONFLICT 0x6ffffef8 -+#define DT_GNU_LIBLIST 0x6ffffef9 -+#define DT_CONFIG 0x6ffffefa -+#define DT_DEPAUDIT 0x6ffffefb -+#define DT_AUDIT 0x6ffffefc -+#define DT_PLTPAD 0x6ffffefd -+#define DT_MOVETAB 0x6ffffefe -+#define DT_SYMINFO 0x6ffffeff -+#define DT_ADDRRNGHI 0x6ffffeff -+#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag)) -+#define DT_ADDRNUM 11 -+ -+ -+ -+#define DT_VERSYM 0x6ffffff0 -+ -+#define DT_RELACOUNT 0x6ffffff9 -+#define DT_RELCOUNT 0x6ffffffa -+ -+ -+#define DT_FLAGS_1 0x6ffffffb -+#define DT_VERDEF 0x6ffffffc -+ -+#define DT_VERDEFNUM 0x6ffffffd -+#define DT_VERNEED 0x6ffffffe -+ -+#define DT_VERNEEDNUM 0x6fffffff -+#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) -+#define DT_VERSIONTAGNUM 16 -+ -+ -+ -+#define DT_AUXILIARY 0x7ffffffd -+#define DT_FILTER 0x7fffffff -+#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1) -+#define DT_EXTRANUM 3 -+ -+ -+#define DF_ORIGIN 0x00000001 -+#define DF_SYMBOLIC 0x00000002 -+#define DF_TEXTREL 0x00000004 -+#define DF_BIND_NOW 0x00000008 -+#define DF_STATIC_TLS 0x00000010 -+ -+ -+ -+#define DF_1_NOW 0x00000001 -+#define DF_1_GLOBAL 0x00000002 -+#define DF_1_GROUP 0x00000004 -+#define DF_1_NODELETE 0x00000008 -+#define DF_1_LOADFLTR 0x00000010 -+#define DF_1_INITFIRST 0x00000020 -+#define DF_1_NOOPEN 0x00000040 -+#define DF_1_ORIGIN 0x00000080 -+#define DF_1_DIRECT 0x00000100 -+#define DF_1_TRANS 0x00000200 -+#define DF_1_INTERPOSE 0x00000400 -+#define DF_1_NODEFLIB 0x00000800 -+#define DF_1_NODUMP 0x00001000 -+#define DF_1_CONFALT 0x00002000 -+#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 -+ -+ -+#define DF_P1_LAZYLOAD 0x00000001 -+#define DF_P1_GROUPPERM 0x00000002 -+ -+ -+ -+ -+typedef struct { -+ Elf32_Half vd_version; -+ Elf32_Half vd_flags; -+ Elf32_Half vd_ndx; -+ Elf32_Half vd_cnt; -+ Elf32_Word vd_hash; -+ Elf32_Word vd_aux; -+ Elf32_Word vd_next; -+} Elf32_Verdef; -+ -+typedef struct { -+ Elf64_Half vd_version; -+ Elf64_Half vd_flags; -+ Elf64_Half vd_ndx; -+ Elf64_Half vd_cnt; -+ Elf64_Word vd_hash; -+ Elf64_Word vd_aux; -+ Elf64_Word vd_next; -+} Elf64_Verdef; -+ -+ -+ -+#define VER_DEF_NONE 0 -+#define VER_DEF_CURRENT 1 -+#define VER_DEF_NUM 2 -+ -+ -+#define VER_FLG_BASE 0x1 -+#define VER_FLG_WEAK 0x2 -+ -+ -+#define VER_NDX_LOCAL 0 -+#define VER_NDX_GLOBAL 1 -+#define VER_NDX_LORESERVE 0xff00 -+#define VER_NDX_ELIMINATE 0xff01 -+ -+ -+ -+typedef struct { -+ Elf32_Word vda_name; -+ Elf32_Word vda_next; -+} Elf32_Verdaux; -+ -+typedef struct { -+ Elf64_Word vda_name; -+ Elf64_Word vda_next; -+} Elf64_Verdaux; -+ -+ -+ -+ -+typedef struct { -+ Elf32_Half vn_version; -+ Elf32_Half vn_cnt; -+ Elf32_Word vn_file; -+ Elf32_Word vn_aux; -+ Elf32_Word vn_next; -+} Elf32_Verneed; -+ -+typedef struct { -+ Elf64_Half vn_version; -+ Elf64_Half vn_cnt; -+ Elf64_Word vn_file; -+ Elf64_Word vn_aux; -+ Elf64_Word vn_next; -+} Elf64_Verneed; -+ -+ -+ -+#define VER_NEED_NONE 0 -+#define VER_NEED_CURRENT 1 -+#define VER_NEED_NUM 2 -+ -+ -+ -+typedef struct { -+ Elf32_Word vna_hash; -+ Elf32_Half vna_flags; -+ Elf32_Half vna_other; -+ Elf32_Word vna_name; -+ Elf32_Word vna_next; -+} Elf32_Vernaux; -+ -+typedef struct { -+ Elf64_Word vna_hash; -+ Elf64_Half vna_flags; -+ Elf64_Half vna_other; -+ Elf64_Word vna_name; -+ Elf64_Word vna_next; -+} Elf64_Vernaux; -+ -+ -+ -+#define VER_FLG_WEAK 0x2 -+ -+ -+ -+typedef struct { -+ uint32_t a_type; -+ union { -+ uint32_t a_val; -+ } a_un; -+} Elf32_auxv_t; -+ -+typedef struct { -+ uint64_t a_type; -+ union { -+ uint64_t a_val; -+ } a_un; -+} Elf64_auxv_t; -+ -+ -+ -+#define AT_NULL 0 -+#define AT_IGNORE 1 -+#define AT_EXECFD 2 -+#define AT_PHDR 3 -+#define AT_PHENT 4 -+#define AT_PHNUM 5 -+#define AT_PAGESZ 6 -+#define AT_BASE 7 -+#define AT_FLAGS 8 -+#define AT_ENTRY 9 -+#define AT_NOTELF 10 -+#define AT_UID 11 -+#define AT_EUID 12 -+#define AT_GID 13 -+#define AT_EGID 14 -+#define AT_CLKTCK 17 -+ -+ -+#define AT_PLATFORM 15 -+#define AT_HWCAP 16 -+ -+ -+ -+ -+#define AT_FPUCW 18 -+ -+ -+#define AT_DCACHEBSIZE 19 -+#define AT_ICACHEBSIZE 20 -+#define AT_UCACHEBSIZE 21 -+ -+ -+ -+#define AT_IGNOREPPC 22 -+ -+#define AT_SECURE 23 -+ -+#define AT_BASE_PLATFORM 24 -+ -+#define AT_RANDOM 25 -+ -+#define AT_HWCAP2 26 -+ -+#define AT_EXECFN 31 -+ -+ -+ -+#define AT_SYSINFO 32 -+#define AT_SYSINFO_EHDR 33 -+ -+ -+ -+#define AT_L1I_CACHESHAPE 34 -+#define AT_L1D_CACHESHAPE 35 -+#define AT_L2_CACHESHAPE 36 -+#define AT_L3_CACHESHAPE 37 -+ -+ -+ -+ -+typedef struct { -+ Elf32_Word n_namesz; -+ Elf32_Word n_descsz; -+ Elf32_Word n_type; -+} Elf32_Nhdr; -+ -+typedef struct { -+ Elf64_Word n_namesz; -+ Elf64_Word n_descsz; -+ Elf64_Word n_type; -+} Elf64_Nhdr; -+ -+ -+ -+ -+#define ELF_NOTE_SOLARIS "SUNW Solaris" -+ -+ -+#define ELF_NOTE_GNU "GNU" -+ -+ -+ -+ -+ -+#define ELF_NOTE_PAGESIZE_HINT 1 -+ -+ -+#define NT_GNU_ABI_TAG 1 -+#define ELF_NOTE_ABI NT_GNU_ABI_TAG -+ -+ -+ -+#define ELF_NOTE_OS_LINUX 0 -+#define ELF_NOTE_OS_GNU 1 -+#define ELF_NOTE_OS_SOLARIS2 2 -+#define ELF_NOTE_OS_FREEBSD 3 -+ -+#define NT_GNU_BUILD_ID 3 -+#define NT_GNU_GOLD_VERSION 4 -+ -+ -+ -+typedef struct { -+ Elf32_Xword m_value; -+ Elf32_Word m_info; -+ Elf32_Word m_poffset; -+ Elf32_Half m_repeat; -+ Elf32_Half m_stride; -+} Elf32_Move; -+ -+typedef struct { -+ Elf64_Xword m_value; -+ Elf64_Xword m_info; -+ Elf64_Xword m_poffset; -+ Elf64_Half m_repeat; -+ Elf64_Half m_stride; -+} Elf64_Move; -+ -+ -+#define ELF32_M_SYM(info) ((info) >> 8) -+#define ELF32_M_SIZE(info) ((unsigned char) (info)) -+#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size)) -+ -+#define ELF64_M_SYM(info) ELF32_M_SYM (info) -+#define ELF64_M_SIZE(info) ELF32_M_SIZE (info) -+#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size) -+ -+#define EF_CPU32 0x00810000 -+ -+#define R_68K_NONE 0 -+#define R_68K_32 1 -+#define R_68K_16 2 -+#define R_68K_8 3 -+#define R_68K_PC32 4 -+#define R_68K_PC16 5 -+#define R_68K_PC8 6 -+#define R_68K_GOT32 7 -+#define R_68K_GOT16 8 -+#define R_68K_GOT8 9 -+#define R_68K_GOT32O 10 -+#define R_68K_GOT16O 11 -+#define R_68K_GOT8O 12 -+#define R_68K_PLT32 13 -+#define R_68K_PLT16 14 -+#define R_68K_PLT8 15 -+#define R_68K_PLT32O 16 -+#define R_68K_PLT16O 17 -+#define R_68K_PLT8O 18 -+#define R_68K_COPY 19 -+#define R_68K_GLOB_DAT 20 -+#define R_68K_JMP_SLOT 21 -+#define R_68K_RELATIVE 22 -+#define R_68K_NUM 23 -+ -+#define R_386_NONE 0 -+#define R_386_32 1 -+#define R_386_PC32 2 -+#define R_386_GOT32 3 -+#define R_386_PLT32 4 -+#define R_386_COPY 5 -+#define R_386_GLOB_DAT 6 -+#define R_386_JMP_SLOT 7 -+#define R_386_RELATIVE 8 -+#define R_386_GOTOFF 9 -+#define R_386_GOTPC 10 -+#define R_386_32PLT 11 -+#define R_386_TLS_TPOFF 14 -+#define R_386_TLS_IE 15 -+#define R_386_TLS_GOTIE 16 -+#define R_386_TLS_LE 17 -+#define R_386_TLS_GD 18 -+#define R_386_TLS_LDM 19 -+#define R_386_16 20 -+#define R_386_PC16 21 -+#define R_386_8 22 -+#define R_386_PC8 23 -+#define R_386_TLS_GD_32 24 -+#define R_386_TLS_GD_PUSH 25 -+#define R_386_TLS_GD_CALL 26 -+#define R_386_TLS_GD_POP 27 -+#define R_386_TLS_LDM_32 28 -+#define R_386_TLS_LDM_PUSH 29 -+#define R_386_TLS_LDM_CALL 30 -+#define R_386_TLS_LDM_POP 31 -+#define R_386_TLS_LDO_32 32 -+#define R_386_TLS_IE_32 33 -+#define R_386_TLS_LE_32 34 -+#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 -+#define R_386_IRELATIVE 42 -+#define R_386_NUM 43 -+ -+ -+ -+ -+ -+#define STT_SPARC_REGISTER 13 -+ -+ -+ -+#define EF_SPARCV9_MM 3 -+#define EF_SPARCV9_TSO 0 -+#define EF_SPARCV9_PSO 1 -+#define EF_SPARCV9_RMO 2 -+#define EF_SPARC_LEDATA 0x800000 -+#define EF_SPARC_EXT_MASK 0xFFFF00 -+#define EF_SPARC_32PLUS 0x000100 -+#define EF_SPARC_SUN_US1 0x000200 -+#define EF_SPARC_HAL_R1 0x000400 -+#define EF_SPARC_SUN_US3 0x000800 -+ -+ -+ -+#define R_SPARC_NONE 0 -+#define R_SPARC_8 1 -+#define R_SPARC_16 2 -+#define R_SPARC_32 3 -+#define R_SPARC_DISP8 4 -+#define R_SPARC_DISP16 5 -+#define R_SPARC_DISP32 6 -+#define R_SPARC_WDISP30 7 -+#define R_SPARC_WDISP22 8 -+#define R_SPARC_HI22 9 -+#define R_SPARC_22 10 -+#define R_SPARC_13 11 -+#define R_SPARC_LO10 12 -+#define R_SPARC_GOT10 13 -+#define R_SPARC_GOT13 14 -+#define R_SPARC_GOT22 15 -+#define R_SPARC_PC10 16 -+#define R_SPARC_PC22 17 -+#define R_SPARC_WPLT30 18 -+#define R_SPARC_COPY 19 -+#define R_SPARC_GLOB_DAT 20 -+#define R_SPARC_JMP_SLOT 21 -+#define R_SPARC_RELATIVE 22 -+#define R_SPARC_UA32 23 -+ -+ -+ -+#define R_SPARC_PLT32 24 -+#define R_SPARC_HIPLT22 25 -+#define R_SPARC_LOPLT10 26 -+#define R_SPARC_PCPLT32 27 -+#define R_SPARC_PCPLT22 28 -+#define R_SPARC_PCPLT10 29 -+#define R_SPARC_10 30 -+#define R_SPARC_11 31 -+#define R_SPARC_64 32 -+#define R_SPARC_OLO10 33 -+#define R_SPARC_HH22 34 -+#define R_SPARC_HM10 35 -+#define R_SPARC_LM22 36 -+#define R_SPARC_PC_HH22 37 -+#define R_SPARC_PC_HM10 38 -+#define R_SPARC_PC_LM22 39 -+#define R_SPARC_WDISP16 40 -+#define R_SPARC_WDISP19 41 -+#define R_SPARC_GLOB_JMP 42 -+#define R_SPARC_7 43 -+#define R_SPARC_5 44 -+#define R_SPARC_6 45 -+#define R_SPARC_DISP64 46 -+#define R_SPARC_PLT64 47 -+#define R_SPARC_HIX22 48 -+#define R_SPARC_LOX10 49 -+#define R_SPARC_H44 50 -+#define R_SPARC_M44 51 -+#define R_SPARC_L44 52 -+#define R_SPARC_REGISTER 53 -+#define R_SPARC_UA64 54 -+#define R_SPARC_UA16 55 -+#define R_SPARC_TLS_GD_HI22 56 -+#define R_SPARC_TLS_GD_LO10 57 -+#define R_SPARC_TLS_GD_ADD 58 -+#define R_SPARC_TLS_GD_CALL 59 -+#define R_SPARC_TLS_LDM_HI22 60 -+#define R_SPARC_TLS_LDM_LO10 61 -+#define R_SPARC_TLS_LDM_ADD 62 -+#define R_SPARC_TLS_LDM_CALL 63 -+#define R_SPARC_TLS_LDO_HIX22 64 -+#define R_SPARC_TLS_LDO_LOX10 65 -+#define R_SPARC_TLS_LDO_ADD 66 -+#define R_SPARC_TLS_IE_HI22 67 -+#define R_SPARC_TLS_IE_LO10 68 -+#define R_SPARC_TLS_IE_LD 69 -+#define R_SPARC_TLS_IE_LDX 70 -+#define R_SPARC_TLS_IE_ADD 71 -+#define R_SPARC_TLS_LE_HIX22 72 -+#define R_SPARC_TLS_LE_LOX10 73 -+#define R_SPARC_TLS_DTPMOD32 74 -+#define R_SPARC_TLS_DTPMOD64 75 -+#define R_SPARC_TLS_DTPOFF32 76 -+#define R_SPARC_TLS_DTPOFF64 77 -+#define R_SPARC_TLS_TPOFF32 78 -+#define R_SPARC_TLS_TPOFF64 79 -+#define R_SPARC_GOTDATA_HIX22 80 -+#define R_SPARC_GOTDATA_LOX10 81 -+#define R_SPARC_GOTDATA_OP_HIX22 82 -+#define R_SPARC_GOTDATA_OP_LOX10 83 -+#define R_SPARC_GOTDATA_OP 84 -+#define R_SPARC_H34 85 -+#define R_SPARC_SIZE32 86 -+#define R_SPARC_SIZE64 87 -+#define R_SPARC_GNU_VTINHERIT 250 -+#define R_SPARC_GNU_VTENTRY 251 -+#define R_SPARC_REV32 252 -+ -+#define R_SPARC_NUM 253 -+ -+ -+ -+#define DT_SPARC_REGISTER 0x70000001 -+#define DT_SPARC_NUM 2 -+ -+ -+#define EF_MIPS_NOREORDER 1 -+#define EF_MIPS_PIC 2 -+#define EF_MIPS_CPIC 4 -+#define EF_MIPS_XGOT 8 -+#define EF_MIPS_64BIT_WHIRL 16 -+#define EF_MIPS_ABI2 32 -+#define EF_MIPS_ABI_ON32 64 -+#define EF_MIPS_ARCH 0xf0000000 -+ -+ -+ -+#define EF_MIPS_ARCH_1 0x00000000 -+#define EF_MIPS_ARCH_2 0x10000000 -+#define EF_MIPS_ARCH_3 0x20000000 -+#define EF_MIPS_ARCH_4 0x30000000 -+#define EF_MIPS_ARCH_5 0x40000000 -+#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 -+#define E_MIPS_ARCH_2 0x10000000 -+#define E_MIPS_ARCH_3 0x20000000 -+#define E_MIPS_ARCH_4 0x30000000 -+#define E_MIPS_ARCH_5 0x40000000 -+#define E_MIPS_ARCH_32 0x50000000 -+#define E_MIPS_ARCH_64 0x60000000 -+ -+ -+ -+#define SHN_MIPS_ACOMMON 0xff00 -+#define SHN_MIPS_TEXT 0xff01 -+#define SHN_MIPS_DATA 0xff02 -+#define SHN_MIPS_SCOMMON 0xff03 -+#define SHN_MIPS_SUNDEFINED 0xff04 -+ -+ -+ -+#define SHT_MIPS_LIBLIST 0x70000000 -+#define SHT_MIPS_MSYM 0x70000001 -+#define SHT_MIPS_CONFLICT 0x70000002 -+#define SHT_MIPS_GPTAB 0x70000003 -+#define SHT_MIPS_UCODE 0x70000004 -+#define SHT_MIPS_DEBUG 0x70000005 -+#define SHT_MIPS_REGINFO 0x70000006 -+#define SHT_MIPS_PACKAGE 0x70000007 -+#define SHT_MIPS_PACKSYM 0x70000008 -+#define SHT_MIPS_RELD 0x70000009 -+#define SHT_MIPS_IFACE 0x7000000b -+#define SHT_MIPS_CONTENT 0x7000000c -+#define SHT_MIPS_OPTIONS 0x7000000d -+#define SHT_MIPS_SHDR 0x70000010 -+#define SHT_MIPS_FDESC 0x70000011 -+#define SHT_MIPS_EXTSYM 0x70000012 -+#define SHT_MIPS_DENSE 0x70000013 -+#define SHT_MIPS_PDESC 0x70000014 -+#define SHT_MIPS_LOCSYM 0x70000015 -+#define SHT_MIPS_AUXSYM 0x70000016 -+#define SHT_MIPS_OPTSYM 0x70000017 -+#define SHT_MIPS_LOCSTR 0x70000018 -+#define SHT_MIPS_LINE 0x70000019 -+#define SHT_MIPS_RFDESC 0x7000001a -+#define SHT_MIPS_DELTASYM 0x7000001b -+#define SHT_MIPS_DELTAINST 0x7000001c -+#define SHT_MIPS_DELTACLASS 0x7000001d -+#define SHT_MIPS_DWARF 0x7000001e -+#define SHT_MIPS_DELTADECL 0x7000001f -+#define SHT_MIPS_SYMBOL_LIB 0x70000020 -+#define SHT_MIPS_EVENTS 0x70000021 -+#define SHT_MIPS_TRANSLATE 0x70000022 -+#define SHT_MIPS_PIXIE 0x70000023 -+#define SHT_MIPS_XLATE 0x70000024 -+#define SHT_MIPS_XLATE_DEBUG 0x70000025 -+#define SHT_MIPS_WHIRL 0x70000026 -+#define SHT_MIPS_EH_REGION 0x70000027 -+#define SHT_MIPS_XLATE_OLD 0x70000028 -+#define SHT_MIPS_PDR_EXCEPTION 0x70000029 -+ -+ -+ -+#define SHF_MIPS_GPREL 0x10000000 -+#define SHF_MIPS_MERGE 0x20000000 -+#define SHF_MIPS_ADDR 0x40000000 -+#define SHF_MIPS_STRINGS 0x80000000 -+#define SHF_MIPS_NOSTRIP 0x08000000 -+#define SHF_MIPS_LOCAL 0x04000000 -+#define SHF_MIPS_NAMES 0x02000000 -+#define SHF_MIPS_NODUPE 0x01000000 -+ -+ -+ -+ -+ -+#define STO_MIPS_DEFAULT 0x0 -+#define STO_MIPS_INTERNAL 0x1 -+#define STO_MIPS_HIDDEN 0x2 -+#define STO_MIPS_PROTECTED 0x3 -+#define STO_MIPS_PLT 0x8 -+#define STO_MIPS_SC_ALIGN_UNUSED 0xff -+ -+ -+#define STB_MIPS_SPLIT_COMMON 13 -+ -+ -+ -+typedef union { -+ struct { -+ Elf32_Word gt_current_g_value; -+ Elf32_Word gt_unused; -+ } gt_header; -+ struct { -+ Elf32_Word gt_g_value; -+ Elf32_Word gt_bytes; -+ } gt_entry; -+} Elf32_gptab; -+ -+ -+ -+typedef struct { -+ Elf32_Word ri_gprmask; -+ Elf32_Word ri_cprmask[4]; -+ Elf32_Sword ri_gp_value; -+} Elf32_RegInfo; -+ -+ -+ -+typedef struct { -+ unsigned char kind; -+ -+ unsigned char size; -+ Elf32_Section section; -+ -+ Elf32_Word info; -+} Elf_Options; -+ -+ -+ -+#define ODK_NULL 0 -+#define ODK_REGINFO 1 -+#define ODK_EXCEPTIONS 2 -+#define ODK_PAD 3 -+#define ODK_HWPATCH 4 -+#define ODK_FILL 5 -+#define ODK_TAGS 6 -+#define ODK_HWAND 7 -+#define ODK_HWOR 8 -+ -+ -+ -+#define OEX_FPU_MIN 0x1f -+#define OEX_FPU_MAX 0x1f00 -+#define OEX_PAGE0 0x10000 -+#define OEX_SMM 0x20000 -+#define OEX_FPDBUG 0x40000 -+#define OEX_PRECISEFP OEX_FPDBUG -+#define OEX_DISMISS 0x80000 -+ -+#define OEX_FPU_INVAL 0x10 -+#define OEX_FPU_DIV0 0x08 -+#define OEX_FPU_OFLO 0x04 -+#define OEX_FPU_UFLO 0x02 -+#define OEX_FPU_INEX 0x01 -+ -+ -+ -+#define OHW_R4KEOP 0x1 -+#define OHW_R8KPFETCH 0x2 -+#define OHW_R5KEOP 0x4 -+#define OHW_R5KCVTL 0x8 -+ -+#define OPAD_PREFIX 0x1 -+#define OPAD_POSTFIX 0x2 -+#define OPAD_SYMBOL 0x4 -+ -+ -+ -+typedef struct { -+ Elf32_Word hwp_flags1; -+ Elf32_Word hwp_flags2; -+} Elf_Options_Hw; -+ -+ -+ -+#define OHWA0_R4KEOP_CHECKED 0x00000001 -+#define OHWA1_R4KEOP_CLEAN 0x00000002 -+ -+ -+ -+#define R_MIPS_NONE 0 -+#define R_MIPS_16 1 -+#define R_MIPS_32 2 -+#define R_MIPS_REL32 3 -+#define R_MIPS_26 4 -+#define R_MIPS_HI16 5 -+#define R_MIPS_LO16 6 -+#define R_MIPS_GPREL16 7 -+#define R_MIPS_LITERAL 8 -+#define R_MIPS_GOT16 9 -+#define R_MIPS_PC16 10 -+#define R_MIPS_CALL16 11 -+#define R_MIPS_GPREL32 12 -+ -+#define R_MIPS_SHIFT5 16 -+#define R_MIPS_SHIFT6 17 -+#define R_MIPS_64 18 -+#define R_MIPS_GOT_DISP 19 -+#define R_MIPS_GOT_PAGE 20 -+#define R_MIPS_GOT_OFST 21 -+#define R_MIPS_GOT_HI16 22 -+#define R_MIPS_GOT_LO16 23 -+#define R_MIPS_SUB 24 -+#define R_MIPS_INSERT_A 25 -+#define R_MIPS_INSERT_B 26 -+#define R_MIPS_DELETE 27 -+#define R_MIPS_HIGHER 28 -+#define R_MIPS_HIGHEST 29 -+#define R_MIPS_CALL_HI16 30 -+#define R_MIPS_CALL_LO16 31 -+#define R_MIPS_SCN_DISP 32 -+#define R_MIPS_REL16 33 -+#define R_MIPS_ADD_IMMEDIATE 34 -+#define R_MIPS_PJUMP 35 -+#define R_MIPS_RELGOT 36 -+#define R_MIPS_JALR 37 -+#define R_MIPS_TLS_DTPMOD32 38 -+#define R_MIPS_TLS_DTPREL32 39 -+#define R_MIPS_TLS_DTPMOD64 40 -+#define R_MIPS_TLS_DTPREL64 41 -+#define R_MIPS_TLS_GD 42 -+#define R_MIPS_TLS_LDM 43 -+#define R_MIPS_TLS_DTPREL_HI16 44 -+#define R_MIPS_TLS_DTPREL_LO16 45 -+#define R_MIPS_TLS_GOTTPREL 46 -+#define R_MIPS_TLS_TPREL32 47 -+#define R_MIPS_TLS_TPREL64 48 -+#define R_MIPS_TLS_TPREL_HI16 49 -+#define R_MIPS_TLS_TPREL_LO16 50 -+#define R_MIPS_GLOB_DAT 51 -+#define R_MIPS_COPY 126 -+#define R_MIPS_JUMP_SLOT 127 -+ -+#define R_MIPS_NUM 128 -+ -+ -+ -+#define PT_MIPS_REGINFO 0x70000000 -+#define PT_MIPS_RTPROC 0x70000001 -+#define PT_MIPS_OPTIONS 0x70000002 -+ -+ -+ -+#define PF_MIPS_LOCAL 0x10000000 -+ -+ -+ -+#define DT_MIPS_RLD_VERSION 0x70000001 -+#define DT_MIPS_TIME_STAMP 0x70000002 -+#define DT_MIPS_ICHECKSUM 0x70000003 -+#define DT_MIPS_IVERSION 0x70000004 -+#define DT_MIPS_FLAGS 0x70000005 -+#define DT_MIPS_BASE_ADDRESS 0x70000006 -+#define DT_MIPS_MSYM 0x70000007 -+#define DT_MIPS_CONFLICT 0x70000008 -+#define DT_MIPS_LIBLIST 0x70000009 -+#define DT_MIPS_LOCAL_GOTNO 0x7000000a -+#define DT_MIPS_CONFLICTNO 0x7000000b -+#define DT_MIPS_LIBLISTNO 0x70000010 -+#define DT_MIPS_SYMTABNO 0x70000011 -+#define DT_MIPS_UNREFEXTNO 0x70000012 -+#define DT_MIPS_GOTSYM 0x70000013 -+#define DT_MIPS_HIPAGENO 0x70000014 -+#define DT_MIPS_RLD_MAP 0x70000016 -+#define DT_MIPS_DELTA_CLASS 0x70000017 -+#define DT_MIPS_DELTA_CLASS_NO 0x70000018 -+ -+#define DT_MIPS_DELTA_INSTANCE 0x70000019 -+#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a -+ -+#define DT_MIPS_DELTA_RELOC 0x7000001b -+#define DT_MIPS_DELTA_RELOC_NO 0x7000001c -+ -+#define DT_MIPS_DELTA_SYM 0x7000001d -+ -+#define DT_MIPS_DELTA_SYM_NO 0x7000001e -+ -+#define DT_MIPS_DELTA_CLASSSYM 0x70000020 -+ -+#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 -+ -+#define DT_MIPS_CXX_FLAGS 0x70000022 -+#define DT_MIPS_PIXIE_INIT 0x70000023 -+#define DT_MIPS_SYMBOL_LIB 0x70000024 -+#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025 -+#define DT_MIPS_LOCAL_GOTIDX 0x70000026 -+#define DT_MIPS_HIDDEN_GOTIDX 0x70000027 -+#define DT_MIPS_PROTECTED_GOTIDX 0x70000028 -+#define DT_MIPS_OPTIONS 0x70000029 -+#define DT_MIPS_INTERFACE 0x7000002a -+#define DT_MIPS_DYNSTR_ALIGN 0x7000002b -+#define DT_MIPS_INTERFACE_SIZE 0x7000002c -+#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d -+ -+#define DT_MIPS_PERF_SUFFIX 0x7000002e -+ -+#define DT_MIPS_COMPACT_SIZE 0x7000002f -+#define DT_MIPS_GP_VALUE 0x70000030 -+#define DT_MIPS_AUX_DYNAMIC 0x70000031 -+ -+#define DT_MIPS_PLTGOT 0x70000032 -+ -+#define DT_MIPS_RWPLT 0x70000034 -+#define DT_MIPS_NUM 0x35 -+ -+ -+ -+#define RHF_NONE 0 -+#define RHF_QUICKSTART (1 << 0) -+#define RHF_NOTPOT (1 << 1) -+#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2) -+#define RHF_NO_MOVE (1 << 3) -+#define RHF_SGI_ONLY (1 << 4) -+#define RHF_GUARANTEE_INIT (1 << 5) -+#define RHF_DELTA_C_PLUS_PLUS (1 << 6) -+#define RHF_GUARANTEE_START_INIT (1 << 7) -+#define RHF_PIXIE (1 << 8) -+#define RHF_DEFAULT_DELAY_LOAD (1 << 9) -+#define RHF_REQUICKSTART (1 << 10) -+#define RHF_REQUICKSTARTED (1 << 11) -+#define RHF_CORD (1 << 12) -+#define RHF_NO_UNRES_UNDEF (1 << 13) -+#define RHF_RLD_ORDER_SAFE (1 << 14) -+ -+ -+ -+typedef struct -+{ -+ Elf32_Word l_name; -+ Elf32_Word l_time_stamp; -+ Elf32_Word l_checksum; -+ Elf32_Word l_version; -+ Elf32_Word l_flags; -+} Elf32_Lib; -+ -+typedef struct -+{ -+ Elf64_Word l_name; -+ Elf64_Word l_time_stamp; -+ Elf64_Word l_checksum; -+ Elf64_Word l_version; -+ Elf64_Word l_flags; -+} Elf64_Lib; -+ -+ -+ -+ -+#define LL_NONE 0 -+#define LL_EXACT_MATCH (1 << 0) -+#define LL_IGNORE_INT_VER (1 << 1) -+#define LL_REQUIRE_MINOR (1 << 2) -+#define LL_EXPORTS (1 << 3) -+#define LL_DELAY_LOAD (1 << 4) -+#define LL_DELTA (1 << 5) -+ -+ -+ -+typedef Elf32_Addr Elf32_Conflict; -+ -+ -+ -+ -+ -+ -+#define EF_PARISC_TRAPNIL 0x00010000 -+#define EF_PARISC_EXT 0x00020000 -+#define EF_PARISC_LSB 0x00040000 -+#define EF_PARISC_WIDE 0x00080000 -+#define EF_PARISC_NO_KABP 0x00100000 -+ -+#define EF_PARISC_LAZYSWAP 0x00400000 -+#define EF_PARISC_ARCH 0x0000ffff -+ -+ -+ -+#define EFA_PARISC_1_0 0x020b -+#define EFA_PARISC_1_1 0x0210 -+#define EFA_PARISC_2_0 0x0214 -+ -+ -+ -+#define SHN_PARISC_ANSI_COMMON 0xff00 -+ -+#define SHN_PARISC_HUGE_COMMON 0xff01 -+ -+ -+ -+#define SHT_PARISC_EXT 0x70000000 -+#define SHT_PARISC_UNWIND 0x70000001 -+#define SHT_PARISC_DOC 0x70000002 -+ -+ -+ -+#define SHF_PARISC_SHORT 0x20000000 -+#define SHF_PARISC_HUGE 0x40000000 -+#define SHF_PARISC_SBP 0x80000000 -+ -+ -+ -+#define STT_PARISC_MILLICODE 13 -+ -+#define STT_HP_OPAQUE (STT_LOOS + 0x1) -+#define STT_HP_STUB (STT_LOOS + 0x2) -+ -+ -+ -+#define R_PARISC_NONE 0 -+#define R_PARISC_DIR32 1 -+#define R_PARISC_DIR21L 2 -+#define R_PARISC_DIR17R 3 -+#define R_PARISC_DIR17F 4 -+#define R_PARISC_DIR14R 6 -+#define R_PARISC_PCREL32 9 -+#define R_PARISC_PCREL21L 10 -+#define R_PARISC_PCREL17R 11 -+#define R_PARISC_PCREL17F 12 -+#define R_PARISC_PCREL14R 14 -+#define R_PARISC_DPREL21L 18 -+#define R_PARISC_DPREL14R 22 -+#define R_PARISC_GPREL21L 26 -+#define R_PARISC_GPREL14R 30 -+#define R_PARISC_LTOFF21L 34 -+#define R_PARISC_LTOFF14R 38 -+#define R_PARISC_SECREL32 41 -+#define R_PARISC_SEGBASE 48 -+#define R_PARISC_SEGREL32 49 -+#define R_PARISC_PLTOFF21L 50 -+#define R_PARISC_PLTOFF14R 54 -+#define R_PARISC_LTOFF_FPTR32 57 -+#define R_PARISC_LTOFF_FPTR21L 58 -+#define R_PARISC_LTOFF_FPTR14R 62 -+#define R_PARISC_FPTR64 64 -+#define R_PARISC_PLABEL32 65 -+#define R_PARISC_PLABEL21L 66 -+#define R_PARISC_PLABEL14R 70 -+#define R_PARISC_PCREL64 72 -+#define R_PARISC_PCREL22F 74 -+#define R_PARISC_PCREL14WR 75 -+#define R_PARISC_PCREL14DR 76 -+#define R_PARISC_PCREL16F 77 -+#define R_PARISC_PCREL16WF 78 -+#define R_PARISC_PCREL16DF 79 -+#define R_PARISC_DIR64 80 -+#define R_PARISC_DIR14WR 83 -+#define R_PARISC_DIR14DR 84 -+#define R_PARISC_DIR16F 85 -+#define R_PARISC_DIR16WF 86 -+#define R_PARISC_DIR16DF 87 -+#define R_PARISC_GPREL64 88 -+#define R_PARISC_GPREL14WR 91 -+#define R_PARISC_GPREL14DR 92 -+#define R_PARISC_GPREL16F 93 -+#define R_PARISC_GPREL16WF 94 -+#define R_PARISC_GPREL16DF 95 -+#define R_PARISC_LTOFF64 96 -+#define R_PARISC_LTOFF14WR 99 -+#define R_PARISC_LTOFF14DR 100 -+#define R_PARISC_LTOFF16F 101 -+#define R_PARISC_LTOFF16WF 102 -+#define R_PARISC_LTOFF16DF 103 -+#define R_PARISC_SECREL64 104 -+#define R_PARISC_SEGREL64 112 -+#define R_PARISC_PLTOFF14WR 115 -+#define R_PARISC_PLTOFF14DR 116 -+#define R_PARISC_PLTOFF16F 117 -+#define R_PARISC_PLTOFF16WF 118 -+#define R_PARISC_PLTOFF16DF 119 -+#define R_PARISC_LTOFF_FPTR64 120 -+#define R_PARISC_LTOFF_FPTR14WR 123 -+#define R_PARISC_LTOFF_FPTR14DR 124 -+#define R_PARISC_LTOFF_FPTR16F 125 -+#define R_PARISC_LTOFF_FPTR16WF 126 -+#define R_PARISC_LTOFF_FPTR16DF 127 -+#define R_PARISC_LORESERVE 128 -+#define R_PARISC_COPY 128 -+#define R_PARISC_IPLT 129 -+#define R_PARISC_EPLT 130 -+#define R_PARISC_TPREL32 153 -+#define R_PARISC_TPREL21L 154 -+#define R_PARISC_TPREL14R 158 -+#define R_PARISC_LTOFF_TP21L 162 -+#define R_PARISC_LTOFF_TP14R 166 -+#define R_PARISC_LTOFF_TP14F 167 -+#define R_PARISC_TPREL64 216 -+#define R_PARISC_TPREL14WR 219 -+#define R_PARISC_TPREL14DR 220 -+#define R_PARISC_TPREL16F 221 -+#define R_PARISC_TPREL16WF 222 -+#define R_PARISC_TPREL16DF 223 -+#define R_PARISC_LTOFF_TP64 224 -+#define R_PARISC_LTOFF_TP14WR 227 -+#define R_PARISC_LTOFF_TP14DR 228 -+#define R_PARISC_LTOFF_TP16F 229 -+#define R_PARISC_LTOFF_TP16WF 230 -+#define R_PARISC_LTOFF_TP16DF 231 -+#define R_PARISC_GNU_VTENTRY 232 -+#define R_PARISC_GNU_VTINHERIT 233 -+#define R_PARISC_TLS_GD21L 234 -+#define R_PARISC_TLS_GD14R 235 -+#define R_PARISC_TLS_GDCALL 236 -+#define R_PARISC_TLS_LDM21L 237 -+#define R_PARISC_TLS_LDM14R 238 -+#define R_PARISC_TLS_LDMCALL 239 -+#define R_PARISC_TLS_LDO21L 240 -+#define R_PARISC_TLS_LDO14R 241 -+#define R_PARISC_TLS_DTPMOD32 242 -+#define R_PARISC_TLS_DTPMOD64 243 -+#define R_PARISC_TLS_DTPOFF32 244 -+#define R_PARISC_TLS_DTPOFF64 245 -+#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L -+#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R -+#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L -+#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R -+#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32 -+#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64 -+#define R_PARISC_HIRESERVE 255 -+ -+ -+ -+#define PT_HP_TLS (PT_LOOS + 0x0) -+#define PT_HP_CORE_NONE (PT_LOOS + 0x1) -+#define PT_HP_CORE_VERSION (PT_LOOS + 0x2) -+#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3) -+#define PT_HP_CORE_COMM (PT_LOOS + 0x4) -+#define PT_HP_CORE_PROC (PT_LOOS + 0x5) -+#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6) -+#define PT_HP_CORE_STACK (PT_LOOS + 0x7) -+#define PT_HP_CORE_SHM (PT_LOOS + 0x8) -+#define PT_HP_CORE_MMF (PT_LOOS + 0x9) -+#define PT_HP_PARALLEL (PT_LOOS + 0x10) -+#define PT_HP_FASTBIND (PT_LOOS + 0x11) -+#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12) -+#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13) -+#define PT_HP_STACK (PT_LOOS + 0x14) -+ -+#define PT_PARISC_ARCHEXT 0x70000000 -+#define PT_PARISC_UNWIND 0x70000001 -+ -+ -+ -+#define PF_PARISC_SBP 0x08000000 -+ -+#define PF_HP_PAGE_SIZE 0x00100000 -+#define PF_HP_FAR_SHARED 0x00200000 -+#define PF_HP_NEAR_SHARED 0x00400000 -+#define PF_HP_CODE 0x01000000 -+#define PF_HP_MODIFY 0x02000000 -+#define PF_HP_LAZYSWAP 0x04000000 -+#define PF_HP_SBP 0x08000000 -+ -+ -+ -+ -+ -+ -+#define EF_ALPHA_32BIT 1 -+#define EF_ALPHA_CANRELAX 2 -+ -+ -+ -+ -+#define SHT_ALPHA_DEBUG 0x70000001 -+#define SHT_ALPHA_REGINFO 0x70000002 -+ -+ -+ -+#define SHF_ALPHA_GPREL 0x10000000 -+ -+ -+#define STO_ALPHA_NOPV 0x80 -+#define STO_ALPHA_STD_GPLOAD 0x88 -+ -+ -+ -+#define R_ALPHA_NONE 0 -+#define R_ALPHA_REFLONG 1 -+#define R_ALPHA_REFQUAD 2 -+#define R_ALPHA_GPREL32 3 -+#define R_ALPHA_LITERAL 4 -+#define R_ALPHA_LITUSE 5 -+#define R_ALPHA_GPDISP 6 -+#define R_ALPHA_BRADDR 7 -+#define R_ALPHA_HINT 8 -+#define R_ALPHA_SREL16 9 -+#define R_ALPHA_SREL32 10 -+#define R_ALPHA_SREL64 11 -+#define R_ALPHA_GPRELHIGH 17 -+#define R_ALPHA_GPRELLOW 18 -+#define R_ALPHA_GPREL16 19 -+#define R_ALPHA_COPY 24 -+#define R_ALPHA_GLOB_DAT 25 -+#define R_ALPHA_JMP_SLOT 26 -+#define R_ALPHA_RELATIVE 27 -+#define R_ALPHA_TLS_GD_HI 28 -+#define R_ALPHA_TLSGD 29 -+#define R_ALPHA_TLS_LDM 30 -+#define R_ALPHA_DTPMOD64 31 -+#define R_ALPHA_GOTDTPREL 32 -+#define R_ALPHA_DTPREL64 33 -+#define R_ALPHA_DTPRELHI 34 -+#define R_ALPHA_DTPRELLO 35 -+#define R_ALPHA_DTPREL16 36 -+#define R_ALPHA_GOTTPREL 37 -+#define R_ALPHA_TPREL64 38 -+#define R_ALPHA_TPRELHI 39 -+#define R_ALPHA_TPRELLO 40 -+#define R_ALPHA_TPREL16 41 -+ -+#define R_ALPHA_NUM 46 -+ -+ -+#define LITUSE_ALPHA_ADDR 0 -+#define LITUSE_ALPHA_BASE 1 -+#define LITUSE_ALPHA_BYTOFF 2 -+#define LITUSE_ALPHA_JSR 3 -+#define LITUSE_ALPHA_TLS_GD 4 -+#define LITUSE_ALPHA_TLS_LDM 5 -+ -+ -+#define DT_ALPHA_PLTRO (DT_LOPROC + 0) -+#define DT_ALPHA_NUM 1 -+ -+ -+ -+ -+#define EF_PPC_EMB 0x80000000 -+ -+ -+#define EF_PPC_RELOCATABLE 0x00010000 -+#define EF_PPC_RELOCATABLE_LIB 0x00008000 -+ -+ -+ -+#define R_PPC_NONE 0 -+#define R_PPC_ADDR32 1 -+#define R_PPC_ADDR24 2 -+#define R_PPC_ADDR16 3 -+#define R_PPC_ADDR16_LO 4 -+#define R_PPC_ADDR16_HI 5 -+#define R_PPC_ADDR16_HA 6 -+#define R_PPC_ADDR14 7 -+#define R_PPC_ADDR14_BRTAKEN 8 -+#define R_PPC_ADDR14_BRNTAKEN 9 -+#define R_PPC_REL24 10 -+#define R_PPC_REL14 11 -+#define R_PPC_REL14_BRTAKEN 12 -+#define R_PPC_REL14_BRNTAKEN 13 -+#define R_PPC_GOT16 14 -+#define R_PPC_GOT16_LO 15 -+#define R_PPC_GOT16_HI 16 -+#define R_PPC_GOT16_HA 17 -+#define R_PPC_PLTREL24 18 -+#define R_PPC_COPY 19 -+#define R_PPC_GLOB_DAT 20 -+#define R_PPC_JMP_SLOT 21 -+#define R_PPC_RELATIVE 22 -+#define R_PPC_LOCAL24PC 23 -+#define R_PPC_UADDR32 24 -+#define R_PPC_UADDR16 25 -+#define R_PPC_REL32 26 -+#define R_PPC_PLT32 27 -+#define R_PPC_PLTREL32 28 -+#define R_PPC_PLT16_LO 29 -+#define R_PPC_PLT16_HI 30 -+#define R_PPC_PLT16_HA 31 -+#define R_PPC_SDAREL16 32 -+#define R_PPC_SECTOFF 33 -+#define R_PPC_SECTOFF_LO 34 -+#define R_PPC_SECTOFF_HI 35 -+#define R_PPC_SECTOFF_HA 36 -+ -+ -+#define R_PPC_TLS 67 -+#define R_PPC_DTPMOD32 68 -+#define R_PPC_TPREL16 69 -+#define R_PPC_TPREL16_LO 70 -+#define R_PPC_TPREL16_HI 71 -+#define R_PPC_TPREL16_HA 72 -+#define R_PPC_TPREL32 73 -+#define R_PPC_DTPREL16 74 -+#define R_PPC_DTPREL16_LO 75 -+#define R_PPC_DTPREL16_HI 76 -+#define R_PPC_DTPREL16_HA 77 -+#define R_PPC_DTPREL32 78 -+#define R_PPC_GOT_TLSGD16 79 -+#define R_PPC_GOT_TLSGD16_LO 80 -+#define R_PPC_GOT_TLSGD16_HI 81 -+#define R_PPC_GOT_TLSGD16_HA 82 -+#define R_PPC_GOT_TLSLD16 83 -+#define R_PPC_GOT_TLSLD16_LO 84 -+#define R_PPC_GOT_TLSLD16_HI 85 -+#define R_PPC_GOT_TLSLD16_HA 86 -+#define R_PPC_GOT_TPREL16 87 -+#define R_PPC_GOT_TPREL16_LO 88 -+#define R_PPC_GOT_TPREL16_HI 89 -+#define R_PPC_GOT_TPREL16_HA 90 -+#define R_PPC_GOT_DTPREL16 91 -+#define R_PPC_GOT_DTPREL16_LO 92 -+#define R_PPC_GOT_DTPREL16_HI 93 -+#define R_PPC_GOT_DTPREL16_HA 94 -+ -+ -+ -+#define R_PPC_EMB_NADDR32 101 -+#define R_PPC_EMB_NADDR16 102 -+#define R_PPC_EMB_NADDR16_LO 103 -+#define R_PPC_EMB_NADDR16_HI 104 -+#define R_PPC_EMB_NADDR16_HA 105 -+#define R_PPC_EMB_SDAI16 106 -+#define R_PPC_EMB_SDA2I16 107 -+#define R_PPC_EMB_SDA2REL 108 -+#define R_PPC_EMB_SDA21 109 -+#define R_PPC_EMB_MRKREF 110 -+#define R_PPC_EMB_RELSEC16 111 -+#define R_PPC_EMB_RELST_LO 112 -+#define R_PPC_EMB_RELST_HI 113 -+#define R_PPC_EMB_RELST_HA 114 -+#define R_PPC_EMB_BIT_FLD 115 -+#define R_PPC_EMB_RELSDA 116 -+ -+ -+#define R_PPC_DIAB_SDA21_LO 180 -+#define R_PPC_DIAB_SDA21_HI 181 -+#define R_PPC_DIAB_SDA21_HA 182 -+#define R_PPC_DIAB_RELSDA_LO 183 -+#define R_PPC_DIAB_RELSDA_HI 184 -+#define R_PPC_DIAB_RELSDA_HA 185 -+ -+ -+#define R_PPC_IRELATIVE 248 -+ -+ -+#define R_PPC_REL16 249 -+#define R_PPC_REL16_LO 250 -+#define R_PPC_REL16_HI 251 -+#define R_PPC_REL16_HA 252 -+ -+ -+ -+#define R_PPC_TOC16 255 -+ -+ -+#define DT_PPC_GOT (DT_LOPROC + 0) -+#define DT_PPC_NUM 1 -+ -+ -+#define R_PPC64_NONE R_PPC_NONE -+#define R_PPC64_ADDR32 R_PPC_ADDR32 -+#define R_PPC64_ADDR24 R_PPC_ADDR24 -+#define R_PPC64_ADDR16 R_PPC_ADDR16 -+#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO -+#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI -+#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA -+#define R_PPC64_ADDR14 R_PPC_ADDR14 -+#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN -+#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN -+#define R_PPC64_REL24 R_PPC_REL24 -+#define R_PPC64_REL14 R_PPC_REL14 -+#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN -+#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN -+#define R_PPC64_GOT16 R_PPC_GOT16 -+#define R_PPC64_GOT16_LO R_PPC_GOT16_LO -+#define R_PPC64_GOT16_HI R_PPC_GOT16_HI -+#define R_PPC64_GOT16_HA R_PPC_GOT16_HA -+ -+#define R_PPC64_COPY R_PPC_COPY -+#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT -+#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT -+#define R_PPC64_RELATIVE R_PPC_RELATIVE -+ -+#define R_PPC64_UADDR32 R_PPC_UADDR32 -+#define R_PPC64_UADDR16 R_PPC_UADDR16 -+#define R_PPC64_REL32 R_PPC_REL32 -+#define R_PPC64_PLT32 R_PPC_PLT32 -+#define R_PPC64_PLTREL32 R_PPC_PLTREL32 -+#define R_PPC64_PLT16_LO R_PPC_PLT16_LO -+#define R_PPC64_PLT16_HI R_PPC_PLT16_HI -+#define R_PPC64_PLT16_HA R_PPC_PLT16_HA -+ -+#define R_PPC64_SECTOFF R_PPC_SECTOFF -+#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO -+#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI -+#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA -+#define R_PPC64_ADDR30 37 -+#define R_PPC64_ADDR64 38 -+#define R_PPC64_ADDR16_HIGHER 39 -+#define R_PPC64_ADDR16_HIGHERA 40 -+#define R_PPC64_ADDR16_HIGHEST 41 -+#define R_PPC64_ADDR16_HIGHESTA 42 -+#define R_PPC64_UADDR64 43 -+#define R_PPC64_REL64 44 -+#define R_PPC64_PLT64 45 -+#define R_PPC64_PLTREL64 46 -+#define R_PPC64_TOC16 47 -+#define R_PPC64_TOC16_LO 48 -+#define R_PPC64_TOC16_HI 49 -+#define R_PPC64_TOC16_HA 50 -+#define R_PPC64_TOC 51 -+#define R_PPC64_PLTGOT16 52 -+#define R_PPC64_PLTGOT16_LO 53 -+#define R_PPC64_PLTGOT16_HI 54 -+#define R_PPC64_PLTGOT16_HA 55 -+ -+#define R_PPC64_ADDR16_DS 56 -+#define R_PPC64_ADDR16_LO_DS 57 -+#define R_PPC64_GOT16_DS 58 -+#define R_PPC64_GOT16_LO_DS 59 -+#define R_PPC64_PLT16_LO_DS 60 -+#define R_PPC64_SECTOFF_DS 61 -+#define R_PPC64_SECTOFF_LO_DS 62 -+#define R_PPC64_TOC16_DS 63 -+#define R_PPC64_TOC16_LO_DS 64 -+#define R_PPC64_PLTGOT16_DS 65 -+#define R_PPC64_PLTGOT16_LO_DS 66 -+ -+ -+#define R_PPC64_TLS 67 -+#define R_PPC64_DTPMOD64 68 -+#define R_PPC64_TPREL16 69 -+#define R_PPC64_TPREL16_LO 70 -+#define R_PPC64_TPREL16_HI 71 -+#define R_PPC64_TPREL16_HA 72 -+#define R_PPC64_TPREL64 73 -+#define R_PPC64_DTPREL16 74 -+#define R_PPC64_DTPREL16_LO 75 -+#define R_PPC64_DTPREL16_HI 76 -+#define R_PPC64_DTPREL16_HA 77 -+#define R_PPC64_DTPREL64 78 -+#define R_PPC64_GOT_TLSGD16 79 -+#define R_PPC64_GOT_TLSGD16_LO 80 -+#define R_PPC64_GOT_TLSGD16_HI 81 -+#define R_PPC64_GOT_TLSGD16_HA 82 -+#define R_PPC64_GOT_TLSLD16 83 -+#define R_PPC64_GOT_TLSLD16_LO 84 -+#define R_PPC64_GOT_TLSLD16_HI 85 -+#define R_PPC64_GOT_TLSLD16_HA 86 -+#define R_PPC64_GOT_TPREL16_DS 87 -+#define R_PPC64_GOT_TPREL16_LO_DS 88 -+#define R_PPC64_GOT_TPREL16_HI 89 -+#define R_PPC64_GOT_TPREL16_HA 90 -+#define R_PPC64_GOT_DTPREL16_DS 91 -+#define R_PPC64_GOT_DTPREL16_LO_DS 92 -+#define R_PPC64_GOT_DTPREL16_HI 93 -+#define R_PPC64_GOT_DTPREL16_HA 94 -+#define R_PPC64_TPREL16_DS 95 -+#define R_PPC64_TPREL16_LO_DS 96 -+#define R_PPC64_TPREL16_HIGHER 97 -+#define R_PPC64_TPREL16_HIGHERA 98 -+#define R_PPC64_TPREL16_HIGHEST 99 -+#define R_PPC64_TPREL16_HIGHESTA 100 -+#define R_PPC64_DTPREL16_DS 101 -+#define R_PPC64_DTPREL16_LO_DS 102 -+#define R_PPC64_DTPREL16_HIGHER 103 -+#define R_PPC64_DTPREL16_HIGHERA 104 -+#define R_PPC64_DTPREL16_HIGHEST 105 -+#define R_PPC64_DTPREL16_HIGHESTA 106 -+ -+ -+#define R_PPC64_JMP_IREL 247 -+#define R_PPC64_IRELATIVE 248 -+#define R_PPC64_REL16 249 -+#define R_PPC64_REL16_LO 250 -+#define R_PPC64_REL16_HI 251 -+#define R_PPC64_REL16_HA 252 -+ -+ -+#define DT_PPC64_GLINK (DT_LOPROC + 0) -+#define DT_PPC64_OPD (DT_LOPROC + 1) -+#define DT_PPC64_OPDSZ (DT_LOPROC + 2) -+#define DT_PPC64_NUM 3 -+ -+ -+ -+ -+ -+#define EF_ARM_RELEXEC 0x01 -+#define EF_ARM_HASENTRY 0x02 -+#define EF_ARM_INTERWORK 0x04 -+#define EF_ARM_APCS_26 0x08 -+#define EF_ARM_APCS_FLOAT 0x10 -+#define EF_ARM_PIC 0x20 -+#define EF_ARM_ALIGN8 0x40 -+#define EF_ARM_NEW_ABI 0x80 -+#define EF_ARM_OLD_ABI 0x100 -+#define EF_ARM_SOFT_FLOAT 0x200 -+#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 -+#define EF_ARM_DYNSYMSUSESEGIDX 0x08 -+#define EF_ARM_MAPSYMSFIRST 0x10 -+#define EF_ARM_EABIMASK 0XFF000000 -+ -+ -+#define EF_ARM_BE8 0x00800000 -+#define EF_ARM_LE8 0x00400000 -+ -+#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK) -+#define EF_ARM_EABI_UNKNOWN 0x00000000 -+#define EF_ARM_EABI_VER1 0x01000000 -+#define EF_ARM_EABI_VER2 0x02000000 -+#define EF_ARM_EABI_VER3 0x03000000 -+#define EF_ARM_EABI_VER4 0x04000000 -+#define EF_ARM_EABI_VER5 0x05000000 -+ -+ -+#define STT_ARM_TFUNC STT_LOPROC -+#define STT_ARM_16BIT STT_HIPROC -+ -+ -+#define SHF_ARM_ENTRYSECT 0x10000000 -+#define SHF_ARM_COMDEF 0x80000000 -+ -+ -+ -+#define PF_ARM_SB 0x10000000 -+ -+#define PF_ARM_PI 0x20000000 -+#define PF_ARM_ABS 0x40000000 -+ -+ -+#define PT_ARM_EXIDX (PT_LOPROC + 1) -+ -+ -+#define SHT_ARM_EXIDX (SHT_LOPROC + 1) -+#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) -+#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 -+#define R_ARM_PC24 1 -+#define R_ARM_ABS32 2 -+#define R_ARM_REL32 3 -+#define R_ARM_PC13 4 -+#define R_ARM_ABS16 5 -+#define R_ARM_ABS12 6 -+#define R_ARM_THM_ABS5 7 -+#define R_ARM_ABS8 8 -+#define R_ARM_SBREL32 9 -+#define R_ARM_THM_PC22 10 -+#define R_ARM_THM_PC8 11 -+#define R_ARM_AMP_VCALL9 12 -+#define R_ARM_TLS_DESC 13 -+#define R_ARM_THM_SWI8 14 -+#define R_ARM_XPC25 15 -+#define R_ARM_THM_XPC22 16 -+#define R_ARM_TLS_DTPMOD32 17 -+#define R_ARM_TLS_DTPOFF32 18 -+#define R_ARM_TLS_TPOFF32 19 -+#define R_ARM_COPY 20 -+#define R_ARM_GLOB_DAT 21 -+#define R_ARM_JUMP_SLOT 22 -+#define R_ARM_RELATIVE 23 -+#define R_ARM_GOTOFF 24 -+#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 -+#define R_ARM_THM_PC9 103 -+#define R_ARM_TLS_GD32 104 -+ -+#define R_ARM_TLS_LDM32 105 -+ -+#define R_ARM_TLS_LDO32 106 -+ -+#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 -+#define R_ARM_RREL32 252 -+#define R_ARM_RABS22 253 -+#define R_ARM_RPC24 254 -+#define R_ARM_RBASE 255 -+ -+#define R_ARM_NUM 256 -+ -+ -+ -+ -+#define EF_IA_64_MASKOS 0x0000000f -+#define EF_IA_64_ABI64 0x00000010 -+#define EF_IA_64_ARCH 0xff000000 -+ -+ -+#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) -+#define PT_IA_64_UNWIND (PT_LOPROC + 1) -+#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12) -+#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13) -+#define PT_IA_64_HP_STACK (PT_LOOS + 0x14) -+ -+ -+#define PF_IA_64_NORECOV 0x80000000 -+ -+ -+#define SHT_IA_64_EXT (SHT_LOPROC + 0) -+#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) -+ -+ -+#define SHF_IA_64_SHORT 0x10000000 -+#define SHF_IA_64_NORECOV 0x20000000 -+ -+ -+#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0) -+#define DT_IA_64_NUM 1 -+ -+ -+#define R_IA64_NONE 0x00 -+#define R_IA64_IMM14 0x21 -+#define R_IA64_IMM22 0x22 -+#define R_IA64_IMM64 0x23 -+#define R_IA64_DIR32MSB 0x24 -+#define R_IA64_DIR32LSB 0x25 -+#define R_IA64_DIR64MSB 0x26 -+#define R_IA64_DIR64LSB 0x27 -+#define R_IA64_GPREL22 0x2a -+#define R_IA64_GPREL64I 0x2b -+#define R_IA64_GPREL32MSB 0x2c -+#define R_IA64_GPREL32LSB 0x2d -+#define R_IA64_GPREL64MSB 0x2e -+#define R_IA64_GPREL64LSB 0x2f -+#define R_IA64_LTOFF22 0x32 -+#define R_IA64_LTOFF64I 0x33 -+#define R_IA64_PLTOFF22 0x3a -+#define R_IA64_PLTOFF64I 0x3b -+#define R_IA64_PLTOFF64MSB 0x3e -+#define R_IA64_PLTOFF64LSB 0x3f -+#define R_IA64_FPTR64I 0x43 -+#define R_IA64_FPTR32MSB 0x44 -+#define R_IA64_FPTR32LSB 0x45 -+#define R_IA64_FPTR64MSB 0x46 -+#define R_IA64_FPTR64LSB 0x47 -+#define R_IA64_PCREL60B 0x48 -+#define R_IA64_PCREL21B 0x49 -+#define R_IA64_PCREL21M 0x4a -+#define R_IA64_PCREL21F 0x4b -+#define R_IA64_PCREL32MSB 0x4c -+#define R_IA64_PCREL32LSB 0x4d -+#define R_IA64_PCREL64MSB 0x4e -+#define R_IA64_PCREL64LSB 0x4f -+#define R_IA64_LTOFF_FPTR22 0x52 -+#define R_IA64_LTOFF_FPTR64I 0x53 -+#define R_IA64_LTOFF_FPTR32MSB 0x54 -+#define R_IA64_LTOFF_FPTR32LSB 0x55 -+#define R_IA64_LTOFF_FPTR64MSB 0x56 -+#define R_IA64_LTOFF_FPTR64LSB 0x57 -+#define R_IA64_SEGREL32MSB 0x5c -+#define R_IA64_SEGREL32LSB 0x5d -+#define R_IA64_SEGREL64MSB 0x5e -+#define R_IA64_SEGREL64LSB 0x5f -+#define R_IA64_SECREL32MSB 0x64 -+#define R_IA64_SECREL32LSB 0x65 -+#define R_IA64_SECREL64MSB 0x66 -+#define R_IA64_SECREL64LSB 0x67 -+#define R_IA64_REL32MSB 0x6c -+#define R_IA64_REL32LSB 0x6d -+#define R_IA64_REL64MSB 0x6e -+#define R_IA64_REL64LSB 0x6f -+#define R_IA64_LTV32MSB 0x74 -+#define R_IA64_LTV32LSB 0x75 -+#define R_IA64_LTV64MSB 0x76 -+#define R_IA64_LTV64LSB 0x77 -+#define R_IA64_PCREL21BI 0x79 -+#define R_IA64_PCREL22 0x7a -+#define R_IA64_PCREL64I 0x7b -+#define R_IA64_IPLTMSB 0x80 -+#define R_IA64_IPLTLSB 0x81 -+#define R_IA64_COPY 0x84 -+#define R_IA64_SUB 0x85 -+#define R_IA64_LTOFF22X 0x86 -+#define R_IA64_LDXMOV 0x87 -+#define R_IA64_TPREL14 0x91 -+#define R_IA64_TPREL22 0x92 -+#define R_IA64_TPREL64I 0x93 -+#define R_IA64_TPREL64MSB 0x96 -+#define R_IA64_TPREL64LSB 0x97 -+#define R_IA64_LTOFF_TPREL22 0x9a -+#define R_IA64_DTPMOD64MSB 0xa6 -+#define R_IA64_DTPMOD64LSB 0xa7 -+#define R_IA64_LTOFF_DTPMOD22 0xaa -+#define R_IA64_DTPREL14 0xb1 -+#define R_IA64_DTPREL22 0xb2 -+#define R_IA64_DTPREL64I 0xb3 -+#define R_IA64_DTPREL32MSB 0xb4 -+#define R_IA64_DTPREL32LSB 0xb5 -+#define R_IA64_DTPREL64MSB 0xb6 -+#define R_IA64_DTPREL64LSB 0xb7 -+#define R_IA64_LTOFF_DTPREL22 0xba -+ -+ -+ -+ -+#define R_SH_NONE 0 -+#define R_SH_DIR32 1 -+#define R_SH_REL32 2 -+#define R_SH_DIR8WPN 3 -+#define R_SH_IND12W 4 -+#define R_SH_DIR8WPL 5 -+#define R_SH_DIR8WPZ 6 -+#define R_SH_DIR8BP 7 -+#define R_SH_DIR8W 8 -+#define R_SH_DIR8L 9 -+#define R_SH_SWITCH16 25 -+#define R_SH_SWITCH32 26 -+#define R_SH_USES 27 -+#define R_SH_COUNT 28 -+#define R_SH_ALIGN 29 -+#define R_SH_CODE 30 -+#define R_SH_DATA 31 -+#define R_SH_LABEL 32 -+#define R_SH_SWITCH8 33 -+#define R_SH_GNU_VTINHERIT 34 -+#define R_SH_GNU_VTENTRY 35 -+#define R_SH_TLS_GD_32 144 -+#define R_SH_TLS_LD_32 145 -+#define R_SH_TLS_LDO_32 146 -+#define R_SH_TLS_IE_32 147 -+#define R_SH_TLS_LE_32 148 -+#define R_SH_TLS_DTPMOD32 149 -+#define R_SH_TLS_DTPOFF32 150 -+#define R_SH_TLS_TPOFF32 151 -+#define R_SH_GOT32 160 -+#define R_SH_PLT32 161 -+#define R_SH_COPY 162 -+#define R_SH_GLOB_DAT 163 -+#define R_SH_JMP_SLOT 164 -+#define R_SH_RELATIVE 165 -+#define R_SH_GOTOFF 166 -+#define R_SH_GOTPC 167 -+ -+#define R_SH_NUM 256 -+ -+ -+ -+#define R_390_NONE 0 -+#define R_390_8 1 -+#define R_390_12 2 -+#define R_390_16 3 -+#define R_390_32 4 -+#define R_390_PC32 5 -+#define R_390_GOT12 6 -+#define R_390_GOT32 7 -+#define R_390_PLT32 8 -+#define R_390_COPY 9 -+#define R_390_GLOB_DAT 10 -+#define R_390_JMP_SLOT 11 -+#define R_390_RELATIVE 12 -+#define R_390_GOTOFF32 13 -+#define R_390_GOTPC 14 -+#define R_390_GOT16 15 -+#define R_390_PC16 16 -+#define R_390_PC16DBL 17 -+#define R_390_PLT16DBL 18 -+#define R_390_PC32DBL 19 -+#define R_390_PLT32DBL 20 -+#define R_390_GOTPCDBL 21 -+#define R_390_64 22 -+#define R_390_PC64 23 -+#define R_390_GOT64 24 -+#define R_390_PLT64 25 -+#define R_390_GOTENT 26 -+#define R_390_GOTOFF16 27 -+#define R_390_GOTOFF64 28 -+#define R_390_GOTPLT12 29 -+#define R_390_GOTPLT16 30 -+#define R_390_GOTPLT32 31 -+#define R_390_GOTPLT64 32 -+#define R_390_GOTPLTENT 33 -+#define R_390_PLTOFF16 34 -+#define R_390_PLTOFF32 35 -+#define R_390_PLTOFF64 36 -+#define R_390_TLS_LOAD 37 -+#define R_390_TLS_GDCALL 38 -+ -+#define R_390_TLS_LDCALL 39 -+ -+#define R_390_TLS_GD32 40 -+ -+#define R_390_TLS_GD64 41 -+ -+#define R_390_TLS_GOTIE12 42 -+ -+#define R_390_TLS_GOTIE32 43 -+ -+#define R_390_TLS_GOTIE64 44 -+ -+#define R_390_TLS_LDM32 45 -+ -+#define R_390_TLS_LDM64 46 -+ -+#define R_390_TLS_IE32 47 -+ -+#define R_390_TLS_IE64 48 -+ -+#define R_390_TLS_IEENT 49 -+ -+#define R_390_TLS_LE32 50 -+ -+#define R_390_TLS_LE64 51 -+ -+#define R_390_TLS_LDO32 52 -+ -+#define R_390_TLS_LDO64 53 -+ -+#define R_390_TLS_DTPMOD 54 -+#define R_390_TLS_DTPOFF 55 -+#define R_390_TLS_TPOFF 56 -+ -+#define R_390_20 57 -+#define R_390_GOT20 58 -+#define R_390_GOTPLT20 59 -+#define R_390_TLS_GOTIE20 60 -+ -+ -+#define R_390_NUM 61 -+ -+ -+ -+#define R_CRIS_NONE 0 -+#define R_CRIS_8 1 -+#define R_CRIS_16 2 -+#define R_CRIS_32 3 -+#define R_CRIS_8_PCREL 4 -+#define R_CRIS_16_PCREL 5 -+#define R_CRIS_32_PCREL 6 -+#define R_CRIS_GNU_VTINHERIT 7 -+#define R_CRIS_GNU_VTENTRY 8 -+#define R_CRIS_COPY 9 -+#define R_CRIS_GLOB_DAT 10 -+#define R_CRIS_JUMP_SLOT 11 -+#define R_CRIS_RELATIVE 12 -+#define R_CRIS_16_GOT 13 -+#define R_CRIS_32_GOT 14 -+#define R_CRIS_16_GOTPLT 15 -+#define R_CRIS_32_GOTPLT 16 -+#define R_CRIS_32_GOTREL 17 -+#define R_CRIS_32_PLT_GOTREL 18 -+#define R_CRIS_32_PLT_PCREL 19 -+ -+#define R_CRIS_NUM 20 -+ -+ -+ -+#define R_X86_64_NONE 0 -+#define R_X86_64_64 1 -+#define R_X86_64_PC32 2 -+#define R_X86_64_GOT32 3 -+#define R_X86_64_PLT32 4 -+#define R_X86_64_COPY 5 -+#define R_X86_64_GLOB_DAT 6 -+#define R_X86_64_JUMP_SLOT 7 -+#define R_X86_64_RELATIVE 8 -+#define R_X86_64_GOTPCREL 9 -+ -+#define R_X86_64_32 10 -+#define R_X86_64_32S 11 -+#define R_X86_64_16 12 -+#define R_X86_64_PC16 13 -+#define R_X86_64_8 14 -+#define R_X86_64_PC8 15 -+#define R_X86_64_DTPMOD64 16 -+#define R_X86_64_DTPOFF64 17 -+#define R_X86_64_TPOFF64 18 -+#define R_X86_64_TLSGD 19 -+ -+#define R_X86_64_TLSLD 20 -+ -+#define R_X86_64_DTPOFF32 21 -+#define R_X86_64_GOTTPOFF 22 -+ -+#define R_X86_64_TPOFF32 23 -+#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_RELATIVE64 38 -+#define R_X86_64_NUM 39 -+ -+ -+ -+#define R_MN10300_NONE 0 -+#define R_MN10300_32 1 -+#define R_MN10300_16 2 -+#define R_MN10300_8 3 -+#define R_MN10300_PCREL32 4 -+#define R_MN10300_PCREL16 5 -+#define R_MN10300_PCREL8 6 -+#define R_MN10300_GNU_VTINHERIT 7 -+#define R_MN10300_GNU_VTENTRY 8 -+#define R_MN10300_24 9 -+#define R_MN10300_GOTPC32 10 -+#define R_MN10300_GOTPC16 11 -+#define R_MN10300_GOTOFF32 12 -+#define R_MN10300_GOTOFF24 13 -+#define R_MN10300_GOTOFF16 14 -+#define R_MN10300_PLT32 15 -+#define R_MN10300_PLT16 16 -+#define R_MN10300_GOT32 17 -+#define R_MN10300_GOT24 18 -+#define R_MN10300_GOT16 19 -+#define R_MN10300_COPY 20 -+#define R_MN10300_GLOB_DAT 21 -+#define R_MN10300_JMP_SLOT 22 -+#define R_MN10300_RELATIVE 23 -+ -+#define R_MN10300_NUM 24 -+ -+ -+ -+#define R_M32R_NONE 0 -+#define R_M32R_16 1 -+#define R_M32R_32 2 -+#define R_M32R_24 3 -+#define R_M32R_10_PCREL 4 -+#define R_M32R_18_PCREL 5 -+#define R_M32R_26_PCREL 6 -+#define R_M32R_HI16_ULO 7 -+#define R_M32R_HI16_SLO 8 -+#define R_M32R_LO16 9 -+#define R_M32R_SDA16 10 -+#define R_M32R_GNU_VTINHERIT 11 -+#define R_M32R_GNU_VTENTRY 12 -+ -+#define R_M32R_16_RELA 33 -+#define R_M32R_32_RELA 34 -+#define R_M32R_24_RELA 35 -+#define R_M32R_10_PCREL_RELA 36 -+#define R_M32R_18_PCREL_RELA 37 -+#define R_M32R_26_PCREL_RELA 38 -+#define R_M32R_HI16_ULO_RELA 39 -+#define R_M32R_HI16_SLO_RELA 40 -+#define R_M32R_LO16_RELA 41 -+#define R_M32R_SDA16_RELA 42 -+#define R_M32R_RELA_GNU_VTINHERIT 43 -+#define R_M32R_RELA_GNU_VTENTRY 44 -+#define R_M32R_REL32 45 -+ -+#define R_M32R_GOT24 48 -+#define R_M32R_26_PLTREL 49 -+#define R_M32R_COPY 50 -+#define R_M32R_GLOB_DAT 51 -+#define R_M32R_JMP_SLOT 52 -+#define R_M32R_RELATIVE 53 -+#define R_M32R_GOTOFF 54 -+#define R_M32R_GOTPC24 55 -+#define R_M32R_GOT16_HI_ULO 56 -+ -+#define R_M32R_GOT16_HI_SLO 57 -+ -+#define R_M32R_GOT16_LO 58 -+#define R_M32R_GOTPC_HI_ULO 59 -+ -+#define R_M32R_GOTPC_HI_SLO 60 -+ -+#define R_M32R_GOTPC_LO 61 -+ -+#define R_M32R_GOTOFF_HI_ULO 62 -+ -+#define R_M32R_GOTOFF_HI_SLO 63 -+ -+#define R_M32R_GOTOFF_LO 64 -+#define R_M32R_NUM 256 -+ -+#define R_MICROBLAZE_NONE 0 -+#define R_MICROBLAZE_32 1 -+#define R_MICROBLAZE_32_PCREL 2 -+#define R_MICROBLAZE_64_PCREL 3 -+#define R_MICROBLAZE_32_PCREL_LO 4 -+#define R_MICROBLAZE_64 5 -+#define R_MICROBLAZE_32_LO 6 -+#define R_MICROBLAZE_SRO32 7 -+#define R_MICROBLAZE_SRW32 8 -+#define R_MICROBLAZE_64_NONE 9 -+#define R_MICROBLAZE_32_SYM_OP_SYM 10 -+#define R_MICROBLAZE_GNU_VTINHERIT 11 -+#define R_MICROBLAZE_GNU_VTENTRY 12 -+#define R_MICROBLAZE_GOTPC_64 13 -+#define R_MICROBLAZE_GOT_64 14 -+#define R_MICROBLAZE_PLT_64 15 -+#define R_MICROBLAZE_REL 16 -+#define R_MICROBLAZE_JUMP_SLOT 17 -+#define R_MICROBLAZE_GLOB_DAT 18 -+#define R_MICROBLAZE_GOTOFF_64 19 -+#define R_MICROBLAZE_GOTOFF_32 20 -+#define R_MICROBLAZE_COPY 21 -+#define R_MICROBLAZE_TLS 22 -+#define R_MICROBLAZE_TLSGD 23 -+#define R_MICROBLAZE_TLSLD 24 -+#define R_MICROBLAZE_TLSDTPMOD32 25 -+#define R_MICROBLAZE_TLSDTPREL32 26 -+#define R_MICROBLAZE_TLSDTPREL64 27 -+#define R_MICROBLAZE_TLSGOTTPREL32 28 -+#define R_MICROBLAZE_TLSTPREL32 29 -+ -+#ifdef __cplusplus -+} -+#endif -+ -+ -+#endif diff --git a/toolchain/kernel-headers/patches/3.13.5/sgidefs.patch b/toolchain/kernel-headers/patches/3.13.5/sgidefs.patch deleted file mode 100644 index f00a284d9..000000000 --- a/toolchain/kernel-headers/patches/3.13.5/sgidefs.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff -Nur linux-3.11.5.orig/arch/mips/include/uapi/asm/sgidefs.h linux-3.11.5/arch/mips/include/uapi/asm/sgidefs.h ---- linux-3.11.5.orig/arch/mips/include/uapi/asm/sgidefs.h 2013-10-14 03:14:45.000000000 +0200 -+++ linux-3.11.5/arch/mips/include/uapi/asm/sgidefs.h 2013-11-08 22:01:28.000000000 +0100 -@@ -11,14 +11,6 @@ - #define __ASM_SGIDEFS_H - - /* -- * Using a Linux compiler for building Linux seems logic but not to -- * everybody. -- */ --#ifndef __linux__ --#error Use a Linux compiler or give up. --#endif -- --/* - * Definitions for the ISA levels - * - * With the introduction of MIPS32 / MIPS64 instruction sets definitions diff --git a/toolchain/kernel-headers/patches/3.13.5/sortext.patch b/toolchain/kernel-headers/patches/3.13.5/sortext.patch deleted file mode 100644 index 8fd4e1d6b..000000000 --- a/toolchain/kernel-headers/patches/3.13.5/sortext.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -Nur linux-3.12.6.orig/arch/arm/Kconfig linux-3.12.6/arch/arm/Kconfig ---- linux-3.12.6.orig/arch/arm/Kconfig 2013-12-20 16:51:33.000000000 +0100 -+++ linux-3.12.6/arch/arm/Kconfig 2013-12-28 19:29:33.000000000 +0100 -@@ -6,7 +6,6 @@ - select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST - select ARCH_HAVE_CUSTOM_GPIO_H - select ARCH_WANT_IPC_PARSE_VERSION -- select BUILDTIME_EXTABLE_SORT if MMU - select CLONE_BACKWARDS - select CPU_PM if (SUSPEND || CPU_IDLE) - select DCACHE_WORD_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && !CPU_BIG_ENDIAN && MMU -diff -Nur linux-3.12.6.orig/arch/mips/Kconfig linux-3.12.6/arch/mips/Kconfig ---- linux-3.12.6.orig/arch/mips/Kconfig 2013-12-20 16:51:33.000000000 +0100 -+++ linux-3.12.6/arch/mips/Kconfig 2013-12-28 19:30:06.000000000 +0100 -@@ -35,7 +35,6 @@ - select HAVE_MEMBLOCK_NODE_MAP - select ARCH_DISCARD_MEMBLOCK - select GENERIC_SMP_IDLE_THREAD -- select BUILDTIME_EXTABLE_SORT - select GENERIC_CLOCKEVENTS - select GENERIC_CMOS_UPDATE - select HAVE_MOD_ARCH_SPECIFIC -diff -Nur linux-3.12.6.orig/arch/x86/Kconfig linux-3.12.6/arch/x86/Kconfig ---- linux-3.12.6.orig/arch/x86/Kconfig 2013-12-20 16:51:33.000000000 +0100 -+++ linux-3.12.6/arch/x86/Kconfig 2013-12-28 19:29:50.000000000 +0100 -@@ -100,7 +100,6 @@ - select GENERIC_SMP_IDLE_THREAD - select ARCH_WANT_IPC_PARSE_VERSION if X86_32 - select HAVE_ARCH_SECCOMP_FILTER -- select BUILDTIME_EXTABLE_SORT - select GENERIC_CMOS_UPDATE - select HAVE_ARCH_SOFT_DIRTY - select CLOCKSOURCE_WATCHDOG diff --git a/toolchain/kernel-headers/patches/3.13.6/cleankernel.patch b/toolchain/kernel-headers/patches/3.13.6/cleankernel.patch new file mode 100644 index 000000000..d8c055dc3 --- /dev/null +++ b/toolchain/kernel-headers/patches/3.13.6/cleankernel.patch @@ -0,0 +1,11 @@ +diff -Nur linux-3.11.5.orig/scripts/Makefile.headersinst linux-3.11.5/scripts/Makefile.headersinst +--- linux-3.11.5.orig/scripts/Makefile.headersinst 2013-10-14 03:14:45.000000000 +0200 ++++ linux-3.11.5/scripts/Makefile.headersinst 2013-10-15 16:33:10.000000000 +0200 +@@ -107,7 +107,6 @@ + + targets += $(install-file) + $(install-file): scripts/headers_install.sh $(input-files1) $(input-files2) $(input-files3) FORCE +- $(if $(unwanted),$(call cmd,remove),) + $(if $(wildcard $(dir $@)),,$(shell mkdir -p $(dir $@))) + $(call if_changed,install) + diff --git a/toolchain/kernel-headers/patches/3.13.6/microperl.patch b/toolchain/kernel-headers/patches/3.13.6/microperl.patch new file mode 100644 index 000000000..298d96593 --- /dev/null +++ b/toolchain/kernel-headers/patches/3.13.6/microperl.patch @@ -0,0 +1,13 @@ +diff -Nur linux-3.11.5.orig/scripts/headers_check.pl linux-3.11.5/scripts/headers_check.pl +--- linux-3.11.5.orig/scripts/headers_check.pl 2013-10-14 03:14:45.000000000 +0200 ++++ linux-3.11.5/scripts/headers_check.pl 2013-10-16 17:08:59.000000000 +0200 +@@ -18,7 +18,7 @@ + # + # 3) Check for leaked CONFIG_ symbols + +-use strict; ++#use strict; + use File::Basename; + + my ($dir, $arch, @files) = @ARGV; + diff --git a/toolchain/kernel-headers/patches/3.13.6/mkpiggy.patch b/toolchain/kernel-headers/patches/3.13.6/mkpiggy.patch new file mode 100644 index 000000000..751678b74 --- /dev/null +++ b/toolchain/kernel-headers/patches/3.13.6/mkpiggy.patch @@ -0,0 +1,28 @@ +diff -Nur linux-3.13.3.orig/arch/x86/boot/compressed/mkpiggy.c linux-3.13.3/arch/x86/boot/compressed/mkpiggy.c +--- linux-3.13.3.orig/arch/x86/boot/compressed/mkpiggy.c 2014-02-13 23:00:14.000000000 +0100 ++++ linux-3.13.3/arch/x86/boot/compressed/mkpiggy.c 2014-02-17 11:09:06.000000000 +0100 +@@ -29,7 +29,14 @@ + #include + #include + #include +-#include ++ ++static uint32_t getle32(const void *p) ++{ ++ const uint8_t *cp = p; ++ ++ return (uint32_t)cp[0] + ((uint32_t)cp[1] << 8) + ++ ((uint32_t)cp[2] << 16) + ((uint32_t)cp[3] << 24); ++} + + int main(int argc, char *argv[]) + { +@@ -63,7 +70,7 @@ + } + + ilen = ftell(f); +- olen = get_unaligned_le32(&olen); ++ olen = getle32(&olen); + + /* + * Now we have the input (compressed) and output (uncompressed) diff --git a/toolchain/kernel-headers/patches/3.13.6/relocs.patch b/toolchain/kernel-headers/patches/3.13.6/relocs.patch new file mode 100644 index 000000000..649b9e73e --- /dev/null +++ b/toolchain/kernel-headers/patches/3.13.6/relocs.patch @@ -0,0 +1,2693 @@ +diff -Nur linux-3.11.5.orig/arch/x86/tools/relocs.h linux-3.11.5/arch/x86/tools/relocs.h +--- linux-3.11.5.orig/arch/x86/tools/relocs.h 2013-10-14 03:14:45.000000000 +0200 ++++ linux-3.11.5/arch/x86/tools/relocs.h 2013-10-20 17:41:16.000000000 +0200 +@@ -9,10 +9,14 @@ + #include + #include + #include ++#ifdef __linux__ + #include + #include + #define USE_BSD + #include ++#else ++#include "elf.h" ++#endif + #include + #include + +diff -Nur linux-3.11.5.orig/tools/include/elf.h linux-3.11.5/tools/include/elf.h +--- linux-3.11.5.orig/tools/include/elf.h 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.11.5/tools/include/elf.h 2013-10-20 17:42:10.000000000 +0200 +@@ -0,0 +1,2671 @@ ++#ifndef _ELF_H ++#define _ELF_H ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++#include ++ ++typedef uint16_t Elf32_Half; ++typedef uint16_t Elf64_Half; ++ ++typedef uint32_t Elf32_Word; ++typedef int32_t Elf32_Sword; ++typedef uint32_t Elf64_Word; ++typedef int32_t Elf64_Sword; ++ ++typedef uint64_t Elf32_Xword; ++typedef int64_t Elf32_Sxword; ++typedef uint64_t Elf64_Xword; ++typedef int64_t Elf64_Sxword; ++ ++typedef uint32_t Elf32_Addr; ++typedef uint64_t Elf64_Addr; ++ ++typedef uint32_t Elf32_Off; ++typedef uint64_t Elf64_Off; ++ ++typedef uint16_t Elf32_Section; ++typedef uint16_t Elf64_Section; ++ ++typedef Elf32_Half Elf32_Versym; ++typedef Elf64_Half Elf64_Versym; ++ ++#define EI_NIDENT (16) ++ ++typedef struct { ++ unsigned char e_ident[EI_NIDENT]; ++ Elf32_Half e_type; ++ Elf32_Half e_machine; ++ Elf32_Word e_version; ++ Elf32_Addr e_entry; ++ Elf32_Off e_phoff; ++ Elf32_Off e_shoff; ++ Elf32_Word e_flags; ++ Elf32_Half e_ehsize; ++ Elf32_Half e_phentsize; ++ Elf32_Half e_phnum; ++ Elf32_Half e_shentsize; ++ Elf32_Half e_shnum; ++ Elf32_Half e_shstrndx; ++} Elf32_Ehdr; ++ ++typedef struct { ++ unsigned char e_ident[EI_NIDENT]; ++ Elf64_Half e_type; ++ Elf64_Half e_machine; ++ Elf64_Word e_version; ++ Elf64_Addr e_entry; ++ Elf64_Off e_phoff; ++ Elf64_Off e_shoff; ++ Elf64_Word e_flags; ++ Elf64_Half e_ehsize; ++ Elf64_Half e_phentsize; ++ Elf64_Half e_phnum; ++ Elf64_Half e_shentsize; ++ Elf64_Half e_shnum; ++ Elf64_Half e_shstrndx; ++} Elf64_Ehdr; ++ ++#define EI_MAG0 0 ++#define ELFMAG0 0x7f ++ ++#define EI_MAG1 1 ++#define ELFMAG1 'E' ++ ++#define EI_MAG2 2 ++#define ELFMAG2 'L' ++ ++#define EI_MAG3 3 ++#define ELFMAG3 'F' ++ ++ ++#define ELFMAG "\177ELF" ++#define SELFMAG 4 ++ ++#define EI_CLASS 4 ++#define ELFCLASSNONE 0 ++#define ELFCLASS32 1 ++#define ELFCLASS64 2 ++#define ELFCLASSNUM 3 ++ ++#define EI_DATA 5 ++#define ELFDATANONE 0 ++#define ELFDATA2LSB 1 ++#define ELFDATA2MSB 2 ++#define ELFDATANUM 3 ++ ++#define EI_VERSION 6 ++ ++ ++#define EI_OSABI 7 ++#define ELFOSABI_NONE 0 ++#define ELFOSABI_SYSV 0 ++#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 ++#define ELFOSABI_FREEBSD 9 ++#define ELFOSABI_TRU64 10 ++#define ELFOSABI_MODESTO 11 ++#define ELFOSABI_OPENBSD 12 ++#define ELFOSABI_ARM 97 ++#define ELFOSABI_STANDALONE 255 ++ ++#define EI_ABIVERSION 8 ++ ++#define EI_PAD 9 ++ ++ ++ ++#define ET_NONE 0 ++#define ET_REL 1 ++#define ET_EXEC 2 ++#define ET_DYN 3 ++#define ET_CORE 4 ++#define ET_NUM 5 ++#define ET_LOOS 0xfe00 ++#define ET_HIOS 0xfeff ++#define ET_LOPROC 0xff00 ++#define ET_HIPROC 0xffff ++ ++ ++ ++#define EM_NONE 0 ++#define EM_M32 1 ++#define EM_SPARC 2 ++#define EM_386 3 ++#define EM_68K 4 ++#define EM_88K 5 ++#define EM_860 7 ++#define EM_MIPS 8 ++#define EM_S370 9 ++#define EM_MIPS_RS3_LE 10 ++ ++#define EM_PARISC 15 ++#define EM_VPP500 17 ++#define EM_SPARC32PLUS 18 ++#define EM_960 19 ++#define EM_PPC 20 ++#define EM_PPC64 21 ++#define EM_S390 22 ++ ++#define EM_V800 36 ++#define EM_FR20 37 ++#define EM_RH32 38 ++#define EM_RCE 39 ++#define EM_ARM 40 ++#define EM_FAKE_ALPHA 41 ++#define EM_SH 42 ++#define EM_SPARCV9 43 ++#define EM_TRICORE 44 ++#define EM_ARC 45 ++#define EM_H8_300 46 ++#define EM_H8_300H 47 ++#define EM_H8S 48 ++#define EM_H8_500 49 ++#define EM_IA_64 50 ++#define EM_MIPS_X 51 ++#define EM_COLDFIRE 52 ++#define EM_68HC12 53 ++#define EM_MMA 54 ++#define EM_PCP 55 ++#define EM_NCPU 56 ++#define EM_NDR1 57 ++#define EM_STARCORE 58 ++#define EM_ME16 59 ++#define EM_ST100 60 ++#define EM_TINYJ 61 ++#define EM_X86_64 62 ++#define EM_PDSP 63 ++ ++#define EM_FX66 66 ++#define EM_ST9PLUS 67 ++#define EM_ST7 68 ++#define EM_68HC16 69 ++#define EM_68HC11 70 ++#define EM_68HC08 71 ++#define EM_68HC05 72 ++#define EM_SVX 73 ++#define EM_ST19 74 ++#define EM_VAX 75 ++#define EM_CRIS 76 ++#define EM_JAVELIN 77 ++#define EM_FIREPATH 78 ++#define EM_ZSP 79 ++#define EM_MMIX 80 ++#define EM_HUANY 81 ++#define EM_PRISM 82 ++#define EM_AVR 83 ++#define EM_FR30 84 ++#define EM_D10V 85 ++#define EM_D30V 86 ++#define EM_V850 87 ++#define EM_M32R 88 ++#define EM_MN10300 89 ++#define EM_MN10200 90 ++#define EM_PJ 91 ++#define EM_OPENRISC 92 ++#define EM_ARC_A5 93 ++#define EM_XTENSA 94 ++#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 ++#define EV_CURRENT 1 ++#define EV_NUM 2 ++ ++typedef struct { ++ Elf32_Word sh_name; ++ Elf32_Word sh_type; ++ Elf32_Word sh_flags; ++ Elf32_Addr sh_addr; ++ Elf32_Off sh_offset; ++ Elf32_Word sh_size; ++ Elf32_Word sh_link; ++ Elf32_Word sh_info; ++ Elf32_Word sh_addralign; ++ Elf32_Word sh_entsize; ++} Elf32_Shdr; ++ ++typedef struct { ++ Elf64_Word sh_name; ++ Elf64_Word sh_type; ++ Elf64_Xword sh_flags; ++ Elf64_Addr sh_addr; ++ Elf64_Off sh_offset; ++ Elf64_Xword sh_size; ++ Elf64_Word sh_link; ++ Elf64_Word sh_info; ++ Elf64_Xword sh_addralign; ++ Elf64_Xword sh_entsize; ++} Elf64_Shdr; ++ ++ ++ ++#define SHN_UNDEF 0 ++#define SHN_LORESERVE 0xff00 ++#define SHN_LOPROC 0xff00 ++#define SHN_BEFORE 0xff00 ++ ++#define SHN_AFTER 0xff01 ++ ++#define SHN_HIPROC 0xff1f ++#define SHN_LOOS 0xff20 ++#define SHN_HIOS 0xff3f ++#define SHN_ABS 0xfff1 ++#define SHN_COMMON 0xfff2 ++#define SHN_XINDEX 0xffff ++#define SHN_HIRESERVE 0xffff ++ ++ ++ ++#define SHT_NULL 0 ++#define SHT_PROGBITS 1 ++#define SHT_SYMTAB 2 ++#define SHT_STRTAB 3 ++#define SHT_RELA 4 ++#define SHT_HASH 5 ++#define SHT_DYNAMIC 6 ++#define SHT_NOTE 7 ++#define SHT_NOBITS 8 ++#define SHT_REL 9 ++#define SHT_SHLIB 10 ++#define SHT_DYNSYM 11 ++#define SHT_INIT_ARRAY 14 ++#define SHT_FINI_ARRAY 15 ++#define SHT_PREINIT_ARRAY 16 ++#define SHT_GROUP 17 ++#define SHT_SYMTAB_SHNDX 18 ++#define SHT_NUM 19 ++#define SHT_LOOS 0x60000000 ++#define SHT_GNU_ATTRIBUTES 0x6ffffff5 ++#define SHT_GNU_HASH 0x6ffffff6 ++#define SHT_GNU_LIBLIST 0x6ffffff7 ++#define SHT_CHECKSUM 0x6ffffff8 ++#define SHT_LOSUNW 0x6ffffffa ++#define SHT_SUNW_move 0x6ffffffa ++#define SHT_SUNW_COMDAT 0x6ffffffb ++#define SHT_SUNW_syminfo 0x6ffffffc ++#define SHT_GNU_verdef 0x6ffffffd ++#define SHT_GNU_verneed 0x6ffffffe ++#define SHT_GNU_versym 0x6fffffff ++#define SHT_HISUNW 0x6fffffff ++#define SHT_HIOS 0x6fffffff ++#define SHT_LOPROC 0x70000000 ++#define SHT_HIPROC 0x7fffffff ++#define SHT_LOUSER 0x80000000 ++#define SHT_HIUSER 0x8fffffff ++ ++#define SHF_WRITE (1 << 0) ++#define SHF_ALLOC (1 << 1) ++#define SHF_EXECINSTR (1 << 2) ++#define SHF_MERGE (1 << 4) ++#define SHF_STRINGS (1 << 5) ++#define SHF_INFO_LINK (1 << 6) ++#define SHF_LINK_ORDER (1 << 7) ++#define SHF_OS_NONCONFORMING (1 << 8) ++ ++#define SHF_GROUP (1 << 9) ++#define SHF_TLS (1 << 10) ++#define SHF_MASKOS 0x0ff00000 ++#define SHF_MASKPROC 0xf0000000 ++#define SHF_ORDERED (1 << 30) ++#define SHF_EXCLUDE (1 << 31) ++ ++#define GRP_COMDAT 0x1 ++ ++typedef struct { ++ Elf32_Word st_name; ++ Elf32_Addr st_value; ++ Elf32_Word st_size; ++ unsigned char st_info; ++ unsigned char st_other; ++ Elf32_Section st_shndx; ++} Elf32_Sym; ++ ++typedef struct { ++ Elf64_Word st_name; ++ unsigned char st_info; ++ unsigned char st_other; ++ Elf64_Section st_shndx; ++ Elf64_Addr st_value; ++ Elf64_Xword st_size; ++} Elf64_Sym; ++ ++typedef struct { ++ Elf32_Half si_boundto; ++ Elf32_Half si_flags; ++} Elf32_Syminfo; ++ ++typedef struct { ++ Elf64_Half si_boundto; ++ Elf64_Half si_flags; ++} Elf64_Syminfo; ++ ++#define SYMINFO_BT_SELF 0xffff ++#define SYMINFO_BT_PARENT 0xfffe ++#define SYMINFO_BT_LOWRESERVE 0xff00 ++ ++#define SYMINFO_FLG_DIRECT 0x0001 ++#define SYMINFO_FLG_PASSTHRU 0x0002 ++#define SYMINFO_FLG_COPY 0x0004 ++#define SYMINFO_FLG_LAZYLOAD 0x0008 ++ ++#define SYMINFO_NONE 0 ++#define SYMINFO_CURRENT 1 ++#define SYMINFO_NUM 2 ++ ++#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4) ++#define ELF32_ST_TYPE(val) ((val) & 0xf) ++#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf)) ++ ++#define ELF64_ST_BIND(val) ELF32_ST_BIND (val) ++#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val) ++#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type)) ++ ++#define STB_LOCAL 0 ++#define STB_GLOBAL 1 ++#define STB_WEAK 2 ++#define STB_NUM 3 ++#define STB_LOOS 10 ++#define STB_GNU_UNIQUE 10 ++#define STB_HIOS 12 ++#define STB_LOPROC 13 ++#define STB_HIPROC 15 ++ ++#define STT_NOTYPE 0 ++#define STT_OBJECT 1 ++#define STT_FUNC 2 ++#define STT_SECTION 3 ++#define STT_FILE 4 ++#define STT_COMMON 5 ++#define STT_TLS 6 ++#define STT_NUM 7 ++#define STT_LOOS 10 ++#define STT_GNU_IFUNC 10 ++#define STT_HIOS 12 ++#define STT_LOPROC 13 ++#define STT_HIPROC 15 ++ ++#define STN_UNDEF 0 ++ ++#define ELF32_ST_VISIBILITY(o) ((o) & 0x03) ++#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o) ++ ++#define STV_DEFAULT 0 ++#define STV_INTERNAL 1 ++#define STV_HIDDEN 2 ++#define STV_PROTECTED 3 ++ ++ ++ ++ ++typedef struct ++{ ++ Elf32_Addr r_offset; ++ Elf32_Word r_info; ++} Elf32_Rel; ++ ++typedef struct { ++ Elf64_Addr r_offset; ++ Elf64_Xword r_info; ++} Elf64_Rel; ++ ++ ++ ++typedef struct { ++ Elf32_Addr r_offset; ++ Elf32_Word r_info; ++ Elf32_Sword r_addend; ++} Elf32_Rela; ++ ++typedef struct { ++ Elf64_Addr r_offset; ++ Elf64_Xword r_info; ++ Elf64_Sxword r_addend; ++} Elf64_Rela; ++ ++ ++ ++#define ELF32_R_SYM(val) ((val) >> 8) ++#define ELF32_R_TYPE(val) ((val) & 0xff) ++#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff)) ++ ++#define ELF64_R_SYM(i) ((i) >> 32) ++#define ELF64_R_TYPE(i) ((i) & 0xffffffff) ++#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type)) ++ ++ ++ ++typedef struct { ++ Elf32_Word p_type; ++ Elf32_Off p_offset; ++ Elf32_Addr p_vaddr; ++ Elf32_Addr p_paddr; ++ Elf32_Word p_filesz; ++ Elf32_Word p_memsz; ++ Elf32_Word p_flags; ++ Elf32_Word p_align; ++} Elf32_Phdr; ++ ++typedef struct { ++ Elf64_Word p_type; ++ Elf64_Word p_flags; ++ Elf64_Off p_offset; ++ Elf64_Addr p_vaddr; ++ Elf64_Addr p_paddr; ++ Elf64_Xword p_filesz; ++ Elf64_Xword p_memsz; ++ Elf64_Xword p_align; ++} Elf64_Phdr; ++ ++ ++ ++#define PT_NULL 0 ++#define PT_LOAD 1 ++#define PT_DYNAMIC 2 ++#define PT_INTERP 3 ++#define PT_NOTE 4 ++#define PT_SHLIB 5 ++#define PT_PHDR 6 ++#define PT_TLS 7 ++#define PT_NUM 8 ++#define PT_LOOS 0x60000000 ++#define PT_GNU_EH_FRAME 0x6474e550 ++#define PT_GNU_STACK 0x6474e551 ++#define PT_GNU_RELRO 0x6474e552 ++#define PT_LOSUNW 0x6ffffffa ++#define PT_SUNWBSS 0x6ffffffa ++#define PT_SUNWSTACK 0x6ffffffb ++#define PT_HISUNW 0x6fffffff ++#define PT_HIOS 0x6fffffff ++#define PT_LOPROC 0x70000000 ++#define PT_HIPROC 0x7fffffff ++ ++ ++#define PN_XNUM 0xffff ++ ++ ++#define PF_X (1 << 0) ++#define PF_W (1 << 1) ++#define PF_R (1 << 2) ++#define PF_MASKOS 0x0ff00000 ++#define PF_MASKPROC 0xf0000000 ++ ++ ++ ++#define NT_PRSTATUS 1 ++#define NT_FPREGSET 2 ++#define NT_PRPSINFO 3 ++#define NT_PRXREG 4 ++#define NT_TASKSTRUCT 4 ++#define NT_PLATFORM 5 ++#define NT_AUXV 6 ++#define NT_GWINDOWS 7 ++#define NT_ASRS 8 ++#define NT_PSTATUS 10 ++#define NT_PSINFO 13 ++#define NT_PRCRED 14 ++#define NT_UTSNAME 15 ++#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 ++ ++ ++ ++ ++typedef struct { ++ Elf32_Sword d_tag; ++ union { ++ Elf32_Word d_val; ++ Elf32_Addr d_ptr; ++ } d_un; ++} Elf32_Dyn; ++ ++typedef struct { ++ Elf64_Sxword d_tag; ++ union { ++ Elf64_Xword d_val; ++ Elf64_Addr d_ptr; ++ } d_un; ++} Elf64_Dyn; ++ ++ ++ ++#define DT_NULL 0 ++#define DT_NEEDED 1 ++#define DT_PLTRELSZ 2 ++#define DT_PLTGOT 3 ++#define DT_HASH 4 ++#define DT_STRTAB 5 ++#define DT_SYMTAB 6 ++#define DT_RELA 7 ++#define DT_RELASZ 8 ++#define DT_RELAENT 9 ++#define DT_STRSZ 10 ++#define DT_SYMENT 11 ++#define DT_INIT 12 ++#define DT_FINI 13 ++#define DT_SONAME 14 ++#define DT_RPATH 15 ++#define DT_SYMBOLIC 16 ++#define DT_REL 17 ++#define DT_RELSZ 18 ++#define DT_RELENT 19 ++#define DT_PLTREL 20 ++#define DT_DEBUG 21 ++#define DT_TEXTREL 22 ++#define DT_JMPREL 23 ++#define DT_BIND_NOW 24 ++#define DT_INIT_ARRAY 25 ++#define DT_FINI_ARRAY 26 ++#define DT_INIT_ARRAYSZ 27 ++#define DT_FINI_ARRAYSZ 28 ++#define DT_RUNPATH 29 ++#define DT_FLAGS 30 ++#define DT_ENCODING 32 ++#define DT_PREINIT_ARRAY 32 ++#define DT_PREINIT_ARRAYSZ 33 ++#define DT_NUM 34 ++#define DT_LOOS 0x6000000d ++#define DT_HIOS 0x6ffff000 ++#define DT_LOPROC 0x70000000 ++#define DT_HIPROC 0x7fffffff ++#define DT_PROCNUM DT_MIPS_NUM ++ ++#define DT_VALRNGLO 0x6ffffd00 ++#define DT_GNU_PRELINKED 0x6ffffdf5 ++#define DT_GNU_CONFLICTSZ 0x6ffffdf6 ++#define DT_GNU_LIBLISTSZ 0x6ffffdf7 ++#define DT_CHECKSUM 0x6ffffdf8 ++#define DT_PLTPADSZ 0x6ffffdf9 ++#define DT_MOVEENT 0x6ffffdfa ++#define DT_MOVESZ 0x6ffffdfb ++#define DT_FEATURE_1 0x6ffffdfc ++#define DT_POSFLAG_1 0x6ffffdfd ++ ++#define DT_SYMINSZ 0x6ffffdfe ++#define DT_SYMINENT 0x6ffffdff ++#define DT_VALRNGHI 0x6ffffdff ++#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag)) ++#define DT_VALNUM 12 ++ ++#define DT_ADDRRNGLO 0x6ffffe00 ++#define DT_GNU_HASH 0x6ffffef5 ++#define DT_TLSDESC_PLT 0x6ffffef6 ++#define DT_TLSDESC_GOT 0x6ffffef7 ++#define DT_GNU_CONFLICT 0x6ffffef8 ++#define DT_GNU_LIBLIST 0x6ffffef9 ++#define DT_CONFIG 0x6ffffefa ++#define DT_DEPAUDIT 0x6ffffefb ++#define DT_AUDIT 0x6ffffefc ++#define DT_PLTPAD 0x6ffffefd ++#define DT_MOVETAB 0x6ffffefe ++#define DT_SYMINFO 0x6ffffeff ++#define DT_ADDRRNGHI 0x6ffffeff ++#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag)) ++#define DT_ADDRNUM 11 ++ ++ ++ ++#define DT_VERSYM 0x6ffffff0 ++ ++#define DT_RELACOUNT 0x6ffffff9 ++#define DT_RELCOUNT 0x6ffffffa ++ ++ ++#define DT_FLAGS_1 0x6ffffffb ++#define DT_VERDEF 0x6ffffffc ++ ++#define DT_VERDEFNUM 0x6ffffffd ++#define DT_VERNEED 0x6ffffffe ++ ++#define DT_VERNEEDNUM 0x6fffffff ++#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) ++#define DT_VERSIONTAGNUM 16 ++ ++ ++ ++#define DT_AUXILIARY 0x7ffffffd ++#define DT_FILTER 0x7fffffff ++#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1) ++#define DT_EXTRANUM 3 ++ ++ ++#define DF_ORIGIN 0x00000001 ++#define DF_SYMBOLIC 0x00000002 ++#define DF_TEXTREL 0x00000004 ++#define DF_BIND_NOW 0x00000008 ++#define DF_STATIC_TLS 0x00000010 ++ ++ ++ ++#define DF_1_NOW 0x00000001 ++#define DF_1_GLOBAL 0x00000002 ++#define DF_1_GROUP 0x00000004 ++#define DF_1_NODELETE 0x00000008 ++#define DF_1_LOADFLTR 0x00000010 ++#define DF_1_INITFIRST 0x00000020 ++#define DF_1_NOOPEN 0x00000040 ++#define DF_1_ORIGIN 0x00000080 ++#define DF_1_DIRECT 0x00000100 ++#define DF_1_TRANS 0x00000200 ++#define DF_1_INTERPOSE 0x00000400 ++#define DF_1_NODEFLIB 0x00000800 ++#define DF_1_NODUMP 0x00001000 ++#define DF_1_CONFALT 0x00002000 ++#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 ++ ++ ++#define DF_P1_LAZYLOAD 0x00000001 ++#define DF_P1_GROUPPERM 0x00000002 ++ ++ ++ ++ ++typedef struct { ++ Elf32_Half vd_version; ++ Elf32_Half vd_flags; ++ Elf32_Half vd_ndx; ++ Elf32_Half vd_cnt; ++ Elf32_Word vd_hash; ++ Elf32_Word vd_aux; ++ Elf32_Word vd_next; ++} Elf32_Verdef; ++ ++typedef struct { ++ Elf64_Half vd_version; ++ Elf64_Half vd_flags; ++ Elf64_Half vd_ndx; ++ Elf64_Half vd_cnt; ++ Elf64_Word vd_hash; ++ Elf64_Word vd_aux; ++ Elf64_Word vd_next; ++} Elf64_Verdef; ++ ++ ++ ++#define VER_DEF_NONE 0 ++#define VER_DEF_CURRENT 1 ++#define VER_DEF_NUM 2 ++ ++ ++#define VER_FLG_BASE 0x1 ++#define VER_FLG_WEAK 0x2 ++ ++ ++#define VER_NDX_LOCAL 0 ++#define VER_NDX_GLOBAL 1 ++#define VER_NDX_LORESERVE 0xff00 ++#define VER_NDX_ELIMINATE 0xff01 ++ ++ ++ ++typedef struct { ++ Elf32_Word vda_name; ++ Elf32_Word vda_next; ++} Elf32_Verdaux; ++ ++typedef struct { ++ Elf64_Word vda_name; ++ Elf64_Word vda_next; ++} Elf64_Verdaux; ++ ++ ++ ++ ++typedef struct { ++ Elf32_Half vn_version; ++ Elf32_Half vn_cnt; ++ Elf32_Word vn_file; ++ Elf32_Word vn_aux; ++ Elf32_Word vn_next; ++} Elf32_Verneed; ++ ++typedef struct { ++ Elf64_Half vn_version; ++ Elf64_Half vn_cnt; ++ Elf64_Word vn_file; ++ Elf64_Word vn_aux; ++ Elf64_Word vn_next; ++} Elf64_Verneed; ++ ++ ++ ++#define VER_NEED_NONE 0 ++#define VER_NEED_CURRENT 1 ++#define VER_NEED_NUM 2 ++ ++ ++ ++typedef struct { ++ Elf32_Word vna_hash; ++ Elf32_Half vna_flags; ++ Elf32_Half vna_other; ++ Elf32_Word vna_name; ++ Elf32_Word vna_next; ++} Elf32_Vernaux; ++ ++typedef struct { ++ Elf64_Word vna_hash; ++ Elf64_Half vna_flags; ++ Elf64_Half vna_other; ++ Elf64_Word vna_name; ++ Elf64_Word vna_next; ++} Elf64_Vernaux; ++ ++ ++ ++#define VER_FLG_WEAK 0x2 ++ ++ ++ ++typedef struct { ++ uint32_t a_type; ++ union { ++ uint32_t a_val; ++ } a_un; ++} Elf32_auxv_t; ++ ++typedef struct { ++ uint64_t a_type; ++ union { ++ uint64_t a_val; ++ } a_un; ++} Elf64_auxv_t; ++ ++ ++ ++#define AT_NULL 0 ++#define AT_IGNORE 1 ++#define AT_EXECFD 2 ++#define AT_PHDR 3 ++#define AT_PHENT 4 ++#define AT_PHNUM 5 ++#define AT_PAGESZ 6 ++#define AT_BASE 7 ++#define AT_FLAGS 8 ++#define AT_ENTRY 9 ++#define AT_NOTELF 10 ++#define AT_UID 11 ++#define AT_EUID 12 ++#define AT_GID 13 ++#define AT_EGID 14 ++#define AT_CLKTCK 17 ++ ++ ++#define AT_PLATFORM 15 ++#define AT_HWCAP 16 ++ ++ ++ ++ ++#define AT_FPUCW 18 ++ ++ ++#define AT_DCACHEBSIZE 19 ++#define AT_ICACHEBSIZE 20 ++#define AT_UCACHEBSIZE 21 ++ ++ ++ ++#define AT_IGNOREPPC 22 ++ ++#define AT_SECURE 23 ++ ++#define AT_BASE_PLATFORM 24 ++ ++#define AT_RANDOM 25 ++ ++#define AT_HWCAP2 26 ++ ++#define AT_EXECFN 31 ++ ++ ++ ++#define AT_SYSINFO 32 ++#define AT_SYSINFO_EHDR 33 ++ ++ ++ ++#define AT_L1I_CACHESHAPE 34 ++#define AT_L1D_CACHESHAPE 35 ++#define AT_L2_CACHESHAPE 36 ++#define AT_L3_CACHESHAPE 37 ++ ++ ++ ++ ++typedef struct { ++ Elf32_Word n_namesz; ++ Elf32_Word n_descsz; ++ Elf32_Word n_type; ++} Elf32_Nhdr; ++ ++typedef struct { ++ Elf64_Word n_namesz; ++ Elf64_Word n_descsz; ++ Elf64_Word n_type; ++} Elf64_Nhdr; ++ ++ ++ ++ ++#define ELF_NOTE_SOLARIS "SUNW Solaris" ++ ++ ++#define ELF_NOTE_GNU "GNU" ++ ++ ++ ++ ++ ++#define ELF_NOTE_PAGESIZE_HINT 1 ++ ++ ++#define NT_GNU_ABI_TAG 1 ++#define ELF_NOTE_ABI NT_GNU_ABI_TAG ++ ++ ++ ++#define ELF_NOTE_OS_LINUX 0 ++#define ELF_NOTE_OS_GNU 1 ++#define ELF_NOTE_OS_SOLARIS2 2 ++#define ELF_NOTE_OS_FREEBSD 3 ++ ++#define NT_GNU_BUILD_ID 3 ++#define NT_GNU_GOLD_VERSION 4 ++ ++ ++ ++typedef struct { ++ Elf32_Xword m_value; ++ Elf32_Word m_info; ++ Elf32_Word m_poffset; ++ Elf32_Half m_repeat; ++ Elf32_Half m_stride; ++} Elf32_Move; ++ ++typedef struct { ++ Elf64_Xword m_value; ++ Elf64_Xword m_info; ++ Elf64_Xword m_poffset; ++ Elf64_Half m_repeat; ++ Elf64_Half m_stride; ++} Elf64_Move; ++ ++ ++#define ELF32_M_SYM(info) ((info) >> 8) ++#define ELF32_M_SIZE(info) ((unsigned char) (info)) ++#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size)) ++ ++#define ELF64_M_SYM(info) ELF32_M_SYM (info) ++#define ELF64_M_SIZE(info) ELF32_M_SIZE (info) ++#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size) ++ ++#define EF_CPU32 0x00810000 ++ ++#define R_68K_NONE 0 ++#define R_68K_32 1 ++#define R_68K_16 2 ++#define R_68K_8 3 ++#define R_68K_PC32 4 ++#define R_68K_PC16 5 ++#define R_68K_PC8 6 ++#define R_68K_GOT32 7 ++#define R_68K_GOT16 8 ++#define R_68K_GOT8 9 ++#define R_68K_GOT32O 10 ++#define R_68K_GOT16O 11 ++#define R_68K_GOT8O 12 ++#define R_68K_PLT32 13 ++#define R_68K_PLT16 14 ++#define R_68K_PLT8 15 ++#define R_68K_PLT32O 16 ++#define R_68K_PLT16O 17 ++#define R_68K_PLT8O 18 ++#define R_68K_COPY 19 ++#define R_68K_GLOB_DAT 20 ++#define R_68K_JMP_SLOT 21 ++#define R_68K_RELATIVE 22 ++#define R_68K_NUM 23 ++ ++#define R_386_NONE 0 ++#define R_386_32 1 ++#define R_386_PC32 2 ++#define R_386_GOT32 3 ++#define R_386_PLT32 4 ++#define R_386_COPY 5 ++#define R_386_GLOB_DAT 6 ++#define R_386_JMP_SLOT 7 ++#define R_386_RELATIVE 8 ++#define R_386_GOTOFF 9 ++#define R_386_GOTPC 10 ++#define R_386_32PLT 11 ++#define R_386_TLS_TPOFF 14 ++#define R_386_TLS_IE 15 ++#define R_386_TLS_GOTIE 16 ++#define R_386_TLS_LE 17 ++#define R_386_TLS_GD 18 ++#define R_386_TLS_LDM 19 ++#define R_386_16 20 ++#define R_386_PC16 21 ++#define R_386_8 22 ++#define R_386_PC8 23 ++#define R_386_TLS_GD_32 24 ++#define R_386_TLS_GD_PUSH 25 ++#define R_386_TLS_GD_CALL 26 ++#define R_386_TLS_GD_POP 27 ++#define R_386_TLS_LDM_32 28 ++#define R_386_TLS_LDM_PUSH 29 ++#define R_386_TLS_LDM_CALL 30 ++#define R_386_TLS_LDM_POP 31 ++#define R_386_TLS_LDO_32 32 ++#define R_386_TLS_IE_32 33 ++#define R_386_TLS_LE_32 34 ++#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 ++#define R_386_IRELATIVE 42 ++#define R_386_NUM 43 ++ ++ ++ ++ ++ ++#define STT_SPARC_REGISTER 13 ++ ++ ++ ++#define EF_SPARCV9_MM 3 ++#define EF_SPARCV9_TSO 0 ++#define EF_SPARCV9_PSO 1 ++#define EF_SPARCV9_RMO 2 ++#define EF_SPARC_LEDATA 0x800000 ++#define EF_SPARC_EXT_MASK 0xFFFF00 ++#define EF_SPARC_32PLUS 0x000100 ++#define EF_SPARC_SUN_US1 0x000200 ++#define EF_SPARC_HAL_R1 0x000400 ++#define EF_SPARC_SUN_US3 0x000800 ++ ++ ++ ++#define R_SPARC_NONE 0 ++#define R_SPARC_8 1 ++#define R_SPARC_16 2 ++#define R_SPARC_32 3 ++#define R_SPARC_DISP8 4 ++#define R_SPARC_DISP16 5 ++#define R_SPARC_DISP32 6 ++#define R_SPARC_WDISP30 7 ++#define R_SPARC_WDISP22 8 ++#define R_SPARC_HI22 9 ++#define R_SPARC_22 10 ++#define R_SPARC_13 11 ++#define R_SPARC_LO10 12 ++#define R_SPARC_GOT10 13 ++#define R_SPARC_GOT13 14 ++#define R_SPARC_GOT22 15 ++#define R_SPARC_PC10 16 ++#define R_SPARC_PC22 17 ++#define R_SPARC_WPLT30 18 ++#define R_SPARC_COPY 19 ++#define R_SPARC_GLOB_DAT 20 ++#define R_SPARC_JMP_SLOT 21 ++#define R_SPARC_RELATIVE 22 ++#define R_SPARC_UA32 23 ++ ++ ++ ++#define R_SPARC_PLT32 24 ++#define R_SPARC_HIPLT22 25 ++#define R_SPARC_LOPLT10 26 ++#define R_SPARC_PCPLT32 27 ++#define R_SPARC_PCPLT22 28 ++#define R_SPARC_PCPLT10 29 ++#define R_SPARC_10 30 ++#define R_SPARC_11 31 ++#define R_SPARC_64 32 ++#define R_SPARC_OLO10 33 ++#define R_SPARC_HH22 34 ++#define R_SPARC_HM10 35 ++#define R_SPARC_LM22 36 ++#define R_SPARC_PC_HH22 37 ++#define R_SPARC_PC_HM10 38 ++#define R_SPARC_PC_LM22 39 ++#define R_SPARC_WDISP16 40 ++#define R_SPARC_WDISP19 41 ++#define R_SPARC_GLOB_JMP 42 ++#define R_SPARC_7 43 ++#define R_SPARC_5 44 ++#define R_SPARC_6 45 ++#define R_SPARC_DISP64 46 ++#define R_SPARC_PLT64 47 ++#define R_SPARC_HIX22 48 ++#define R_SPARC_LOX10 49 ++#define R_SPARC_H44 50 ++#define R_SPARC_M44 51 ++#define R_SPARC_L44 52 ++#define R_SPARC_REGISTER 53 ++#define R_SPARC_UA64 54 ++#define R_SPARC_UA16 55 ++#define R_SPARC_TLS_GD_HI22 56 ++#define R_SPARC_TLS_GD_LO10 57 ++#define R_SPARC_TLS_GD_ADD 58 ++#define R_SPARC_TLS_GD_CALL 59 ++#define R_SPARC_TLS_LDM_HI22 60 ++#define R_SPARC_TLS_LDM_LO10 61 ++#define R_SPARC_TLS_LDM_ADD 62 ++#define R_SPARC_TLS_LDM_CALL 63 ++#define R_SPARC_TLS_LDO_HIX22 64 ++#define R_SPARC_TLS_LDO_LOX10 65 ++#define R_SPARC_TLS_LDO_ADD 66 ++#define R_SPARC_TLS_IE_HI22 67 ++#define R_SPARC_TLS_IE_LO10 68 ++#define R_SPARC_TLS_IE_LD 69 ++#define R_SPARC_TLS_IE_LDX 70 ++#define R_SPARC_TLS_IE_ADD 71 ++#define R_SPARC_TLS_LE_HIX22 72 ++#define R_SPARC_TLS_LE_LOX10 73 ++#define R_SPARC_TLS_DTPMOD32 74 ++#define R_SPARC_TLS_DTPMOD64 75 ++#define R_SPARC_TLS_DTPOFF32 76 ++#define R_SPARC_TLS_DTPOFF64 77 ++#define R_SPARC_TLS_TPOFF32 78 ++#define R_SPARC_TLS_TPOFF64 79 ++#define R_SPARC_GOTDATA_HIX22 80 ++#define R_SPARC_GOTDATA_LOX10 81 ++#define R_SPARC_GOTDATA_OP_HIX22 82 ++#define R_SPARC_GOTDATA_OP_LOX10 83 ++#define R_SPARC_GOTDATA_OP 84 ++#define R_SPARC_H34 85 ++#define R_SPARC_SIZE32 86 ++#define R_SPARC_SIZE64 87 ++#define R_SPARC_GNU_VTINHERIT 250 ++#define R_SPARC_GNU_VTENTRY 251 ++#define R_SPARC_REV32 252 ++ ++#define R_SPARC_NUM 253 ++ ++ ++ ++#define DT_SPARC_REGISTER 0x70000001 ++#define DT_SPARC_NUM 2 ++ ++ ++#define EF_MIPS_NOREORDER 1 ++#define EF_MIPS_PIC 2 ++#define EF_MIPS_CPIC 4 ++#define EF_MIPS_XGOT 8 ++#define EF_MIPS_64BIT_WHIRL 16 ++#define EF_MIPS_ABI2 32 ++#define EF_MIPS_ABI_ON32 64 ++#define EF_MIPS_ARCH 0xf0000000 ++ ++ ++ ++#define EF_MIPS_ARCH_1 0x00000000 ++#define EF_MIPS_ARCH_2 0x10000000 ++#define EF_MIPS_ARCH_3 0x20000000 ++#define EF_MIPS_ARCH_4 0x30000000 ++#define EF_MIPS_ARCH_5 0x40000000 ++#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 ++#define E_MIPS_ARCH_2 0x10000000 ++#define E_MIPS_ARCH_3 0x20000000 ++#define E_MIPS_ARCH_4 0x30000000 ++#define E_MIPS_ARCH_5 0x40000000 ++#define E_MIPS_ARCH_32 0x50000000 ++#define E_MIPS_ARCH_64 0x60000000 ++ ++ ++ ++#define SHN_MIPS_ACOMMON 0xff00 ++#define SHN_MIPS_TEXT 0xff01 ++#define SHN_MIPS_DATA 0xff02 ++#define SHN_MIPS_SCOMMON 0xff03 ++#define SHN_MIPS_SUNDEFINED 0xff04 ++ ++ ++ ++#define SHT_MIPS_LIBLIST 0x70000000 ++#define SHT_MIPS_MSYM 0x70000001 ++#define SHT_MIPS_CONFLICT 0x70000002 ++#define SHT_MIPS_GPTAB 0x70000003 ++#define SHT_MIPS_UCODE 0x70000004 ++#define SHT_MIPS_DEBUG 0x70000005 ++#define SHT_MIPS_REGINFO 0x70000006 ++#define SHT_MIPS_PACKAGE 0x70000007 ++#define SHT_MIPS_PACKSYM 0x70000008 ++#define SHT_MIPS_RELD 0x70000009 ++#define SHT_MIPS_IFACE 0x7000000b ++#define SHT_MIPS_CONTENT 0x7000000c ++#define SHT_MIPS_OPTIONS 0x7000000d ++#define SHT_MIPS_SHDR 0x70000010 ++#define SHT_MIPS_FDESC 0x70000011 ++#define SHT_MIPS_EXTSYM 0x70000012 ++#define SHT_MIPS_DENSE 0x70000013 ++#define SHT_MIPS_PDESC 0x70000014 ++#define SHT_MIPS_LOCSYM 0x70000015 ++#define SHT_MIPS_AUXSYM 0x70000016 ++#define SHT_MIPS_OPTSYM 0x70000017 ++#define SHT_MIPS_LOCSTR 0x70000018 ++#define SHT_MIPS_LINE 0x70000019 ++#define SHT_MIPS_RFDESC 0x7000001a ++#define SHT_MIPS_DELTASYM 0x7000001b ++#define SHT_MIPS_DELTAINST 0x7000001c ++#define SHT_MIPS_DELTACLASS 0x7000001d ++#define SHT_MIPS_DWARF 0x7000001e ++#define SHT_MIPS_DELTADECL 0x7000001f ++#define SHT_MIPS_SYMBOL_LIB 0x70000020 ++#define SHT_MIPS_EVENTS 0x70000021 ++#define SHT_MIPS_TRANSLATE 0x70000022 ++#define SHT_MIPS_PIXIE 0x70000023 ++#define SHT_MIPS_XLATE 0x70000024 ++#define SHT_MIPS_XLATE_DEBUG 0x70000025 ++#define SHT_MIPS_WHIRL 0x70000026 ++#define SHT_MIPS_EH_REGION 0x70000027 ++#define SHT_MIPS_XLATE_OLD 0x70000028 ++#define SHT_MIPS_PDR_EXCEPTION 0x70000029 ++ ++ ++ ++#define SHF_MIPS_GPREL 0x10000000 ++#define SHF_MIPS_MERGE 0x20000000 ++#define SHF_MIPS_ADDR 0x40000000 ++#define SHF_MIPS_STRINGS 0x80000000 ++#define SHF_MIPS_NOSTRIP 0x08000000 ++#define SHF_MIPS_LOCAL 0x04000000 ++#define SHF_MIPS_NAMES 0x02000000 ++#define SHF_MIPS_NODUPE 0x01000000 ++ ++ ++ ++ ++ ++#define STO_MIPS_DEFAULT 0x0 ++#define STO_MIPS_INTERNAL 0x1 ++#define STO_MIPS_HIDDEN 0x2 ++#define STO_MIPS_PROTECTED 0x3 ++#define STO_MIPS_PLT 0x8 ++#define STO_MIPS_SC_ALIGN_UNUSED 0xff ++ ++ ++#define STB_MIPS_SPLIT_COMMON 13 ++ ++ ++ ++typedef union { ++ struct { ++ Elf32_Word gt_current_g_value; ++ Elf32_Word gt_unused; ++ } gt_header; ++ struct { ++ Elf32_Word gt_g_value; ++ Elf32_Word gt_bytes; ++ } gt_entry; ++} Elf32_gptab; ++ ++ ++ ++typedef struct { ++ Elf32_Word ri_gprmask; ++ Elf32_Word ri_cprmask[4]; ++ Elf32_Sword ri_gp_value; ++} Elf32_RegInfo; ++ ++ ++ ++typedef struct { ++ unsigned char kind; ++ ++ unsigned char size; ++ Elf32_Section section; ++ ++ Elf32_Word info; ++} Elf_Options; ++ ++ ++ ++#define ODK_NULL 0 ++#define ODK_REGINFO 1 ++#define ODK_EXCEPTIONS 2 ++#define ODK_PAD 3 ++#define ODK_HWPATCH 4 ++#define ODK_FILL 5 ++#define ODK_TAGS 6 ++#define ODK_HWAND 7 ++#define ODK_HWOR 8 ++ ++ ++ ++#define OEX_FPU_MIN 0x1f ++#define OEX_FPU_MAX 0x1f00 ++#define OEX_PAGE0 0x10000 ++#define OEX_SMM 0x20000 ++#define OEX_FPDBUG 0x40000 ++#define OEX_PRECISEFP OEX_FPDBUG ++#define OEX_DISMISS 0x80000 ++ ++#define OEX_FPU_INVAL 0x10 ++#define OEX_FPU_DIV0 0x08 ++#define OEX_FPU_OFLO 0x04 ++#define OEX_FPU_UFLO 0x02 ++#define OEX_FPU_INEX 0x01 ++ ++ ++ ++#define OHW_R4KEOP 0x1 ++#define OHW_R8KPFETCH 0x2 ++#define OHW_R5KEOP 0x4 ++#define OHW_R5KCVTL 0x8 ++ ++#define OPAD_PREFIX 0x1 ++#define OPAD_POSTFIX 0x2 ++#define OPAD_SYMBOL 0x4 ++ ++ ++ ++typedef struct { ++ Elf32_Word hwp_flags1; ++ Elf32_Word hwp_flags2; ++} Elf_Options_Hw; ++ ++ ++ ++#define OHWA0_R4KEOP_CHECKED 0x00000001 ++#define OHWA1_R4KEOP_CLEAN 0x00000002 ++ ++ ++ ++#define R_MIPS_NONE 0 ++#define R_MIPS_16 1 ++#define R_MIPS_32 2 ++#define R_MIPS_REL32 3 ++#define R_MIPS_26 4 ++#define R_MIPS_HI16 5 ++#define R_MIPS_LO16 6 ++#define R_MIPS_GPREL16 7 ++#define R_MIPS_LITERAL 8 ++#define R_MIPS_GOT16 9 ++#define R_MIPS_PC16 10 ++#define R_MIPS_CALL16 11 ++#define R_MIPS_GPREL32 12 ++ ++#define R_MIPS_SHIFT5 16 ++#define R_MIPS_SHIFT6 17 ++#define R_MIPS_64 18 ++#define R_MIPS_GOT_DISP 19 ++#define R_MIPS_GOT_PAGE 20 ++#define R_MIPS_GOT_OFST 21 ++#define R_MIPS_GOT_HI16 22 ++#define R_MIPS_GOT_LO16 23 ++#define R_MIPS_SUB 24 ++#define R_MIPS_INSERT_A 25 ++#define R_MIPS_INSERT_B 26 ++#define R_MIPS_DELETE 27 ++#define R_MIPS_HIGHER 28 ++#define R_MIPS_HIGHEST 29 ++#define R_MIPS_CALL_HI16 30 ++#define R_MIPS_CALL_LO16 31 ++#define R_MIPS_SCN_DISP 32 ++#define R_MIPS_REL16 33 ++#define R_MIPS_ADD_IMMEDIATE 34 ++#define R_MIPS_PJUMP 35 ++#define R_MIPS_RELGOT 36 ++#define R_MIPS_JALR 37 ++#define R_MIPS_TLS_DTPMOD32 38 ++#define R_MIPS_TLS_DTPREL32 39 ++#define R_MIPS_TLS_DTPMOD64 40 ++#define R_MIPS_TLS_DTPREL64 41 ++#define R_MIPS_TLS_GD 42 ++#define R_MIPS_TLS_LDM 43 ++#define R_MIPS_TLS_DTPREL_HI16 44 ++#define R_MIPS_TLS_DTPREL_LO16 45 ++#define R_MIPS_TLS_GOTTPREL 46 ++#define R_MIPS_TLS_TPREL32 47 ++#define R_MIPS_TLS_TPREL64 48 ++#define R_MIPS_TLS_TPREL_HI16 49 ++#define R_MIPS_TLS_TPREL_LO16 50 ++#define R_MIPS_GLOB_DAT 51 ++#define R_MIPS_COPY 126 ++#define R_MIPS_JUMP_SLOT 127 ++ ++#define R_MIPS_NUM 128 ++ ++ ++ ++#define PT_MIPS_REGINFO 0x70000000 ++#define PT_MIPS_RTPROC 0x70000001 ++#define PT_MIPS_OPTIONS 0x70000002 ++ ++ ++ ++#define PF_MIPS_LOCAL 0x10000000 ++ ++ ++ ++#define DT_MIPS_RLD_VERSION 0x70000001 ++#define DT_MIPS_TIME_STAMP 0x70000002 ++#define DT_MIPS_ICHECKSUM 0x70000003 ++#define DT_MIPS_IVERSION 0x70000004 ++#define DT_MIPS_FLAGS 0x70000005 ++#define DT_MIPS_BASE_ADDRESS 0x70000006 ++#define DT_MIPS_MSYM 0x70000007 ++#define DT_MIPS_CONFLICT 0x70000008 ++#define DT_MIPS_LIBLIST 0x70000009 ++#define DT_MIPS_LOCAL_GOTNO 0x7000000a ++#define DT_MIPS_CONFLICTNO 0x7000000b ++#define DT_MIPS_LIBLISTNO 0x70000010 ++#define DT_MIPS_SYMTABNO 0x70000011 ++#define DT_MIPS_UNREFEXTNO 0x70000012 ++#define DT_MIPS_GOTSYM 0x70000013 ++#define DT_MIPS_HIPAGENO 0x70000014 ++#define DT_MIPS_RLD_MAP 0x70000016 ++#define DT_MIPS_DELTA_CLASS 0x70000017 ++#define DT_MIPS_DELTA_CLASS_NO 0x70000018 ++ ++#define DT_MIPS_DELTA_INSTANCE 0x70000019 ++#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a ++ ++#define DT_MIPS_DELTA_RELOC 0x7000001b ++#define DT_MIPS_DELTA_RELOC_NO 0x7000001c ++ ++#define DT_MIPS_DELTA_SYM 0x7000001d ++ ++#define DT_MIPS_DELTA_SYM_NO 0x7000001e ++ ++#define DT_MIPS_DELTA_CLASSSYM 0x70000020 ++ ++#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 ++ ++#define DT_MIPS_CXX_FLAGS 0x70000022 ++#define DT_MIPS_PIXIE_INIT 0x70000023 ++#define DT_MIPS_SYMBOL_LIB 0x70000024 ++#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025 ++#define DT_MIPS_LOCAL_GOTIDX 0x70000026 ++#define DT_MIPS_HIDDEN_GOTIDX 0x70000027 ++#define DT_MIPS_PROTECTED_GOTIDX 0x70000028 ++#define DT_MIPS_OPTIONS 0x70000029 ++#define DT_MIPS_INTERFACE 0x7000002a ++#define DT_MIPS_DYNSTR_ALIGN 0x7000002b ++#define DT_MIPS_INTERFACE_SIZE 0x7000002c ++#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d ++ ++#define DT_MIPS_PERF_SUFFIX 0x7000002e ++ ++#define DT_MIPS_COMPACT_SIZE 0x7000002f ++#define DT_MIPS_GP_VALUE 0x70000030 ++#define DT_MIPS_AUX_DYNAMIC 0x70000031 ++ ++#define DT_MIPS_PLTGOT 0x70000032 ++ ++#define DT_MIPS_RWPLT 0x70000034 ++#define DT_MIPS_NUM 0x35 ++ ++ ++ ++#define RHF_NONE 0 ++#define RHF_QUICKSTART (1 << 0) ++#define RHF_NOTPOT (1 << 1) ++#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2) ++#define RHF_NO_MOVE (1 << 3) ++#define RHF_SGI_ONLY (1 << 4) ++#define RHF_GUARANTEE_INIT (1 << 5) ++#define RHF_DELTA_C_PLUS_PLUS (1 << 6) ++#define RHF_GUARANTEE_START_INIT (1 << 7) ++#define RHF_PIXIE (1 << 8) ++#define RHF_DEFAULT_DELAY_LOAD (1 << 9) ++#define RHF_REQUICKSTART (1 << 10) ++#define RHF_REQUICKSTARTED (1 << 11) ++#define RHF_CORD (1 << 12) ++#define RHF_NO_UNRES_UNDEF (1 << 13) ++#define RHF_RLD_ORDER_SAFE (1 << 14) ++ ++ ++ ++typedef struct ++{ ++ Elf32_Word l_name; ++ Elf32_Word l_time_stamp; ++ Elf32_Word l_checksum; ++ Elf32_Word l_version; ++ Elf32_Word l_flags; ++} Elf32_Lib; ++ ++typedef struct ++{ ++ Elf64_Word l_name; ++ Elf64_Word l_time_stamp; ++ Elf64_Word l_checksum; ++ Elf64_Word l_version; ++ Elf64_Word l_flags; ++} Elf64_Lib; ++ ++ ++ ++ ++#define LL_NONE 0 ++#define LL_EXACT_MATCH (1 << 0) ++#define LL_IGNORE_INT_VER (1 << 1) ++#define LL_REQUIRE_MINOR (1 << 2) ++#define LL_EXPORTS (1 << 3) ++#define LL_DELAY_LOAD (1 << 4) ++#define LL_DELTA (1 << 5) ++ ++ ++ ++typedef Elf32_Addr Elf32_Conflict; ++ ++ ++ ++ ++ ++ ++#define EF_PARISC_TRAPNIL 0x00010000 ++#define EF_PARISC_EXT 0x00020000 ++#define EF_PARISC_LSB 0x00040000 ++#define EF_PARISC_WIDE 0x00080000 ++#define EF_PARISC_NO_KABP 0x00100000 ++ ++#define EF_PARISC_LAZYSWAP 0x00400000 ++#define EF_PARISC_ARCH 0x0000ffff ++ ++ ++ ++#define EFA_PARISC_1_0 0x020b ++#define EFA_PARISC_1_1 0x0210 ++#define EFA_PARISC_2_0 0x0214 ++ ++ ++ ++#define SHN_PARISC_ANSI_COMMON 0xff00 ++ ++#define SHN_PARISC_HUGE_COMMON 0xff01 ++ ++ ++ ++#define SHT_PARISC_EXT 0x70000000 ++#define SHT_PARISC_UNWIND 0x70000001 ++#define SHT_PARISC_DOC 0x70000002 ++ ++ ++ ++#define SHF_PARISC_SHORT 0x20000000 ++#define SHF_PARISC_HUGE 0x40000000 ++#define SHF_PARISC_SBP 0x80000000 ++ ++ ++ ++#define STT_PARISC_MILLICODE 13 ++ ++#define STT_HP_OPAQUE (STT_LOOS + 0x1) ++#define STT_HP_STUB (STT_LOOS + 0x2) ++ ++ ++ ++#define R_PARISC_NONE 0 ++#define R_PARISC_DIR32 1 ++#define R_PARISC_DIR21L 2 ++#define R_PARISC_DIR17R 3 ++#define R_PARISC_DIR17F 4 ++#define R_PARISC_DIR14R 6 ++#define R_PARISC_PCREL32 9 ++#define R_PARISC_PCREL21L 10 ++#define R_PARISC_PCREL17R 11 ++#define R_PARISC_PCREL17F 12 ++#define R_PARISC_PCREL14R 14 ++#define R_PARISC_DPREL21L 18 ++#define R_PARISC_DPREL14R 22 ++#define R_PARISC_GPREL21L 26 ++#define R_PARISC_GPREL14R 30 ++#define R_PARISC_LTOFF21L 34 ++#define R_PARISC_LTOFF14R 38 ++#define R_PARISC_SECREL32 41 ++#define R_PARISC_SEGBASE 48 ++#define R_PARISC_SEGREL32 49 ++#define R_PARISC_PLTOFF21L 50 ++#define R_PARISC_PLTOFF14R 54 ++#define R_PARISC_LTOFF_FPTR32 57 ++#define R_PARISC_LTOFF_FPTR21L 58 ++#define R_PARISC_LTOFF_FPTR14R 62 ++#define R_PARISC_FPTR64 64 ++#define R_PARISC_PLABEL32 65 ++#define R_PARISC_PLABEL21L 66 ++#define R_PARISC_PLABEL14R 70 ++#define R_PARISC_PCREL64 72 ++#define R_PARISC_PCREL22F 74 ++#define R_PARISC_PCREL14WR 75 ++#define R_PARISC_PCREL14DR 76 ++#define R_PARISC_PCREL16F 77 ++#define R_PARISC_PCREL16WF 78 ++#define R_PARISC_PCREL16DF 79 ++#define R_PARISC_DIR64 80 ++#define R_PARISC_DIR14WR 83 ++#define R_PARISC_DIR14DR 84 ++#define R_PARISC_DIR16F 85 ++#define R_PARISC_DIR16WF 86 ++#define R_PARISC_DIR16DF 87 ++#define R_PARISC_GPREL64 88 ++#define R_PARISC_GPREL14WR 91 ++#define R_PARISC_GPREL14DR 92 ++#define R_PARISC_GPREL16F 93 ++#define R_PARISC_GPREL16WF 94 ++#define R_PARISC_GPREL16DF 95 ++#define R_PARISC_LTOFF64 96 ++#define R_PARISC_LTOFF14WR 99 ++#define R_PARISC_LTOFF14DR 100 ++#define R_PARISC_LTOFF16F 101 ++#define R_PARISC_LTOFF16WF 102 ++#define R_PARISC_LTOFF16DF 103 ++#define R_PARISC_SECREL64 104 ++#define R_PARISC_SEGREL64 112 ++#define R_PARISC_PLTOFF14WR 115 ++#define R_PARISC_PLTOFF14DR 116 ++#define R_PARISC_PLTOFF16F 117 ++#define R_PARISC_PLTOFF16WF 118 ++#define R_PARISC_PLTOFF16DF 119 ++#define R_PARISC_LTOFF_FPTR64 120 ++#define R_PARISC_LTOFF_FPTR14WR 123 ++#define R_PARISC_LTOFF_FPTR14DR 124 ++#define R_PARISC_LTOFF_FPTR16F 125 ++#define R_PARISC_LTOFF_FPTR16WF 126 ++#define R_PARISC_LTOFF_FPTR16DF 127 ++#define R_PARISC_LORESERVE 128 ++#define R_PARISC_COPY 128 ++#define R_PARISC_IPLT 129 ++#define R_PARISC_EPLT 130 ++#define R_PARISC_TPREL32 153 ++#define R_PARISC_TPREL21L 154 ++#define R_PARISC_TPREL14R 158 ++#define R_PARISC_LTOFF_TP21L 162 ++#define R_PARISC_LTOFF_TP14R 166 ++#define R_PARISC_LTOFF_TP14F 167 ++#define R_PARISC_TPREL64 216 ++#define R_PARISC_TPREL14WR 219 ++#define R_PARISC_TPREL14DR 220 ++#define R_PARISC_TPREL16F 221 ++#define R_PARISC_TPREL16WF 222 ++#define R_PARISC_TPREL16DF 223 ++#define R_PARISC_LTOFF_TP64 224 ++#define R_PARISC_LTOFF_TP14WR 227 ++#define R_PARISC_LTOFF_TP14DR 228 ++#define R_PARISC_LTOFF_TP16F 229 ++#define R_PARISC_LTOFF_TP16WF 230 ++#define R_PARISC_LTOFF_TP16DF 231 ++#define R_PARISC_GNU_VTENTRY 232 ++#define R_PARISC_GNU_VTINHERIT 233 ++#define R_PARISC_TLS_GD21L 234 ++#define R_PARISC_TLS_GD14R 235 ++#define R_PARISC_TLS_GDCALL 236 ++#define R_PARISC_TLS_LDM21L 237 ++#define R_PARISC_TLS_LDM14R 238 ++#define R_PARISC_TLS_LDMCALL 239 ++#define R_PARISC_TLS_LDO21L 240 ++#define R_PARISC_TLS_LDO14R 241 ++#define R_PARISC_TLS_DTPMOD32 242 ++#define R_PARISC_TLS_DTPMOD64 243 ++#define R_PARISC_TLS_DTPOFF32 244 ++#define R_PARISC_TLS_DTPOFF64 245 ++#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L ++#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R ++#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L ++#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R ++#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32 ++#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64 ++#define R_PARISC_HIRESERVE 255 ++ ++ ++ ++#define PT_HP_TLS (PT_LOOS + 0x0) ++#define PT_HP_CORE_NONE (PT_LOOS + 0x1) ++#define PT_HP_CORE_VERSION (PT_LOOS + 0x2) ++#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3) ++#define PT_HP_CORE_COMM (PT_LOOS + 0x4) ++#define PT_HP_CORE_PROC (PT_LOOS + 0x5) ++#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6) ++#define PT_HP_CORE_STACK (PT_LOOS + 0x7) ++#define PT_HP_CORE_SHM (PT_LOOS + 0x8) ++#define PT_HP_CORE_MMF (PT_LOOS + 0x9) ++#define PT_HP_PARALLEL (PT_LOOS + 0x10) ++#define PT_HP_FASTBIND (PT_LOOS + 0x11) ++#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12) ++#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13) ++#define PT_HP_STACK (PT_LOOS + 0x14) ++ ++#define PT_PARISC_ARCHEXT 0x70000000 ++#define PT_PARISC_UNWIND 0x70000001 ++ ++ ++ ++#define PF_PARISC_SBP 0x08000000 ++ ++#define PF_HP_PAGE_SIZE 0x00100000 ++#define PF_HP_FAR_SHARED 0x00200000 ++#define PF_HP_NEAR_SHARED 0x00400000 ++#define PF_HP_CODE 0x01000000 ++#define PF_HP_MODIFY 0x02000000 ++#define PF_HP_LAZYSWAP 0x04000000 ++#define PF_HP_SBP 0x08000000 ++ ++ ++ ++ ++ ++ ++#define EF_ALPHA_32BIT 1 ++#define EF_ALPHA_CANRELAX 2 ++ ++ ++ ++ ++#define SHT_ALPHA_DEBUG 0x70000001 ++#define SHT_ALPHA_REGINFO 0x70000002 ++ ++ ++ ++#define SHF_ALPHA_GPREL 0x10000000 ++ ++ ++#define STO_ALPHA_NOPV 0x80 ++#define STO_ALPHA_STD_GPLOAD 0x88 ++ ++ ++ ++#define R_ALPHA_NONE 0 ++#define R_ALPHA_REFLONG 1 ++#define R_ALPHA_REFQUAD 2 ++#define R_ALPHA_GPREL32 3 ++#define R_ALPHA_LITERAL 4 ++#define R_ALPHA_LITUSE 5 ++#define R_ALPHA_GPDISP 6 ++#define R_ALPHA_BRADDR 7 ++#define R_ALPHA_HINT 8 ++#define R_ALPHA_SREL16 9 ++#define R_ALPHA_SREL32 10 ++#define R_ALPHA_SREL64 11 ++#define R_ALPHA_GPRELHIGH 17 ++#define R_ALPHA_GPRELLOW 18 ++#define R_ALPHA_GPREL16 19 ++#define R_ALPHA_COPY 24 ++#define R_ALPHA_GLOB_DAT 25 ++#define R_ALPHA_JMP_SLOT 26 ++#define R_ALPHA_RELATIVE 27 ++#define R_ALPHA_TLS_GD_HI 28 ++#define R_ALPHA_TLSGD 29 ++#define R_ALPHA_TLS_LDM 30 ++#define R_ALPHA_DTPMOD64 31 ++#define R_ALPHA_GOTDTPREL 32 ++#define R_ALPHA_DTPREL64 33 ++#define R_ALPHA_DTPRELHI 34 ++#define R_ALPHA_DTPRELLO 35 ++#define R_ALPHA_DTPREL16 36 ++#define R_ALPHA_GOTTPREL 37 ++#define R_ALPHA_TPREL64 38 ++#define R_ALPHA_TPRELHI 39 ++#define R_ALPHA_TPRELLO 40 ++#define R_ALPHA_TPREL16 41 ++ ++#define R_ALPHA_NUM 46 ++ ++ ++#define LITUSE_ALPHA_ADDR 0 ++#define LITUSE_ALPHA_BASE 1 ++#define LITUSE_ALPHA_BYTOFF 2 ++#define LITUSE_ALPHA_JSR 3 ++#define LITUSE_ALPHA_TLS_GD 4 ++#define LITUSE_ALPHA_TLS_LDM 5 ++ ++ ++#define DT_ALPHA_PLTRO (DT_LOPROC + 0) ++#define DT_ALPHA_NUM 1 ++ ++ ++ ++ ++#define EF_PPC_EMB 0x80000000 ++ ++ ++#define EF_PPC_RELOCATABLE 0x00010000 ++#define EF_PPC_RELOCATABLE_LIB 0x00008000 ++ ++ ++ ++#define R_PPC_NONE 0 ++#define R_PPC_ADDR32 1 ++#define R_PPC_ADDR24 2 ++#define R_PPC_ADDR16 3 ++#define R_PPC_ADDR16_LO 4 ++#define R_PPC_ADDR16_HI 5 ++#define R_PPC_ADDR16_HA 6 ++#define R_PPC_ADDR14 7 ++#define R_PPC_ADDR14_BRTAKEN 8 ++#define R_PPC_ADDR14_BRNTAKEN 9 ++#define R_PPC_REL24 10 ++#define R_PPC_REL14 11 ++#define R_PPC_REL14_BRTAKEN 12 ++#define R_PPC_REL14_BRNTAKEN 13 ++#define R_PPC_GOT16 14 ++#define R_PPC_GOT16_LO 15 ++#define R_PPC_GOT16_HI 16 ++#define R_PPC_GOT16_HA 17 ++#define R_PPC_PLTREL24 18 ++#define R_PPC_COPY 19 ++#define R_PPC_GLOB_DAT 20 ++#define R_PPC_JMP_SLOT 21 ++#define R_PPC_RELATIVE 22 ++#define R_PPC_LOCAL24PC 23 ++#define R_PPC_UADDR32 24 ++#define R_PPC_UADDR16 25 ++#define R_PPC_REL32 26 ++#define R_PPC_PLT32 27 ++#define R_PPC_PLTREL32 28 ++#define R_PPC_PLT16_LO 29 ++#define R_PPC_PLT16_HI 30 ++#define R_PPC_PLT16_HA 31 ++#define R_PPC_SDAREL16 32 ++#define R_PPC_SECTOFF 33 ++#define R_PPC_SECTOFF_LO 34 ++#define R_PPC_SECTOFF_HI 35 ++#define R_PPC_SECTOFF_HA 36 ++ ++ ++#define R_PPC_TLS 67 ++#define R_PPC_DTPMOD32 68 ++#define R_PPC_TPREL16 69 ++#define R_PPC_TPREL16_LO 70 ++#define R_PPC_TPREL16_HI 71 ++#define R_PPC_TPREL16_HA 72 ++#define R_PPC_TPREL32 73 ++#define R_PPC_DTPREL16 74 ++#define R_PPC_DTPREL16_LO 75 ++#define R_PPC_DTPREL16_HI 76 ++#define R_PPC_DTPREL16_HA 77 ++#define R_PPC_DTPREL32 78 ++#define R_PPC_GOT_TLSGD16 79 ++#define R_PPC_GOT_TLSGD16_LO 80 ++#define R_PPC_GOT_TLSGD16_HI 81 ++#define R_PPC_GOT_TLSGD16_HA 82 ++#define R_PPC_GOT_TLSLD16 83 ++#define R_PPC_GOT_TLSLD16_LO 84 ++#define R_PPC_GOT_TLSLD16_HI 85 ++#define R_PPC_GOT_TLSLD16_HA 86 ++#define R_PPC_GOT_TPREL16 87 ++#define R_PPC_GOT_TPREL16_LO 88 ++#define R_PPC_GOT_TPREL16_HI 89 ++#define R_PPC_GOT_TPREL16_HA 90 ++#define R_PPC_GOT_DTPREL16 91 ++#define R_PPC_GOT_DTPREL16_LO 92 ++#define R_PPC_GOT_DTPREL16_HI 93 ++#define R_PPC_GOT_DTPREL16_HA 94 ++ ++ ++ ++#define R_PPC_EMB_NADDR32 101 ++#define R_PPC_EMB_NADDR16 102 ++#define R_PPC_EMB_NADDR16_LO 103 ++#define R_PPC_EMB_NADDR16_HI 104 ++#define R_PPC_EMB_NADDR16_HA 105 ++#define R_PPC_EMB_SDAI16 106 ++#define R_PPC_EMB_SDA2I16 107 ++#define R_PPC_EMB_SDA2REL 108 ++#define R_PPC_EMB_SDA21 109 ++#define R_PPC_EMB_MRKREF 110 ++#define R_PPC_EMB_RELSEC16 111 ++#define R_PPC_EMB_RELST_LO 112 ++#define R_PPC_EMB_RELST_HI 113 ++#define R_PPC_EMB_RELST_HA 114 ++#define R_PPC_EMB_BIT_FLD 115 ++#define R_PPC_EMB_RELSDA 116 ++ ++ ++#define R_PPC_DIAB_SDA21_LO 180 ++#define R_PPC_DIAB_SDA21_HI 181 ++#define R_PPC_DIAB_SDA21_HA 182 ++#define R_PPC_DIAB_RELSDA_LO 183 ++#define R_PPC_DIAB_RELSDA_HI 184 ++#define R_PPC_DIAB_RELSDA_HA 185 ++ ++ ++#define R_PPC_IRELATIVE 248 ++ ++ ++#define R_PPC_REL16 249 ++#define R_PPC_REL16_LO 250 ++#define R_PPC_REL16_HI 251 ++#define R_PPC_REL16_HA 252 ++ ++ ++ ++#define R_PPC_TOC16 255 ++ ++ ++#define DT_PPC_GOT (DT_LOPROC + 0) ++#define DT_PPC_NUM 1 ++ ++ ++#define R_PPC64_NONE R_PPC_NONE ++#define R_PPC64_ADDR32 R_PPC_ADDR32 ++#define R_PPC64_ADDR24 R_PPC_ADDR24 ++#define R_PPC64_ADDR16 R_PPC_ADDR16 ++#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO ++#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI ++#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA ++#define R_PPC64_ADDR14 R_PPC_ADDR14 ++#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN ++#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN ++#define R_PPC64_REL24 R_PPC_REL24 ++#define R_PPC64_REL14 R_PPC_REL14 ++#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN ++#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN ++#define R_PPC64_GOT16 R_PPC_GOT16 ++#define R_PPC64_GOT16_LO R_PPC_GOT16_LO ++#define R_PPC64_GOT16_HI R_PPC_GOT16_HI ++#define R_PPC64_GOT16_HA R_PPC_GOT16_HA ++ ++#define R_PPC64_COPY R_PPC_COPY ++#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT ++#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT ++#define R_PPC64_RELATIVE R_PPC_RELATIVE ++ ++#define R_PPC64_UADDR32 R_PPC_UADDR32 ++#define R_PPC64_UADDR16 R_PPC_UADDR16 ++#define R_PPC64_REL32 R_PPC_REL32 ++#define R_PPC64_PLT32 R_PPC_PLT32 ++#define R_PPC64_PLTREL32 R_PPC_PLTREL32 ++#define R_PPC64_PLT16_LO R_PPC_PLT16_LO ++#define R_PPC64_PLT16_HI R_PPC_PLT16_HI ++#define R_PPC64_PLT16_HA R_PPC_PLT16_HA ++ ++#define R_PPC64_SECTOFF R_PPC_SECTOFF ++#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO ++#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI ++#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA ++#define R_PPC64_ADDR30 37 ++#define R_PPC64_ADDR64 38 ++#define R_PPC64_ADDR16_HIGHER 39 ++#define R_PPC64_ADDR16_HIGHERA 40 ++#define R_PPC64_ADDR16_HIGHEST 41 ++#define R_PPC64_ADDR16_HIGHESTA 42 ++#define R_PPC64_UADDR64 43 ++#define R_PPC64_REL64 44 ++#define R_PPC64_PLT64 45 ++#define R_PPC64_PLTREL64 46 ++#define R_PPC64_TOC16 47 ++#define R_PPC64_TOC16_LO 48 ++#define R_PPC64_TOC16_HI 49 ++#define R_PPC64_TOC16_HA 50 ++#define R_PPC64_TOC 51 ++#define R_PPC64_PLTGOT16 52 ++#define R_PPC64_PLTGOT16_LO 53 ++#define R_PPC64_PLTGOT16_HI 54 ++#define R_PPC64_PLTGOT16_HA 55 ++ ++#define R_PPC64_ADDR16_DS 56 ++#define R_PPC64_ADDR16_LO_DS 57 ++#define R_PPC64_GOT16_DS 58 ++#define R_PPC64_GOT16_LO_DS 59 ++#define R_PPC64_PLT16_LO_DS 60 ++#define R_PPC64_SECTOFF_DS 61 ++#define R_PPC64_SECTOFF_LO_DS 62 ++#define R_PPC64_TOC16_DS 63 ++#define R_PPC64_TOC16_LO_DS 64 ++#define R_PPC64_PLTGOT16_DS 65 ++#define R_PPC64_PLTGOT16_LO_DS 66 ++ ++ ++#define R_PPC64_TLS 67 ++#define R_PPC64_DTPMOD64 68 ++#define R_PPC64_TPREL16 69 ++#define R_PPC64_TPREL16_LO 70 ++#define R_PPC64_TPREL16_HI 71 ++#define R_PPC64_TPREL16_HA 72 ++#define R_PPC64_TPREL64 73 ++#define R_PPC64_DTPREL16 74 ++#define R_PPC64_DTPREL16_LO 75 ++#define R_PPC64_DTPREL16_HI 76 ++#define R_PPC64_DTPREL16_HA 77 ++#define R_PPC64_DTPREL64 78 ++#define R_PPC64_GOT_TLSGD16 79 ++#define R_PPC64_GOT_TLSGD16_LO 80 ++#define R_PPC64_GOT_TLSGD16_HI 81 ++#define R_PPC64_GOT_TLSGD16_HA 82 ++#define R_PPC64_GOT_TLSLD16 83 ++#define R_PPC64_GOT_TLSLD16_LO 84 ++#define R_PPC64_GOT_TLSLD16_HI 85 ++#define R_PPC64_GOT_TLSLD16_HA 86 ++#define R_PPC64_GOT_TPREL16_DS 87 ++#define R_PPC64_GOT_TPREL16_LO_DS 88 ++#define R_PPC64_GOT_TPREL16_HI 89 ++#define R_PPC64_GOT_TPREL16_HA 90 ++#define R_PPC64_GOT_DTPREL16_DS 91 ++#define R_PPC64_GOT_DTPREL16_LO_DS 92 ++#define R_PPC64_GOT_DTPREL16_HI 93 ++#define R_PPC64_GOT_DTPREL16_HA 94 ++#define R_PPC64_TPREL16_DS 95 ++#define R_PPC64_TPREL16_LO_DS 96 ++#define R_PPC64_TPREL16_HIGHER 97 ++#define R_PPC64_TPREL16_HIGHERA 98 ++#define R_PPC64_TPREL16_HIGHEST 99 ++#define R_PPC64_TPREL16_HIGHESTA 100 ++#define R_PPC64_DTPREL16_DS 101 ++#define R_PPC64_DTPREL16_LO_DS 102 ++#define R_PPC64_DTPREL16_HIGHER 103 ++#define R_PPC64_DTPREL16_HIGHERA 104 ++#define R_PPC64_DTPREL16_HIGHEST 105 ++#define R_PPC64_DTPREL16_HIGHESTA 106 ++ ++ ++#define R_PPC64_JMP_IREL 247 ++#define R_PPC64_IRELATIVE 248 ++#define R_PPC64_REL16 249 ++#define R_PPC64_REL16_LO 250 ++#define R_PPC64_REL16_HI 251 ++#define R_PPC64_REL16_HA 252 ++ ++ ++#define DT_PPC64_GLINK (DT_LOPROC + 0) ++#define DT_PPC64_OPD (DT_LOPROC + 1) ++#define DT_PPC64_OPDSZ (DT_LOPROC + 2) ++#define DT_PPC64_NUM 3 ++ ++ ++ ++ ++ ++#define EF_ARM_RELEXEC 0x01 ++#define EF_ARM_HASENTRY 0x02 ++#define EF_ARM_INTERWORK 0x04 ++#define EF_ARM_APCS_26 0x08 ++#define EF_ARM_APCS_FLOAT 0x10 ++#define EF_ARM_PIC 0x20 ++#define EF_ARM_ALIGN8 0x40 ++#define EF_ARM_NEW_ABI 0x80 ++#define EF_ARM_OLD_ABI 0x100 ++#define EF_ARM_SOFT_FLOAT 0x200 ++#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 ++#define EF_ARM_DYNSYMSUSESEGIDX 0x08 ++#define EF_ARM_MAPSYMSFIRST 0x10 ++#define EF_ARM_EABIMASK 0XFF000000 ++ ++ ++#define EF_ARM_BE8 0x00800000 ++#define EF_ARM_LE8 0x00400000 ++ ++#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK) ++#define EF_ARM_EABI_UNKNOWN 0x00000000 ++#define EF_ARM_EABI_VER1 0x01000000 ++#define EF_ARM_EABI_VER2 0x02000000 ++#define EF_ARM_EABI_VER3 0x03000000 ++#define EF_ARM_EABI_VER4 0x04000000 ++#define EF_ARM_EABI_VER5 0x05000000 ++ ++ ++#define STT_ARM_TFUNC STT_LOPROC ++#define STT_ARM_16BIT STT_HIPROC ++ ++ ++#define SHF_ARM_ENTRYSECT 0x10000000 ++#define SHF_ARM_COMDEF 0x80000000 ++ ++ ++ ++#define PF_ARM_SB 0x10000000 ++ ++#define PF_ARM_PI 0x20000000 ++#define PF_ARM_ABS 0x40000000 ++ ++ ++#define PT_ARM_EXIDX (PT_LOPROC + 1) ++ ++ ++#define SHT_ARM_EXIDX (SHT_LOPROC + 1) ++#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) ++#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 ++#define R_ARM_PC24 1 ++#define R_ARM_ABS32 2 ++#define R_ARM_REL32 3 ++#define R_ARM_PC13 4 ++#define R_ARM_ABS16 5 ++#define R_ARM_ABS12 6 ++#define R_ARM_THM_ABS5 7 ++#define R_ARM_ABS8 8 ++#define R_ARM_SBREL32 9 ++#define R_ARM_THM_PC22 10 ++#define R_ARM_THM_PC8 11 ++#define R_ARM_AMP_VCALL9 12 ++#define R_ARM_TLS_DESC 13 ++#define R_ARM_THM_SWI8 14 ++#define R_ARM_XPC25 15 ++#define R_ARM_THM_XPC22 16 ++#define R_ARM_TLS_DTPMOD32 17 ++#define R_ARM_TLS_DTPOFF32 18 ++#define R_ARM_TLS_TPOFF32 19 ++#define R_ARM_COPY 20 ++#define R_ARM_GLOB_DAT 21 ++#define R_ARM_JUMP_SLOT 22 ++#define R_ARM_RELATIVE 23 ++#define R_ARM_GOTOFF 24 ++#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 ++#define R_ARM_THM_PC9 103 ++#define R_ARM_TLS_GD32 104 ++ ++#define R_ARM_TLS_LDM32 105 ++ ++#define R_ARM_TLS_LDO32 106 ++ ++#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 ++#define R_ARM_RREL32 252 ++#define R_ARM_RABS22 253 ++#define R_ARM_RPC24 254 ++#define R_ARM_RBASE 255 ++ ++#define R_ARM_NUM 256 ++ ++ ++ ++ ++#define EF_IA_64_MASKOS 0x0000000f ++#define EF_IA_64_ABI64 0x00000010 ++#define EF_IA_64_ARCH 0xff000000 ++ ++ ++#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) ++#define PT_IA_64_UNWIND (PT_LOPROC + 1) ++#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12) ++#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13) ++#define PT_IA_64_HP_STACK (PT_LOOS + 0x14) ++ ++ ++#define PF_IA_64_NORECOV 0x80000000 ++ ++ ++#define SHT_IA_64_EXT (SHT_LOPROC + 0) ++#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) ++ ++ ++#define SHF_IA_64_SHORT 0x10000000 ++#define SHF_IA_64_NORECOV 0x20000000 ++ ++ ++#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0) ++#define DT_IA_64_NUM 1 ++ ++ ++#define R_IA64_NONE 0x00 ++#define R_IA64_IMM14 0x21 ++#define R_IA64_IMM22 0x22 ++#define R_IA64_IMM64 0x23 ++#define R_IA64_DIR32MSB 0x24 ++#define R_IA64_DIR32LSB 0x25 ++#define R_IA64_DIR64MSB 0x26 ++#define R_IA64_DIR64LSB 0x27 ++#define R_IA64_GPREL22 0x2a ++#define R_IA64_GPREL64I 0x2b ++#define R_IA64_GPREL32MSB 0x2c ++#define R_IA64_GPREL32LSB 0x2d ++#define R_IA64_GPREL64MSB 0x2e ++#define R_IA64_GPREL64LSB 0x2f ++#define R_IA64_LTOFF22 0x32 ++#define R_IA64_LTOFF64I 0x33 ++#define R_IA64_PLTOFF22 0x3a ++#define R_IA64_PLTOFF64I 0x3b ++#define R_IA64_PLTOFF64MSB 0x3e ++#define R_IA64_PLTOFF64LSB 0x3f ++#define R_IA64_FPTR64I 0x43 ++#define R_IA64_FPTR32MSB 0x44 ++#define R_IA64_FPTR32LSB 0x45 ++#define R_IA64_FPTR64MSB 0x46 ++#define R_IA64_FPTR64LSB 0x47 ++#define R_IA64_PCREL60B 0x48 ++#define R_IA64_PCREL21B 0x49 ++#define R_IA64_PCREL21M 0x4a ++#define R_IA64_PCREL21F 0x4b ++#define R_IA64_PCREL32MSB 0x4c ++#define R_IA64_PCREL32LSB 0x4d ++#define R_IA64_PCREL64MSB 0x4e ++#define R_IA64_PCREL64LSB 0x4f ++#define R_IA64_LTOFF_FPTR22 0x52 ++#define R_IA64_LTOFF_FPTR64I 0x53 ++#define R_IA64_LTOFF_FPTR32MSB 0x54 ++#define R_IA64_LTOFF_FPTR32LSB 0x55 ++#define R_IA64_LTOFF_FPTR64MSB 0x56 ++#define R_IA64_LTOFF_FPTR64LSB 0x57 ++#define R_IA64_SEGREL32MSB 0x5c ++#define R_IA64_SEGREL32LSB 0x5d ++#define R_IA64_SEGREL64MSB 0x5e ++#define R_IA64_SEGREL64LSB 0x5f ++#define R_IA64_SECREL32MSB 0x64 ++#define R_IA64_SECREL32LSB 0x65 ++#define R_IA64_SECREL64MSB 0x66 ++#define R_IA64_SECREL64LSB 0x67 ++#define R_IA64_REL32MSB 0x6c ++#define R_IA64_REL32LSB 0x6d ++#define R_IA64_REL64MSB 0x6e ++#define R_IA64_REL64LSB 0x6f ++#define R_IA64_LTV32MSB 0x74 ++#define R_IA64_LTV32LSB 0x75 ++#define R_IA64_LTV64MSB 0x76 ++#define R_IA64_LTV64LSB 0x77 ++#define R_IA64_PCREL21BI 0x79 ++#define R_IA64_PCREL22 0x7a ++#define R_IA64_PCREL64I 0x7b ++#define R_IA64_IPLTMSB 0x80 ++#define R_IA64_IPLTLSB 0x81 ++#define R_IA64_COPY 0x84 ++#define R_IA64_SUB 0x85 ++#define R_IA64_LTOFF22X 0x86 ++#define R_IA64_LDXMOV 0x87 ++#define R_IA64_TPREL14 0x91 ++#define R_IA64_TPREL22 0x92 ++#define R_IA64_TPREL64I 0x93 ++#define R_IA64_TPREL64MSB 0x96 ++#define R_IA64_TPREL64LSB 0x97 ++#define R_IA64_LTOFF_TPREL22 0x9a ++#define R_IA64_DTPMOD64MSB 0xa6 ++#define R_IA64_DTPMOD64LSB 0xa7 ++#define R_IA64_LTOFF_DTPMOD22 0xaa ++#define R_IA64_DTPREL14 0xb1 ++#define R_IA64_DTPREL22 0xb2 ++#define R_IA64_DTPREL64I 0xb3 ++#define R_IA64_DTPREL32MSB 0xb4 ++#define R_IA64_DTPREL32LSB 0xb5 ++#define R_IA64_DTPREL64MSB 0xb6 ++#define R_IA64_DTPREL64LSB 0xb7 ++#define R_IA64_LTOFF_DTPREL22 0xba ++ ++ ++ ++ ++#define R_SH_NONE 0 ++#define R_SH_DIR32 1 ++#define R_SH_REL32 2 ++#define R_SH_DIR8WPN 3 ++#define R_SH_IND12W 4 ++#define R_SH_DIR8WPL 5 ++#define R_SH_DIR8WPZ 6 ++#define R_SH_DIR8BP 7 ++#define R_SH_DIR8W 8 ++#define R_SH_DIR8L 9 ++#define R_SH_SWITCH16 25 ++#define R_SH_SWITCH32 26 ++#define R_SH_USES 27 ++#define R_SH_COUNT 28 ++#define R_SH_ALIGN 29 ++#define R_SH_CODE 30 ++#define R_SH_DATA 31 ++#define R_SH_LABEL 32 ++#define R_SH_SWITCH8 33 ++#define R_SH_GNU_VTINHERIT 34 ++#define R_SH_GNU_VTENTRY 35 ++#define R_SH_TLS_GD_32 144 ++#define R_SH_TLS_LD_32 145 ++#define R_SH_TLS_LDO_32 146 ++#define R_SH_TLS_IE_32 147 ++#define R_SH_TLS_LE_32 148 ++#define R_SH_TLS_DTPMOD32 149 ++#define R_SH_TLS_DTPOFF32 150 ++#define R_SH_TLS_TPOFF32 151 ++#define R_SH_GOT32 160 ++#define R_SH_PLT32 161 ++#define R_SH_COPY 162 ++#define R_SH_GLOB_DAT 163 ++#define R_SH_JMP_SLOT 164 ++#define R_SH_RELATIVE 165 ++#define R_SH_GOTOFF 166 ++#define R_SH_GOTPC 167 ++ ++#define R_SH_NUM 256 ++ ++ ++ ++#define R_390_NONE 0 ++#define R_390_8 1 ++#define R_390_12 2 ++#define R_390_16 3 ++#define R_390_32 4 ++#define R_390_PC32 5 ++#define R_390_GOT12 6 ++#define R_390_GOT32 7 ++#define R_390_PLT32 8 ++#define R_390_COPY 9 ++#define R_390_GLOB_DAT 10 ++#define R_390_JMP_SLOT 11 ++#define R_390_RELATIVE 12 ++#define R_390_GOTOFF32 13 ++#define R_390_GOTPC 14 ++#define R_390_GOT16 15 ++#define R_390_PC16 16 ++#define R_390_PC16DBL 17 ++#define R_390_PLT16DBL 18 ++#define R_390_PC32DBL 19 ++#define R_390_PLT32DBL 20 ++#define R_390_GOTPCDBL 21 ++#define R_390_64 22 ++#define R_390_PC64 23 ++#define R_390_GOT64 24 ++#define R_390_PLT64 25 ++#define R_390_GOTENT 26 ++#define R_390_GOTOFF16 27 ++#define R_390_GOTOFF64 28 ++#define R_390_GOTPLT12 29 ++#define R_390_GOTPLT16 30 ++#define R_390_GOTPLT32 31 ++#define R_390_GOTPLT64 32 ++#define R_390_GOTPLTENT 33 ++#define R_390_PLTOFF16 34 ++#define R_390_PLTOFF32 35 ++#define R_390_PLTOFF64 36 ++#define R_390_TLS_LOAD 37 ++#define R_390_TLS_GDCALL 38 ++ ++#define R_390_TLS_LDCALL 39 ++ ++#define R_390_TLS_GD32 40 ++ ++#define R_390_TLS_GD64 41 ++ ++#define R_390_TLS_GOTIE12 42 ++ ++#define R_390_TLS_GOTIE32 43 ++ ++#define R_390_TLS_GOTIE64 44 ++ ++#define R_390_TLS_LDM32 45 ++ ++#define R_390_TLS_LDM64 46 ++ ++#define R_390_TLS_IE32 47 ++ ++#define R_390_TLS_IE64 48 ++ ++#define R_390_TLS_IEENT 49 ++ ++#define R_390_TLS_LE32 50 ++ ++#define R_390_TLS_LE64 51 ++ ++#define R_390_TLS_LDO32 52 ++ ++#define R_390_TLS_LDO64 53 ++ ++#define R_390_TLS_DTPMOD 54 ++#define R_390_TLS_DTPOFF 55 ++#define R_390_TLS_TPOFF 56 ++ ++#define R_390_20 57 ++#define R_390_GOT20 58 ++#define R_390_GOTPLT20 59 ++#define R_390_TLS_GOTIE20 60 ++ ++ ++#define R_390_NUM 61 ++ ++ ++ ++#define R_CRIS_NONE 0 ++#define R_CRIS_8 1 ++#define R_CRIS_16 2 ++#define R_CRIS_32 3 ++#define R_CRIS_8_PCREL 4 ++#define R_CRIS_16_PCREL 5 ++#define R_CRIS_32_PCREL 6 ++#define R_CRIS_GNU_VTINHERIT 7 ++#define R_CRIS_GNU_VTENTRY 8 ++#define R_CRIS_COPY 9 ++#define R_CRIS_GLOB_DAT 10 ++#define R_CRIS_JUMP_SLOT 11 ++#define R_CRIS_RELATIVE 12 ++#define R_CRIS_16_GOT 13 ++#define R_CRIS_32_GOT 14 ++#define R_CRIS_16_GOTPLT 15 ++#define R_CRIS_32_GOTPLT 16 ++#define R_CRIS_32_GOTREL 17 ++#define R_CRIS_32_PLT_GOTREL 18 ++#define R_CRIS_32_PLT_PCREL 19 ++ ++#define R_CRIS_NUM 20 ++ ++ ++ ++#define R_X86_64_NONE 0 ++#define R_X86_64_64 1 ++#define R_X86_64_PC32 2 ++#define R_X86_64_GOT32 3 ++#define R_X86_64_PLT32 4 ++#define R_X86_64_COPY 5 ++#define R_X86_64_GLOB_DAT 6 ++#define R_X86_64_JUMP_SLOT 7 ++#define R_X86_64_RELATIVE 8 ++#define R_X86_64_GOTPCREL 9 ++ ++#define R_X86_64_32 10 ++#define R_X86_64_32S 11 ++#define R_X86_64_16 12 ++#define R_X86_64_PC16 13 ++#define R_X86_64_8 14 ++#define R_X86_64_PC8 15 ++#define R_X86_64_DTPMOD64 16 ++#define R_X86_64_DTPOFF64 17 ++#define R_X86_64_TPOFF64 18 ++#define R_X86_64_TLSGD 19 ++ ++#define R_X86_64_TLSLD 20 ++ ++#define R_X86_64_DTPOFF32 21 ++#define R_X86_64_GOTTPOFF 22 ++ ++#define R_X86_64_TPOFF32 23 ++#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_RELATIVE64 38 ++#define R_X86_64_NUM 39 ++ ++ ++ ++#define R_MN10300_NONE 0 ++#define R_MN10300_32 1 ++#define R_MN10300_16 2 ++#define R_MN10300_8 3 ++#define R_MN10300_PCREL32 4 ++#define R_MN10300_PCREL16 5 ++#define R_MN10300_PCREL8 6 ++#define R_MN10300_GNU_VTINHERIT 7 ++#define R_MN10300_GNU_VTENTRY 8 ++#define R_MN10300_24 9 ++#define R_MN10300_GOTPC32 10 ++#define R_MN10300_GOTPC16 11 ++#define R_MN10300_GOTOFF32 12 ++#define R_MN10300_GOTOFF24 13 ++#define R_MN10300_GOTOFF16 14 ++#define R_MN10300_PLT32 15 ++#define R_MN10300_PLT16 16 ++#define R_MN10300_GOT32 17 ++#define R_MN10300_GOT24 18 ++#define R_MN10300_GOT16 19 ++#define R_MN10300_COPY 20 ++#define R_MN10300_GLOB_DAT 21 ++#define R_MN10300_JMP_SLOT 22 ++#define R_MN10300_RELATIVE 23 ++ ++#define R_MN10300_NUM 24 ++ ++ ++ ++#define R_M32R_NONE 0 ++#define R_M32R_16 1 ++#define R_M32R_32 2 ++#define R_M32R_24 3 ++#define R_M32R_10_PCREL 4 ++#define R_M32R_18_PCREL 5 ++#define R_M32R_26_PCREL 6 ++#define R_M32R_HI16_ULO 7 ++#define R_M32R_HI16_SLO 8 ++#define R_M32R_LO16 9 ++#define R_M32R_SDA16 10 ++#define R_M32R_GNU_VTINHERIT 11 ++#define R_M32R_GNU_VTENTRY 12 ++ ++#define R_M32R_16_RELA 33 ++#define R_M32R_32_RELA 34 ++#define R_M32R_24_RELA 35 ++#define R_M32R_10_PCREL_RELA 36 ++#define R_M32R_18_PCREL_RELA 37 ++#define R_M32R_26_PCREL_RELA 38 ++#define R_M32R_HI16_ULO_RELA 39 ++#define R_M32R_HI16_SLO_RELA 40 ++#define R_M32R_LO16_RELA 41 ++#define R_M32R_SDA16_RELA 42 ++#define R_M32R_RELA_GNU_VTINHERIT 43 ++#define R_M32R_RELA_GNU_VTENTRY 44 ++#define R_M32R_REL32 45 ++ ++#define R_M32R_GOT24 48 ++#define R_M32R_26_PLTREL 49 ++#define R_M32R_COPY 50 ++#define R_M32R_GLOB_DAT 51 ++#define R_M32R_JMP_SLOT 52 ++#define R_M32R_RELATIVE 53 ++#define R_M32R_GOTOFF 54 ++#define R_M32R_GOTPC24 55 ++#define R_M32R_GOT16_HI_ULO 56 ++ ++#define R_M32R_GOT16_HI_SLO 57 ++ ++#define R_M32R_GOT16_LO 58 ++#define R_M32R_GOTPC_HI_ULO 59 ++ ++#define R_M32R_GOTPC_HI_SLO 60 ++ ++#define R_M32R_GOTPC_LO 61 ++ ++#define R_M32R_GOTOFF_HI_ULO 62 ++ ++#define R_M32R_GOTOFF_HI_SLO 63 ++ ++#define R_M32R_GOTOFF_LO 64 ++#define R_M32R_NUM 256 ++ ++#define R_MICROBLAZE_NONE 0 ++#define R_MICROBLAZE_32 1 ++#define R_MICROBLAZE_32_PCREL 2 ++#define R_MICROBLAZE_64_PCREL 3 ++#define R_MICROBLAZE_32_PCREL_LO 4 ++#define R_MICROBLAZE_64 5 ++#define R_MICROBLAZE_32_LO 6 ++#define R_MICROBLAZE_SRO32 7 ++#define R_MICROBLAZE_SRW32 8 ++#define R_MICROBLAZE_64_NONE 9 ++#define R_MICROBLAZE_32_SYM_OP_SYM 10 ++#define R_MICROBLAZE_GNU_VTINHERIT 11 ++#define R_MICROBLAZE_GNU_VTENTRY 12 ++#define R_MICROBLAZE_GOTPC_64 13 ++#define R_MICROBLAZE_GOT_64 14 ++#define R_MICROBLAZE_PLT_64 15 ++#define R_MICROBLAZE_REL 16 ++#define R_MICROBLAZE_JUMP_SLOT 17 ++#define R_MICROBLAZE_GLOB_DAT 18 ++#define R_MICROBLAZE_GOTOFF_64 19 ++#define R_MICROBLAZE_GOTOFF_32 20 ++#define R_MICROBLAZE_COPY 21 ++#define R_MICROBLAZE_TLS 22 ++#define R_MICROBLAZE_TLSGD 23 ++#define R_MICROBLAZE_TLSLD 24 ++#define R_MICROBLAZE_TLSDTPMOD32 25 ++#define R_MICROBLAZE_TLSDTPREL32 26 ++#define R_MICROBLAZE_TLSDTPREL64 27 ++#define R_MICROBLAZE_TLSGOTTPREL32 28 ++#define R_MICROBLAZE_TLSTPREL32 29 ++ ++#ifdef __cplusplus ++} ++#endif ++ ++ ++#endif diff --git a/toolchain/kernel-headers/patches/3.13.6/sgidefs.patch b/toolchain/kernel-headers/patches/3.13.6/sgidefs.patch new file mode 100644 index 000000000..f00a284d9 --- /dev/null +++ b/toolchain/kernel-headers/patches/3.13.6/sgidefs.patch @@ -0,0 +1,18 @@ +diff -Nur linux-3.11.5.orig/arch/mips/include/uapi/asm/sgidefs.h linux-3.11.5/arch/mips/include/uapi/asm/sgidefs.h +--- linux-3.11.5.orig/arch/mips/include/uapi/asm/sgidefs.h 2013-10-14 03:14:45.000000000 +0200 ++++ linux-3.11.5/arch/mips/include/uapi/asm/sgidefs.h 2013-11-08 22:01:28.000000000 +0100 +@@ -11,14 +11,6 @@ + #define __ASM_SGIDEFS_H + + /* +- * Using a Linux compiler for building Linux seems logic but not to +- * everybody. +- */ +-#ifndef __linux__ +-#error Use a Linux compiler or give up. +-#endif +- +-/* + * Definitions for the ISA levels + * + * With the introduction of MIPS32 / MIPS64 instruction sets definitions diff --git a/toolchain/kernel-headers/patches/3.13.6/sortext.patch b/toolchain/kernel-headers/patches/3.13.6/sortext.patch new file mode 100644 index 000000000..8fd4e1d6b --- /dev/null +++ b/toolchain/kernel-headers/patches/3.13.6/sortext.patch @@ -0,0 +1,33 @@ +diff -Nur linux-3.12.6.orig/arch/arm/Kconfig linux-3.12.6/arch/arm/Kconfig +--- linux-3.12.6.orig/arch/arm/Kconfig 2013-12-20 16:51:33.000000000 +0100 ++++ linux-3.12.6/arch/arm/Kconfig 2013-12-28 19:29:33.000000000 +0100 +@@ -6,7 +6,6 @@ + select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST + select ARCH_HAVE_CUSTOM_GPIO_H + select ARCH_WANT_IPC_PARSE_VERSION +- select BUILDTIME_EXTABLE_SORT if MMU + select CLONE_BACKWARDS + select CPU_PM if (SUSPEND || CPU_IDLE) + select DCACHE_WORD_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && !CPU_BIG_ENDIAN && MMU +diff -Nur linux-3.12.6.orig/arch/mips/Kconfig linux-3.12.6/arch/mips/Kconfig +--- linux-3.12.6.orig/arch/mips/Kconfig 2013-12-20 16:51:33.000000000 +0100 ++++ linux-3.12.6/arch/mips/Kconfig 2013-12-28 19:30:06.000000000 +0100 +@@ -35,7 +35,6 @@ + select HAVE_MEMBLOCK_NODE_MAP + select ARCH_DISCARD_MEMBLOCK + select GENERIC_SMP_IDLE_THREAD +- select BUILDTIME_EXTABLE_SORT + select GENERIC_CLOCKEVENTS + select GENERIC_CMOS_UPDATE + select HAVE_MOD_ARCH_SPECIFIC +diff -Nur linux-3.12.6.orig/arch/x86/Kconfig linux-3.12.6/arch/x86/Kconfig +--- linux-3.12.6.orig/arch/x86/Kconfig 2013-12-20 16:51:33.000000000 +0100 ++++ linux-3.12.6/arch/x86/Kconfig 2013-12-28 19:29:50.000000000 +0100 +@@ -100,7 +100,6 @@ + select GENERIC_SMP_IDLE_THREAD + select ARCH_WANT_IPC_PARSE_VERSION if X86_32 + select HAVE_ARCH_SECCOMP_FILTER +- select BUILDTIME_EXTABLE_SORT + select GENERIC_CMOS_UPDATE + select HAVE_ARCH_SOFT_DIRTY + select CLOCKSOURCE_WATCHDOG -- cgit v1.2.3 From c8494f3862173cff96920247d2f6f0cece271195 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Mon, 10 Mar 2014 18:34:51 +0100 Subject: update musl to latest git --- toolchain/musl/patches/musl-git-20140307.patch | 8282 ----------------------- toolchain/musl/patches/musl-git-20140310.patch | 8432 ++++++++++++++++++++++++ toolchain/musl/patches/xxx-hotfix-sh.patch | 80 - 3 files changed, 8432 insertions(+), 8362 deletions(-) delete mode 100644 toolchain/musl/patches/musl-git-20140307.patch create mode 100644 toolchain/musl/patches/musl-git-20140310.patch delete mode 100644 toolchain/musl/patches/xxx-hotfix-sh.patch (limited to 'toolchain') diff --git a/toolchain/musl/patches/musl-git-20140307.patch b/toolchain/musl/patches/musl-git-20140307.patch deleted file mode 100644 index 0cf790196..000000000 --- a/toolchain/musl/patches/musl-git-20140307.patch +++ /dev/null @@ -1,8282 +0,0 @@ -diff -Nur musl-0.9.15/arch/arm/bits/shm.h musl-git/arch/arm/bits/shm.h ---- musl-0.9.15/arch/arm/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/arm/bits/shm.h 2014-03-07 14:03:57.000000000 +0100 -@@ -16,3 +16,14 @@ - unsigned long __pad1; - unsigned long __pad2; - }; -+ -+struct shminfo { -+ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; -+}; -+ -+struct shm_info { -+ int __used_ids; -+ unsigned long shm_tot, shm_rss, shm_swp; -+ unsigned long __swap_attempts, __swap_successes; -+}; -+ -diff -Nur musl-0.9.15/arch/arm/bits/termios.h musl-git/arch/arm/bits/termios.h ---- musl-0.9.15/arch/arm/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/arm/bits/termios.h 2014-03-07 14:03:57.000000000 +0100 -@@ -42,6 +42,7 @@ - #define IXANY 0004000 - #define IXOFF 0010000 - #define IMAXBEL 0020000 -+#define IUTF8 0040000 - - #define OPOST 0000001 - #define OLCUC 0000002 -@@ -75,9 +76,6 @@ - #define VT0 0000000 - #define VT1 0040000 - --/* ?? */ --#define XTABS 0014000 -- - #define B0 0000000 - #define B50 0000001 - #define B75 0000002 -@@ -125,8 +123,6 @@ - #define HUPCL 0002000 - #define CLOCAL 0004000 - --#define CRTSCTS 020000000000 -- - #define ISIG 0000001 - #define ICANON 0000002 - #define ECHO 0000010 -@@ -137,14 +133,11 @@ - #define TOSTOP 0000400 - #define IEXTEN 0100000 - --/* Extensions? */ --#define CBAUDEX 0010000 - #define ECHOCTL 0001000 - #define ECHOPRT 0002000 - #define ECHOKE 0004000 - #define FLUSHO 0010000 - #define PENDIN 0040000 --#define EXTPROC 0200000 - - #define TCOOFF 0 - #define TCOON 1 -@@ -158,3 +151,10 @@ - #define TCSANOW 0 - #define TCSADRAIN 1 - #define TCSAFLUSH 2 -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define CBAUDEX 0010000 -+#define CRTSCTS 020000000000 -+#define EXTPROC 0200000 -+#define XTABS 0014000 -+#endif -diff -Nur musl-0.9.15/arch/arm/syscall_arch.h musl-git/arch/arm/syscall_arch.h ---- musl-0.9.15/arch/arm/syscall_arch.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/arm/syscall_arch.h 2014-03-07 14:03:57.000000000 +0100 -@@ -3,6 +3,8 @@ - ((union { long long ll; long l[2]; }){ .ll = x }).l[1] - #define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x)) - -+long (__syscall)(long, ...); -+ - #ifndef __clang__ - - #define __asm_syscall(...) do { \ -diff -Nur musl-0.9.15/arch/i386/bits/shm.h musl-git/arch/i386/bits/shm.h ---- musl-0.9.15/arch/i386/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/i386/bits/shm.h 2014-03-07 14:03:57.000000000 +0100 -@@ -16,3 +16,14 @@ - unsigned long __pad1; - unsigned long __pad2; - }; -+ -+struct shminfo { -+ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; -+}; -+ -+struct shm_info { -+ int __used_ids; -+ unsigned long shm_tot, shm_rss, shm_swp; -+ unsigned long __swap_attempts, __swap_successes; -+}; -+ -diff -Nur musl-0.9.15/arch/i386/bits/termios.h musl-git/arch/i386/bits/termios.h ---- musl-0.9.15/arch/i386/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/i386/bits/termios.h 2014-03-07 14:03:57.000000000 +0100 -@@ -42,6 +42,7 @@ - #define IXANY 0004000 - #define IXOFF 0010000 - #define IMAXBEL 0020000 -+#define IUTF8 0040000 - - #define OPOST 0000001 - #define OLCUC 0000002 -@@ -75,9 +76,6 @@ - #define VT0 0000000 - #define VT1 0040000 - --/* ?? */ --#define XTABS 0014000 -- - #define B0 0000000 - #define B50 0000001 - #define B75 0000002 -@@ -125,8 +123,6 @@ - #define HUPCL 0002000 - #define CLOCAL 0004000 - --#define CRTSCTS 020000000000 -- - #define ISIG 0000001 - #define ICANON 0000002 - #define ECHO 0000010 -@@ -137,14 +133,11 @@ - #define TOSTOP 0000400 - #define IEXTEN 0100000 - --/* Extensions? */ --#define CBAUDEX 0010000 - #define ECHOCTL 0001000 - #define ECHOPRT 0002000 - #define ECHOKE 0004000 - #define FLUSHO 0010000 - #define PENDIN 0040000 --#define EXTPROC 0200000 - - #define TCOOFF 0 - #define TCOON 1 -@@ -158,3 +151,10 @@ - #define TCSANOW 0 - #define TCSADRAIN 1 - #define TCSAFLUSH 2 -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define CBAUDEX 0010000 -+#define CRTSCTS 020000000000 -+#define EXTPROC 0200000 -+#define XTABS 0014000 -+#endif -diff -Nur musl-0.9.15/arch/microblaze/bits/shm.h musl-git/arch/microblaze/bits/shm.h ---- musl-0.9.15/arch/microblaze/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/microblaze/bits/shm.h 2014-03-07 14:03:57.000000000 +0100 -@@ -16,3 +16,14 @@ - unsigned long __pad1; - unsigned long __pad2; - }; -+ -+struct shminfo { -+ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; -+}; -+ -+struct shm_info { -+ int __used_ids; -+ unsigned long shm_tot, shm_rss, shm_swp; -+ unsigned long __swap_attempts, __swap_successes; -+}; -+ -diff -Nur musl-0.9.15/arch/microblaze/bits/termios.h musl-git/arch/microblaze/bits/termios.h ---- musl-0.9.15/arch/microblaze/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/microblaze/bits/termios.h 2014-03-07 14:03:57.000000000 +0100 -@@ -42,6 +42,7 @@ - #define IXANY 0004000 - #define IXOFF 0010000 - #define IMAXBEL 0020000 -+#define IUTF8 0040000 - - #define OPOST 0000001 - #define OLCUC 0000002 -@@ -75,9 +76,6 @@ - #define VT0 0000000 - #define VT1 0040000 - --/* ?? */ --#define XTABS 0014000 -- - #define B0 0000000 - #define B50 0000001 - #define B75 0000002 -@@ -125,8 +123,6 @@ - #define HUPCL 0002000 - #define CLOCAL 0004000 - --#define CRTSCTS 020000000000 -- - #define ISIG 0000001 - #define ICANON 0000002 - #define ECHO 0000010 -@@ -137,14 +133,11 @@ - #define TOSTOP 0000400 - #define IEXTEN 0100000 - --/* Extensions? */ --#define CBAUDEX 0010000 - #define ECHOCTL 0001000 - #define ECHOPRT 0002000 - #define ECHOKE 0004000 - #define FLUSHO 0010000 - #define PENDIN 0040000 --#define EXTPROC 0200000 - - #define TCOOFF 0 - #define TCOON 1 -@@ -158,3 +151,10 @@ - #define TCSANOW 0 - #define TCSADRAIN 1 - #define TCSAFLUSH 2 -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define CBAUDEX 0010000 -+#define CRTSCTS 020000000000 -+#define EXTPROC 0200000 -+#define XTABS 0014000 -+#endif -diff -Nur musl-0.9.15/arch/microblaze/syscall_arch.h musl-git/arch/microblaze/syscall_arch.h ---- musl-0.9.15/arch/microblaze/syscall_arch.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/microblaze/syscall_arch.h 2014-03-07 14:03:57.000000000 +0100 -@@ -3,6 +3,8 @@ - ((union { long long ll; long l[2]; }){ .ll = x }).l[1] - #define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x)) - -+long (__syscall)(long, ...); -+ - #ifndef __clang__ - - static __inline long __syscall0(long n) -diff -Nur musl-0.9.15/arch/mips/bits/fenv.h musl-git/arch/mips/bits/fenv.h ---- musl-0.9.15/arch/mips/bits/fenv.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/mips/bits/fenv.h 2014-03-07 14:03:57.000000000 +0100 -@@ -1,3 +1,7 @@ -+#ifdef __mips_soft_float -+#define FE_ALL_EXCEPT 0 -+#define FE_TONEAREST 0 -+#else - #define FE_INEXACT 4 - #define FE_UNDERFLOW 8 - #define FE_OVERFLOW 16 -@@ -10,6 +14,7 @@ - #define FE_TOWARDZERO 1 - #define FE_UPWARD 2 - #define FE_DOWNWARD 3 -+#endif - - typedef unsigned short fexcept_t; - -diff -Nur musl-0.9.15/arch/mips/bits/shm.h musl-git/arch/mips/bits/shm.h ---- musl-0.9.15/arch/mips/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/mips/bits/shm.h 2014-03-07 14:03:57.000000000 +0100 -@@ -13,3 +13,14 @@ - unsigned long __pad1; - unsigned long __pad2; - }; -+ -+struct shminfo { -+ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; -+}; -+ -+struct shm_info { -+ int __used_ids; -+ unsigned long shm_tot, shm_rss, shm_swp; -+ unsigned long __swap_attempts, __swap_successes; -+}; -+ -diff -Nur musl-0.9.15/arch/mips/bits/termios.h musl-git/arch/mips/bits/termios.h ---- musl-0.9.15/arch/mips/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/mips/bits/termios.h 2014-03-07 14:03:57.000000000 +0100 -@@ -77,9 +77,6 @@ - #define VT0 0000000 - #define VT1 0040000 - --/* ?? */ --#define XTABS 0014000 -- - #define B0 0000000 - #define B50 0000001 - #define B75 0000002 -@@ -129,12 +126,6 @@ - #define PARODD 0001000 - #define HUPCL 0002000 - #define CLOCAL 0004000 --#define CBAUDEX 0010000 -- --#define CIBAUD 002003600000 --#define CMSPAR 010000000000 --#define CRTSCTS 020000000000 --#define IBSHIFT 16 - - #define ISIG 0000001 - #define ICANON 0000002 -@@ -152,9 +143,6 @@ - #define PENDIN 0040000 - #define TOSTOP 0100000 - #define ITOSTOP 0100000 --#define EXTPROC 0200000 -- --#define TIOCSER_TEMT 1 - - #define TCOOFF 0 - #define TCOON 1 -@@ -168,3 +156,14 @@ - #define TCSANOW 0 - #define TCSADRAIN 1 - #define TCSAFLUSH 2 -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define CBAUDEX 0010000 -+#define CIBAUD 002003600000 -+#define IBSHIFT 16 -+#define CMSPAR 010000000000 -+#define CRTSCTS 020000000000 -+#define EXTPROC 0200000 -+#define XTABS 0014000 -+#define TIOCSER_TEMT 1 -+#endif -diff -Nur musl-0.9.15/arch/mips/reloc.h musl-git/arch/mips/reloc.h ---- musl-0.9.15/arch/mips/reloc.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/mips/reloc.h 2014-03-07 14:03:57.000000000 +0100 -@@ -8,7 +8,13 @@ - #define ENDIAN_SUFFIX "" - #endif - --#define LDSO_ARCH "mips" ENDIAN_SUFFIX -+#ifdef __mips_soft_float -+#define FP_SUFFIX "-sf" -+#else -+#define FP_SUFFIX "" -+#endif -+ -+#define LDSO_ARCH "mips" ENDIAN_SUFFIX FP_SUFFIX - - #define IS_COPY(x) ((x)==R_MIPS_COPY) - #define IS_PLT(x) 1 -diff -Nur musl-0.9.15/arch/mips/syscall_arch.h musl-git/arch/mips/syscall_arch.h ---- musl-0.9.15/arch/mips/syscall_arch.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/mips/syscall_arch.h 2014-03-07 14:03:57.000000000 +0100 -@@ -3,6 +3,8 @@ - ((union { long long ll; long l[2]; }){ .ll = x }).l[1] - #define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x)) - -+long (__syscall)(long, ...); -+ - #ifndef __clang__ - - #define __asm_syscall(...) do { \ -diff -Nur musl-0.9.15/arch/powerpc/bits/shm.h musl-git/arch/powerpc/bits/shm.h ---- musl-0.9.15/arch/powerpc/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/powerpc/bits/shm.h 2014-03-07 14:03:57.000000000 +0100 -@@ -16,3 +16,14 @@ - unsigned long __pad1; - unsigned long __pad2; - }; -+ -+struct shminfo { -+ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; -+}; -+ -+struct shm_info { -+ int __used_ids; -+ unsigned long shm_tot, shm_rss, shm_swp; -+ unsigned long __swap_attempts, __swap_successes; -+}; -+ -diff -Nur musl-0.9.15/arch/powerpc/bits/termios.h musl-git/arch/powerpc/bits/termios.h ---- musl-0.9.15/arch/powerpc/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/powerpc/bits/termios.h 2014-03-07 14:03:57.000000000 +0100 -@@ -66,7 +66,6 @@ - #define TAB1 00002000 - #define TAB2 00004000 - #define TAB3 00006000 --#define XTABS 00006000 - #define CRDLY 00030000 - #define CR0 00000000 - #define CR1 00010000 -@@ -101,7 +100,6 @@ - #define B38400 0000017 - #define EXTA B19200 - #define EXTB B38400 --#define CBAUDEX 0000000 - #define B57600 00020 - #define B115200 00021 - #define B230400 00022 -@@ -120,9 +118,6 @@ - #define B4000000 00036 - #define BOTHER 00037 - --#define CIBAUD 077600000 --#define IBSHIFT 16 -- - #define CSIZE 00001400 - #define CS5 00000000 - #define CS6 00000400 -@@ -136,8 +131,6 @@ - #define HUPCL 00040000 - - #define CLOCAL 00100000 --#define CMSPAR 010000000000 --#define CRTSCTS 020000000000 - - #define ISIG 0x00000080 - #define ICANON 0x00000100 -@@ -154,7 +147,6 @@ - #define FLUSHO 0x00800000 - #define PENDIN 0x20000000 - #define IEXTEN 0x00000400 --#define EXTPROC 0x10000000 - - #define TCOOFF 0 - #define TCOON 1 -@@ -168,3 +160,13 @@ - #define TCSANOW 0 - #define TCSADRAIN 1 - #define TCSAFLUSH 2 -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define CBAUDEX 0000000 -+#define CIBAUD 077600000 -+#define IBSHIFT 16 -+#define CMSPAR 010000000000 -+#define CRTSCTS 020000000000 -+#define EXTPROC 0x10000000 -+#define XTABS 00006000 -+#endif -diff -Nur musl-0.9.15/arch/sh/atomic.h musl-git/arch/sh/atomic.h ---- musl-0.9.15/arch/sh/atomic.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/atomic.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,87 @@ -+#ifndef _INTERNAL_ATOMIC_H -+#define _INTERNAL_ATOMIC_H -+ -+#include -+ -+static inline int a_ctz_l(unsigned long x) -+{ -+ static const char debruijn32[32] = { -+ 0, 1, 23, 2, 29, 24, 19, 3, 30, 27, 25, 11, 20, 8, 4, 13, -+ 31, 22, 28, 18, 26, 10, 7, 12, 21, 17, 9, 6, 16, 5, 15, 14 -+ }; -+ return debruijn32[(x&-x)*0x076be629 >> 27]; -+} -+ -+static inline int a_ctz_64(uint64_t x) -+{ -+ uint32_t y = x; -+ if (!y) { -+ y = x>>32; -+ return 32 + a_ctz_l(y); -+ } -+ return a_ctz_l(y); -+} -+ -+int __sh_cas(volatile int *, int, int); -+int __sh_swap(volatile int *, int); -+int __sh_fetch_add(volatile int *, int); -+void __sh_store(volatile int *, int); -+void __sh_and(volatile int *, int); -+void __sh_or(volatile int *, int); -+ -+#define a_cas(p,t,s) __sh_cas(p,t,s) -+#define a_swap(x,v) __sh_swap(x,v) -+#define a_fetch_add(x,v) __sh_fetch_add(x, v) -+#define a_store(x,v) __sh_store(x, v) -+#define a_and(x,v) __sh_and(x, v) -+#define a_or(x,v) __sh_or(x, v) -+ -+static inline void *a_cas_p(volatile void *p, void *t, void *s) -+{ -+ return (void *)a_cas(p, (int)t, (int)s); -+} -+ -+static inline long a_cas_l(volatile void *p, long t, long s) -+{ -+ return a_cas(p, t, s); -+} -+ -+static inline void a_inc(volatile int *x) -+{ -+ a_fetch_add(x, 1); -+} -+ -+static inline void a_dec(volatile int *x) -+{ -+ a_fetch_add(x, -1); -+} -+ -+static inline void a_spin() -+{ -+} -+ -+static inline void a_crash() -+{ -+ *(volatile char *)0=0; -+} -+ -+static inline void a_or_l(volatile void *p, long v) -+{ -+ a_or(p, v); -+} -+ -+static inline void a_and_64(volatile uint64_t *p, uint64_t v) -+{ -+ union { uint64_t v; uint32_t r[2]; } u = { v }; -+ a_and((int *)p, u.r[0]); -+ a_and((int *)p+1, u.r[1]); -+} -+ -+static inline void a_or_64(volatile uint64_t *p, uint64_t v) -+{ -+ union { uint64_t v; uint32_t r[2]; } u = { v }; -+ a_or((int *)p, u.r[0]); -+ a_or((int *)p+1, u.r[1]); -+} -+ -+#endif -diff -Nur musl-0.9.15/arch/sh/bits/alltypes.h.in musl-git/arch/sh/bits/alltypes.h.in ---- musl-0.9.15/arch/sh/bits/alltypes.h.in 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/alltypes.h.in 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,23 @@ -+#define _Addr int -+#define _Int64 long long -+#define _Reg int -+ -+TYPEDEF __builtin_va_list va_list; -+TYPEDEF __builtin_va_list __isoc_va_list; -+ -+#ifndef __cplusplus -+TYPEDEF long wchar_t; -+#endif -+TYPEDEF unsigned wint_t; -+ -+TYPEDEF float float_t; -+TYPEDEF double double_t; -+ -+TYPEDEF long time_t; -+TYPEDEF long suseconds_t; -+ -+TYPEDEF struct { union { int __i[9]; unsigned __s[9]; } __u; } pthread_attr_t; -+TYPEDEF struct { union { int __i[6]; void *__p[6]; } __u; } pthread_mutex_t; -+TYPEDEF struct { union { int __i[12]; void *__p[12]; } __u; } pthread_cond_t; -+TYPEDEF struct { union { int __i[8]; void *__p[8]; } __u; } pthread_rwlock_t; -+TYPEDEF struct { union { int __i[5]; void *__p[5]; } __u; } pthread_barrier_t; -diff -Nur musl-0.9.15/arch/sh/bits/endian.h musl-git/arch/sh/bits/endian.h ---- musl-0.9.15/arch/sh/bits/endian.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/endian.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,5 @@ -+#if __BIG_ENDIAN__ -+#define __BYTE_ORDER __BIG_ENDIAN -+#else -+#define __BYTE_ORDER __LITTLE_ENDIAN -+#endif -diff -Nur musl-0.9.15/arch/sh/bits/errno.h musl-git/arch/sh/bits/errno.h ---- musl-0.9.15/arch/sh/bits/errno.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/errno.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,134 @@ -+#define EPERM 1 -+#define ENOENT 2 -+#define ESRCH 3 -+#define EINTR 4 -+#define EIO 5 -+#define ENXIO 6 -+#define E2BIG 7 -+#define ENOEXEC 8 -+#define EBADF 9 -+#define ECHILD 10 -+#define EAGAIN 11 -+#define ENOMEM 12 -+#define EACCES 13 -+#define EFAULT 14 -+#define ENOTBLK 15 -+#define EBUSY 16 -+#define EEXIST 17 -+#define EXDEV 18 -+#define ENODEV 19 -+#define ENOTDIR 20 -+#define EISDIR 21 -+#define EINVAL 22 -+#define ENFILE 23 -+#define EMFILE 24 -+#define ENOTTY 25 -+#define ETXTBSY 26 -+#define EFBIG 27 -+#define ENOSPC 28 -+#define ESPIPE 29 -+#define EROFS 30 -+#define EMLINK 31 -+#define EPIPE 32 -+#define EDOM 33 -+#define ERANGE 34 -+#define EDEADLK 35 -+#define ENAMETOOLONG 36 -+#define ENOLCK 37 -+#define ENOSYS 38 -+#define ENOTEMPTY 39 -+#define ELOOP 40 -+#define EWOULDBLOCK EAGAIN -+#define ENOMSG 42 -+#define EIDRM 43 -+#define ECHRNG 44 -+#define EL2NSYNC 45 -+#define EL3HLT 46 -+#define EL3RST 47 -+#define ELNRNG 48 -+#define EUNATCH 49 -+#define ENOCSI 50 -+#define EL2HLT 51 -+#define EBADE 52 -+#define EBADR 53 -+#define EXFULL 54 -+#define ENOANO 55 -+#define EBADRQC 56 -+#define EBADSLT 57 -+#define EDEADLOCK EDEADLK -+#define EBFONT 59 -+#define ENOSTR 60 -+#define ENODATA 61 -+#define ETIME 62 -+#define ENOSR 63 -+#define ENONET 64 -+#define ENOPKG 65 -+#define EREMOTE 66 -+#define ENOLINK 67 -+#define EADV 68 -+#define ESRMNT 69 -+#define ECOMM 70 -+#define EPROTO 71 -+#define EMULTIHOP 72 -+#define EDOTDOT 73 -+#define EBADMSG 74 -+#define EOVERFLOW 75 -+#define ENOTUNIQ 76 -+#define EBADFD 77 -+#define EREMCHG 78 -+#define ELIBACC 79 -+#define ELIBBAD 80 -+#define ELIBSCN 81 -+#define ELIBMAX 82 -+#define ELIBEXEC 83 -+#define EILSEQ 84 -+#define ERESTART 85 -+#define ESTRPIPE 86 -+#define EUSERS 87 -+#define ENOTSOCK 88 -+#define EDESTADDRREQ 89 -+#define EMSGSIZE 90 -+#define EPROTOTYPE 91 -+#define ENOPROTOOPT 92 -+#define EPROTONOSUPPORT 93 -+#define ESOCKTNOSUPPORT 94 -+#define EOPNOTSUPP 95 -+#define ENOTSUP EOPNOTSUPP -+#define EPFNOSUPPORT 96 -+#define EAFNOSUPPORT 97 -+#define EADDRINUSE 98 -+#define EADDRNOTAVAIL 99 -+#define ENETDOWN 100 -+#define ENETUNREACH 101 -+#define ENETRESET 102 -+#define ECONNABORTED 103 -+#define ECONNRESET 104 -+#define ENOBUFS 105 -+#define EISCONN 106 -+#define ENOTCONN 107 -+#define ESHUTDOWN 108 -+#define ETOOMANYREFS 109 -+#define ETIMEDOUT 110 -+#define ECONNREFUSED 111 -+#define EHOSTDOWN 112 -+#define EHOSTUNREACH 113 -+#define EALREADY 114 -+#define EINPROGRESS 115 -+#define ESTALE 116 -+#define EUCLEAN 117 -+#define ENOTNAM 118 -+#define ENAVAIL 119 -+#define EISNAM 120 -+#define EREMOTEIO 121 -+#define EDQUOT 122 -+#define ENOMEDIUM 123 -+#define EMEDIUMTYPE 124 -+#define ECANCELED 125 -+#define ENOKEY 126 -+#define EKEYEXPIRED 127 -+#define EKEYREVOKED 128 -+#define EKEYREJECTED 129 -+#define EOWNERDEAD 130 -+#define ENOTRECOVERABLE 131 -+#define ERFKILL 132 -+#define EHWPOISON 133 -diff -Nur musl-0.9.15/arch/sh/bits/fcntl.h musl-git/arch/sh/bits/fcntl.h ---- musl-0.9.15/arch/sh/bits/fcntl.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/fcntl.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,39 @@ -+#define O_CREAT 0100 -+#define O_EXCL 0200 -+#define O_NOCTTY 0400 -+#define O_TRUNC 01000 -+#define O_APPEND 02000 -+#define O_NONBLOCK 04000 -+#define O_DSYNC 010000 -+#define O_SYNC 04010000 -+#define O_RSYNC 04010000 -+#define O_DIRECTORY 0200000 -+#define O_NOFOLLOW 0400000 -+#define O_CLOEXEC 02000000 -+ -+#define O_ASYNC 020000 -+#define O_DIRECT 040000 -+#define O_LARGEFILE 0100000 -+#define O_NOATIME 01000000 -+#define O_TMPFILE 020200000 -+#define O_NDELAY O_NONBLOCK -+ -+#define F_DUPFD 0 -+#define F_GETFD 1 -+#define F_SETFD 2 -+#define F_GETFL 3 -+#define F_SETFL 4 -+ -+#define F_SETOWN 8 -+#define F_GETOWN 9 -+#define F_SETSIG 10 -+#define F_GETSIG 11 -+ -+#define F_GETLK 12 -+#define F_SETLK 13 -+#define F_SETLKW 14 -+ -+#define F_SETOWN_EX 15 -+#define F_GETOWN_EX 16 -+ -+#define F_GETOWNER_UIDS 17 -diff -Nur musl-0.9.15/arch/sh/bits/fenv.h musl-git/arch/sh/bits/fenv.h ---- musl-0.9.15/arch/sh/bits/fenv.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/fenv.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,26 @@ -+#ifndef __SH_FPU_ANY__ -+ -+#define FE_ALL_EXCEPT 0 -+#define FE_TONEAREST 0 -+ -+#else -+ -+#define FE_TONEAREST 0 -+#define FE_TOWARDZERO 1 -+ -+#define FE_INEXACT 0x04 -+#define FE_UNDERFLOW 0x08 -+#define FE_OVERFLOW 0x10 -+#define FE_DIVBYZERO 0x20 -+#define FE_INVALID 0x40 -+#define FE_ALL_EXCEPT 0x7c -+ -+#endif -+ -+typedef unsigned long fexcept_t; -+ -+typedef struct { -+ unsigned long __cw; -+} fenv_t; -+ -+#define FE_DFL_ENV ((const fenv_t *) -1) -diff -Nur musl-0.9.15/arch/sh/bits/float.h musl-git/arch/sh/bits/float.h ---- musl-0.9.15/arch/sh/bits/float.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/float.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,17 @@ -+#define FLT_ROUNDS 1 -+#define FLT_EVAL_METHOD 0 -+ -+#define LDBL_TRUE_MIN 4.94065645841246544177e-324L -+#define LDBL_MIN 2.22507385850720138309e-308L -+#define LDBL_MAX 1.79769313486231570815e+308L -+#define LDBL_EPSILON 2.22044604925031308085e-16L -+ -+#define LDBL_MANT_DIG 53 -+#define LDBL_MIN_EXP (-1021) -+#define LDBL_MAX_EXP 1024 -+ -+#define LDBL_DIG 15 -+#define LDBL_MIN_10_EXP (-307) -+#define LDBL_MAX_10_EXP 308 -+ -+#define DECIMAL_DIG 17 -diff -Nur musl-0.9.15/arch/sh/bits/ioctl.h musl-git/arch/sh/bits/ioctl.h ---- musl-0.9.15/arch/sh/bits/ioctl.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/ioctl.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,205 @@ -+#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) ) -+#define _IOC_NONE 0U -+#define _IOC_WRITE 1U -+#define _IOC_READ 2U -+ -+#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0) -+#define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c)) -+#define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c)) -+#define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c)) -+ -+#define FIOCLEX _IO('f', 1) -+#define FIONCLEX _IO('f', 2) -+#define FIOASYNC _IOW('f', 125, int) -+#define FIONBIO _IOW('f', 126, int) -+#define FIONREAD _IOR('f', 127, int) -+#define TIOCINQ FIONREAD -+#define FIOQSIZE _IOR('f', 128, char[8]) -+ -+#define TCGETA _IOR('t', 23, char[18]) -+#define TCSETA _IOW('t', 24, char[18]) -+#define TCSETAW _IOW('t', 25, char[18]) -+#define TCSETAF _IOW('t', 28, char[18]) -+ -+#define TCSBRK _IO('t', 29) -+#define TCXONC _IO('t', 30) -+#define TCFLSH _IO('t', 31) -+ -+#define TIOCSWINSZ _IOW('t', 103, char[8]) -+#define TIOCGWINSZ _IOR('t', 104, char[8]) -+#define TIOCSTART _IO('t', 110) -+#define TIOCSTOP _IO('t', 111) -+#define TIOCOUTQ _IOR('t', 115, int) -+ -+#define TIOCSPGRP _IOW('t', 118, int) -+#define TIOCGPGRP _IOR('t', 119, int) -+ -+#define TIOCEXCL _IO('T', 12) -+#define TIOCNXCL _IO('T', 13) -+#define TIOCSCTTY _IO('T', 14) -+ -+#define TIOCSTI _IOW('T', 18, char) -+#define TIOCMGET _IOR('T', 21, unsigned int) -+#define TIOCMBIS _IOW('T', 22, unsigned int) -+#define TIOCMBIC _IOW('T', 23, unsigned int) -+#define TIOCMSET _IOW('T', 24, unsigned int) -+#define TIOCM_LE 0x001 -+#define TIOCM_DTR 0x002 -+#define TIOCM_RTS 0x004 -+#define TIOCM_ST 0x008 -+#define TIOCM_SR 0x010 -+#define TIOCM_CTS 0x020 -+#define TIOCM_CAR 0x040 -+#define TIOCM_RNG 0x080 -+#define TIOCM_DSR 0x100 -+#define TIOCM_CD TIOCM_CAR -+#define TIOCM_RI TIOCM_RNG -+#define TIOCM_OUT1 0x2000 -+#define TIOCM_OUT2 0x4000 -+#define TIOCM_LOOP 0x8000 -+ -+#define TIOCGSOFTCAR _IOR('T', 25, unsigned int) -+#define TIOCSSOFTCAR _IOW('T', 26, unsigned int) -+#define TIOCLINUX _IOW('T', 28, char) -+#define TIOCCONS _IO('T', 29) -+#define TIOCGSERIAL _IOR('T', 30, char[60]) -+#define TIOCSSERIAL _IOW('T', 31, char[60]) -+#define TIOCPKT _IOW('T', 32, int) -+#define TIOCPKT_DATA 0 -+#define TIOCPKT_FLUSHREAD 1 -+#define TIOCPKT_FLUSHWRITE 2 -+#define TIOCPKT_STOP 4 -+#define TIOCPKT_START 8 -+#define TIOCPKT_NOSTOP 16 -+#define TIOCPKT_DOSTOP 32 -+#define TIOCPKT_IOCTL 64 -+ -+#define TIOCNOTTY _IO('T', 34) -+#define TIOCSETD _IOW('T', 35, int) -+#define TIOCGETD _IOR('T', 36, int) -+#define TCSBRKP _IOW('T', 37, int) -+#define TIOCSBRK _IO('T', 39) -+#define TIOCCBRK _IO('T', 40) -+#define TIOCGSID _IOR('T', 41, int) -+#define TCGETS _IOR('T', 42, char[44]) -+#define TCSETS _IOW('T', 43, char[44]) -+#define TCSETSW _IOW('T', 44, char[44]) -+#define TCSETSF _IOW('T', 45, char[44]) -+#define TIOCGPTN _IOR('T', 48, unsigned int) -+#define TIOCSPTLCK _IOW('T', 49, int) -+#define TIOCGDEV _IOR('T', 50, unsigned int) -+#define TIOCSIG _IOW('T', 54, int) -+#define TIOCVHANGUP _IO('T', 55) -+#define TIOCGPKT _IOR('T', 56, int) -+#define TIOCGPTLCK _IOR('T', 57, int) -+#define TIOCGEXCL _IOR('T', 64, int) -+ -+#define TIOCSERCONFIG _IO('T', 83) -+#define TIOCSERGWILD _IOR('T', 84, int) -+#define TIOCSERSWILD _IOW('T', 85, int) -+#define TIOCGLCKTRMIOS _IO('T', 86) -+#define TIOCSLCKTRMIOS _IO('T', 87) -+#define TIOCSERGSTRUCT _IOR('T', 88, char[216]) -+#define TIOCSERGETLSR _IOR('T', 89, unsigned int) -+#define TIOCSER_TEMT 0x01 -+#define TIOCSERGETMULTI _IOR('T', 90, char[168]) -+#define TIOCSERSETMULTI _IOW('T', 91, char[168]) -+ -+#define TIOCMIWAIT _IO('T', 92) -+#define TIOCGICOUNT _IO('T', 93) -+ -+struct winsize { -+ unsigned short ws_row; -+ unsigned short ws_col; -+ unsigned short ws_xpixel; -+ unsigned short ws_ypixel; -+}; -+ -+#define TIOCM_MODEM_BITS TIOCM_OUT2 -+ -+#define N_TTY 0 -+#define N_SLIP 1 -+#define N_MOUSE 2 -+#define N_PPP 3 -+#define N_STRIP 4 -+#define N_AX25 5 -+#define N_X25 6 -+#define N_6PACK 7 -+#define N_MASC 8 -+#define N_R3964 9 -+#define N_PROFIBUS_FDL 10 -+#define N_IRDA 11 -+#define N_SMSBLOCK 12 -+#define N_HDLC 13 -+#define N_SYNC_PPP 14 -+#define N_HCI 15 -+ -+#define FIOGETOWN _IOR('f', 123, int) -+#define FIOSETOWN _IOW('f', 124, int) -+ -+#define SIOCATMARK _IOR('s', 7, int) -+#define SIOCSPGRP _IOW('s', 8, int) -+#define SIOCGPGRP _IOW('s', 9, int) -+#define SIOCGSTAMP _IOR('s', 100, char[8]) -+ -+#define SIOCADDRT 0x890B -+#define SIOCDELRT 0x890C -+#define SIOCRTMSG 0x890D -+ -+#define SIOCGIFNAME 0x8910 -+#define SIOCSIFLINK 0x8911 -+#define SIOCGIFCONF 0x8912 -+#define SIOCGIFFLAGS 0x8913 -+#define SIOCSIFFLAGS 0x8914 -+#define SIOCGIFADDR 0x8915 -+#define SIOCSIFADDR 0x8916 -+#define SIOCGIFDSTADDR 0x8917 -+#define SIOCSIFDSTADDR 0x8918 -+#define SIOCGIFBRDADDR 0x8919 -+#define SIOCSIFBRDADDR 0x891a -+#define SIOCGIFNETMASK 0x891b -+#define SIOCSIFNETMASK 0x891c -+#define SIOCGIFMETRIC 0x891d -+#define SIOCSIFMETRIC 0x891e -+#define SIOCGIFMEM 0x891f -+#define SIOCSIFMEM 0x8920 -+#define SIOCGIFMTU 0x8921 -+#define SIOCSIFMTU 0x8922 -+#define SIOCSIFHWADDR 0x8924 -+#define SIOCGIFENCAP 0x8925 -+#define SIOCSIFENCAP 0x8926 -+#define SIOCGIFHWADDR 0x8927 -+#define SIOCGIFSLAVE 0x8929 -+#define SIOCSIFSLAVE 0x8930 -+#define SIOCADDMULTI 0x8931 -+#define SIOCDELMULTI 0x8932 -+#define SIOCGIFINDEX 0x8933 -+#define SIOGIFINDEX SIOCGIFINDEX -+#define SIOCSIFPFLAGS 0x8934 -+#define SIOCGIFPFLAGS 0x8935 -+#define SIOCDIFADDR 0x8936 -+#define SIOCSIFHWBROADCAST 0x8937 -+#define SIOCGIFCOUNT 0x8938 -+ -+#define SIOCGIFBR 0x8940 -+#define SIOCSIFBR 0x8941 -+ -+#define SIOCGIFTXQLEN 0x8942 -+#define SIOCSIFTXQLEN 0x8943 -+ -+#define SIOCDARP 0x8953 -+#define SIOCGARP 0x8954 -+#define SIOCSARP 0x8955 -+ -+#define SIOCDRARP 0x8960 -+#define SIOCGRARP 0x8961 -+#define SIOCSRARP 0x8962 -+ -+#define SIOCGIFMAP 0x8970 -+#define SIOCSIFMAP 0x8971 -+ -+#define SIOCADDDLCI 0x8980 -+#define SIOCDELDLCI 0x8981 -+ -+#define SIOCDEVPRIVATE 0x89F0 -+#define SIOCPROTOPRIVATE 0x89E0 -diff -Nur musl-0.9.15/arch/sh/bits/ipc.h musl-git/arch/sh/bits/ipc.h ---- musl-0.9.15/arch/sh/bits/ipc.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/ipc.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,14 @@ -+struct ipc_perm -+{ -+ key_t __ipc_perm_key; -+ uid_t uid; -+ gid_t gid; -+ uid_t cuid; -+ gid_t cgid; -+ mode_t mode; -+ int __ipc_perm_seq; -+ long __pad1; -+ long __pad2; -+}; -+ -+#define IPC_64 0x100 -diff -Nur musl-0.9.15/arch/sh/bits/limits.h musl-git/arch/sh/bits/limits.h ---- musl-0.9.15/arch/sh/bits/limits.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/limits.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,8 @@ -+#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 -+ -+#define LONG_MAX 0x7fffffffL -+#define LLONG_MAX 0x7fffffffffffffffLL -diff -Nur musl-0.9.15/arch/sh/bits/mman.h musl-git/arch/sh/bits/mman.h ---- musl-0.9.15/arch/sh/bits/mman.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/mman.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,62 @@ -+#define MAP_FAILED ((void *) -1) -+ -+#define PROT_NONE 0 -+#define PROT_READ 1 -+#define PROT_WRITE 2 -+#define PROT_EXEC 4 -+#define PROT_GROWSDOWN 0x01000000 -+#define PROT_GROWSUP 0x02000000 -+ -+#define MAP_SHARED 0x01 -+#define MAP_PRIVATE 0x02 -+#define MAP_FIXED 0x10 -+ -+#define MAP_TYPE 0x0f -+#define MAP_FILE 0x00 -+#define MAP_ANON 0x20 -+#define MAP_ANONYMOUS MAP_ANON -+#define MAP_32BIT 0x40 -+#define MAP_NORESERVE 0x4000 -+#define MAP_GROWSDOWN 0x0100 -+#define MAP_DENYWRITE 0x0800 -+#define MAP_EXECUTABLE 0x1000 -+#define MAP_LOCKED 0x2000 -+#define MAP_POPULATE 0x8000 -+#define MAP_NONBLOCK 0x10000 -+#define MAP_STACK 0x20000 -+#define MAP_HUGETLB 0x40000 -+ -+#define POSIX_MADV_NORMAL 0 -+#define POSIX_MADV_RANDOM 1 -+#define POSIX_MADV_SEQUENTIAL 2 -+#define POSIX_MADV_WILLNEED 3 -+#define POSIX_MADV_DONTNEED 4 -+ -+#define MS_ASYNC 1 -+#define MS_INVALIDATE 2 -+#define MS_SYNC 4 -+ -+#define MCL_CURRENT 1 -+#define MCL_FUTURE 2 -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define MADV_NORMAL 0 -+#define MADV_RANDOM 1 -+#define MADV_SEQUENTIAL 2 -+#define MADV_WILLNEED 3 -+#define MADV_DONTNEED 4 -+#define MADV_REMOVE 9 -+#define MADV_DONTFORK 10 -+#define MADV_DOFORK 11 -+#define MADV_MERGEABLE 12 -+#define MADV_UNMERGEABLE 13 -+#define MADV_HUGEPAGE 14 -+#define MADV_NOHUGEPAGE 15 -+#define MADV_DONTDUMP 16 -+#define MADV_DODUMP 17 -+#define MADV_HWPOISON 100 -+#define MADV_SOFT_OFFLINE 101 -+ -+#define MREMAP_MAYMOVE 1 -+#define MREMAP_FIXED 2 -+#endif -diff -Nur musl-0.9.15/arch/sh/bits/msg.h musl-git/arch/sh/bits/msg.h ---- musl-0.9.15/arch/sh/bits/msg.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/msg.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,16 @@ -+struct msqid_ds -+{ -+ struct ipc_perm msg_perm; -+ time_t msg_stime; -+ int __unused1; -+ time_t msg_rtime; -+ int __unused2; -+ time_t msg_ctime; -+ int __unused3; -+ unsigned long msg_cbytes; -+ msgqnum_t msg_qnum; -+ msglen_t msg_qbytes; -+ pid_t msg_lspid; -+ pid_t msg_lrpid; -+ unsigned long __unused[2]; -+}; -diff -Nur musl-0.9.15/arch/sh/bits/posix.h musl-git/arch/sh/bits/posix.h ---- musl-0.9.15/arch/sh/bits/posix.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/posix.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,2 @@ -+#define _POSIX_V6_ILP32_OFFBIG 1 -+#define _POSIX_V7_ILP32_OFFBIG 1 -diff -Nur musl-0.9.15/arch/sh/bits/setjmp.h musl-git/arch/sh/bits/setjmp.h ---- musl-0.9.15/arch/sh/bits/setjmp.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/setjmp.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1 @@ -+typedef unsigned long __jmp_buf[13]; -diff -Nur musl-0.9.15/arch/sh/bits/shm.h musl-git/arch/sh/bits/shm.h ---- musl-0.9.15/arch/sh/bits/shm.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/shm.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,28 @@ -+#define SHMLBA 16384 -+ -+struct shmid_ds -+{ -+ 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; -+ unsigned long __pad1; -+ unsigned long __pad2; -+}; -+ -+struct shminfo { -+ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; -+}; -+ -+struct shm_info { -+ int __used_ids; -+ unsigned long shm_tot, shm_rss, shm_swp; -+ unsigned long __swap_attempts, __swap_successes; -+}; -diff -Nur musl-0.9.15/arch/sh/bits/signal.h musl-git/arch/sh/bits/signal.h ---- musl-0.9.15/arch/sh/bits/signal.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/signal.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,76 @@ -+#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ -+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+typedef int greg_t, gregset_t[16]; -+typedef int freg_t, fpregset_t[16]; -+typedef struct sigcontext { -+ unsigned long oldmask; -+ unsigned long sc_regs[16]; -+ unsigned long sc_pc, sc_pr, sc_sr; -+ unsigned long sc_gbr, sc_mach, sc_macl; -+ unsigned long sc_fpregs[16]; -+ unsigned long sc_xfpregs[16]; -+ unsigned int sc_fpscr, sc_fpul, sc_ownedfp; -+} mcontext_t; -+#else -+typedef struct { -+ unsigned long __regs[58]; -+} mcontext_t; -+#endif -+ -+typedef struct __ucontext { -+ unsigned long uc_flags; -+ struct __ucontext *uc_link; -+ stack_t uc_stack; -+ mcontext_t uc_mcontext; -+ sigset_t uc_sigmask; -+} ucontext_t; -+ -+#define SA_NOCLDSTOP 1 -+#define SA_NOCLDWAIT 2 -+#define SA_SIGINFO 4 -+#define SA_ONSTACK 0x08000000 -+#define SA_RESTART 0x10000000 -+#define SA_NODEFER 0x40000000 -+#define SA_RESETHAND 0x80000000 -+#define SA_RESTORER 0x04000000 -+ -+#endif -+ -+#define SIGHUP 1 -+#define SIGINT 2 -+#define SIGQUIT 3 -+#define SIGILL 4 -+#define SIGTRAP 5 -+#define SIGABRT 6 -+#define SIGIOT SIGABRT -+#define SIGBUS 7 -+#define SIGFPE 8 -+#define SIGKILL 9 -+#define SIGUSR1 10 -+#define SIGSEGV 11 -+#define SIGUSR2 12 -+#define SIGPIPE 13 -+#define SIGALRM 14 -+#define SIGTERM 15 -+#define SIGSTKFLT 16 -+#define SIGCHLD 17 -+#define SIGCONT 18 -+#define SIGSTOP 19 -+#define SIGTSTP 20 -+#define SIGTTIN 21 -+#define SIGTTOU 22 -+#define SIGURG 23 -+#define SIGXCPU 24 -+#define SIGXFSZ 25 -+#define SIGVTALRM 26 -+#define SIGPROF 27 -+#define SIGWINCH 28 -+#define SIGIO 29 -+#define SIGPOLL 29 -+#define SIGPWR 30 -+#define SIGSYS 31 -+#define SIGUNUSED SIGSYS -+ -+#define _NSIG 65 -diff -Nur musl-0.9.15/arch/sh/bits/socket.h musl-git/arch/sh/bits/socket.h ---- musl-0.9.15/arch/sh/bits/socket.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/socket.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,17 @@ -+struct msghdr -+{ -+ void *msg_name; -+ socklen_t msg_namelen; -+ struct iovec *msg_iov; -+ int msg_iovlen; -+ void *msg_control; -+ socklen_t msg_controllen; -+ int msg_flags; -+}; -+ -+struct cmsghdr -+{ -+ socklen_t cmsg_len; -+ int cmsg_level; -+ int cmsg_type; -+}; -diff -Nur musl-0.9.15/arch/sh/bits/statfs.h musl-git/arch/sh/bits/statfs.h ---- musl-0.9.15/arch/sh/bits/statfs.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/statfs.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,7 @@ -+struct statfs { -+ unsigned long f_type, f_bsize; -+ fsblkcnt_t f_blocks, f_bfree, f_bavail; -+ fsfilcnt_t f_files, f_ffree; -+ fsid_t f_fsid; -+ unsigned long f_namelen, f_frsize, f_flags, f_spare[4]; -+}; -diff -Nur musl-0.9.15/arch/sh/bits/stat.h musl-git/arch/sh/bits/stat.h ---- musl-0.9.15/arch/sh/bits/stat.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/stat.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,22 @@ -+/* copied from kernel definition, but with padding replaced -+ * by the corresponding correctly-sized userspace types. */ -+ -+struct stat -+{ -+ dev_t st_dev; -+ int __st_dev_padding; -+ long __st_ino_truncated; -+ mode_t st_mode; -+ nlink_t st_nlink; -+ uid_t st_uid; -+ gid_t st_gid; -+ dev_t st_rdev; -+ int __st_rdev_padding; -+ off_t st_size; -+ blksize_t st_blksize; -+ blkcnt_t st_blocks; -+ struct timespec st_atim; -+ struct timespec st_mtim; -+ struct timespec st_ctim; -+ ino_t st_ino; -+}; -diff -Nur musl-0.9.15/arch/sh/bits/stdarg.h musl-git/arch/sh/bits/stdarg.h ---- musl-0.9.15/arch/sh/bits/stdarg.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/stdarg.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,4 @@ -+#define va_start(v,l) __builtin_va_start(v,l) -+#define va_end(v) __builtin_va_end(v) -+#define va_arg(v,l) __builtin_va_arg(v,l) -+#define va_copy(d,s) __builtin_va_copy(d,s) -diff -Nur musl-0.9.15/arch/sh/bits/stdint.h musl-git/arch/sh/bits/stdint.h ---- musl-0.9.15/arch/sh/bits/stdint.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/stdint.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,20 @@ -+typedef int32_t int_fast16_t; -+typedef int32_t int_fast32_t; -+typedef uint32_t uint_fast16_t; -+typedef uint32_t uint_fast32_t; -+ -+#define INT_FAST16_MIN INT32_MIN -+#define INT_FAST32_MIN INT32_MIN -+ -+#define INT_FAST16_MAX INT32_MAX -+#define INT_FAST32_MAX INT32_MAX -+ -+#define UINT_FAST16_MAX UINT32_MAX -+#define UINT_FAST32_MAX UINT32_MAX -+ -+#define INTPTR_MIN INT32_MIN -+#define INTPTR_MAX INT32_MAX -+#define UINTPTR_MAX UINT32_MAX -+#define PTRDIFF_MIN INT32_MIN -+#define PTRDIFF_MAX INT32_MAX -+#define SIZE_MAX UINT32_MAX -diff -Nur musl-0.9.15/arch/sh/bits/syscall.h musl-git/arch/sh/bits/syscall.h ---- musl-0.9.15/arch/sh/bits/syscall.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/syscall.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,684 @@ -+#define __NR_restart_syscall 0 -+#define __NR_exit 1 -+#define __NR_fork 2 -+#define __NR_read 3 -+#define __NR_write 4 -+#define __NR_open 5 -+#define __NR_close 6 -+#define __NR_waitpid 7 -+#define __NR_creat 8 -+#define __NR_link 9 -+#define __NR_unlink 10 -+#define __NR_execve 11 -+#define __NR_chdir 12 -+#define __NR_time 13 -+#define __NR_mknod 14 -+#define __NR_chmod 15 -+#define __NR_lchown 16 -+#define __NR_oldstat 18 -+#define __NR_lseek 19 -+#define __NR_getpid 20 -+#define __NR_mount 21 -+#define __NR_umount 22 -+#define __NR_setuid 23 -+#define __NR_getuid 24 -+#define __NR_stime 25 -+#define __NR_ptrace 26 -+#define __NR_alarm 27 -+#define __NR_oldfstat 28 -+#define __NR_pause 29 -+#define __NR_utime 30 -+#define __NR_access 33 -+#define __NR_nice 34 -+#define __NR_sync 36 -+#define __NR_kill 37 -+#define __NR_rename 38 -+#define __NR_mkdir 39 -+#define __NR_rmdir 40 -+#define __NR_dup 41 -+#define __NR_pipe 42 -+#define __NR_times 43 -+#define __NR_brk 45 -+#define __NR_setgid 46 -+#define __NR_getgid 47 -+#define __NR_signal 48 -+#define __NR_geteuid 49 -+#define __NR_getegid 50 -+#define __NR_acct 51 -+#define __NR_umount2 52 -+#define __NR_ioctl 54 -+#define __NR_fcntl 55 -+#define __NR_setpgid 57 -+#define __NR_umask 60 -+#define __NR_chroot 61 -+#define __NR_ustat 62 -+#define __NR_dup2 63 -+#define __NR_getppid 64 -+#define __NR_getpgrp 65 -+#define __NR_setsid 66 -+#define __NR_sigaction 67 -+#define __NR_sgetmask 68 -+#define __NR_ssetmask 69 -+#define __NR_setreuid 70 -+#define __NR_setregid 71 -+#define __NR_sigsuspend 72 -+#define __NR_sigpending 73 -+#define __NR_sethostname 74 -+#define __NR_setrlimit 75 -+#define __NR_getrlimit 76 -+#define __NR_getrusage 77 -+#define __NR_gettimeofday 78 -+#define __NR_settimeofday 79 -+#define __NR_getgroups 80 -+#define __NR_setgroups 81 -+#define __NR_symlink 83 -+#define __NR_oldlstat 84 -+#define __NR_readlink 85 -+#define __NR_uselib 86 -+#define __NR_swapon 87 -+#define __NR_reboot 88 -+#define __NR_readdir 89 -+#define __NR_mmap 90 -+#define __NR_munmap 91 -+#define __NR_truncate 92 -+#define __NR_ftruncate 93 -+#define __NR_fchmod 94 -+#define __NR_fchown 95 -+#define __NR_getpriority 96 -+#define __NR_setpriority 97 -+#define __NR_statfs 99 -+#define __NR_fstatfs 100 -+#define __NR_socketcall 102 -+#define __NR_syslog 103 -+#define __NR_setitimer 104 -+#define __NR_getitimer 105 -+#define __NR_stat 106 -+#define __NR_lstat 107 -+#define __NR_fstat 108 -+#define __NR_olduname 109 -+#define __NR_vhangup 111 -+#define __NR_wait4 114 -+#define __NR_swapoff 115 -+#define __NR_sysinfo 116 -+#define __NR_ipc 117 -+#define __NR_fsync 118 -+#define __NR_sigreturn 119 -+#define __NR_clone 120 -+#define __NR_setdomainname 121 -+#define __NR_uname 122 -+#define __NR_cacheflush 123 -+#define __NR_adjtimex 124 -+#define __NR_mprotect 125 -+#define __NR_sigprocmask 126 -+#define __NR_init_module 128 -+#define __NR_delete_module 129 -+#define __NR_quotactl 131 -+#define __NR_getpgid 132 -+#define __NR_fchdir 133 -+#define __NR_bdflush 134 -+#define __NR_sysfs 135 -+#define __NR_personality 136 -+#define __NR_setfsuid 138 -+#define __NR_setfsgid 139 -+#define __NR__llseek 140 -+#define __NR_getdents 141 -+#define __NR__newselect 142 -+#define __NR_flock 143 -+#define __NR_msync 144 -+#define __NR_readv 145 -+#define __NR_writev 146 -+#define __NR_getsid 147 -+#define __NR_fdatasync 148 -+#define __NR__sysctl 149 -+#define __NR_mlock 150 -+#define __NR_munlock 151 -+#define __NR_mlockall 152 -+#define __NR_munlockall 153 -+#define __NR_sched_setparam 154 -+#define __NR_sched_getparam 155 -+#define __NR_sched_setscheduler 156 -+#define __NR_sched_getscheduler 157 -+#define __NR_sched_yield 158 -+#define __NR_sched_get_priority_max 159 -+#define __NR_sched_get_priority_min 160 -+#define __NR_sched_rr_get_interval 161 -+#define __NR_nanosleep 162 -+#define __NR_mremap 163 -+#define __NR_setresuid 164 -+#define __NR_getresuid 165 -+#define __NR_poll 168 -+#define __NR_nfsservctl 169 -+#define __NR_setresgid 170 -+#define __NR_getresgid 171 -+#define __NR_prctl 172 -+#define __NR_rt_sigreturn 173 -+#define __NR_rt_sigaction 174 -+#define __NR_rt_sigprocmask 175 -+#define __NR_rt_sigpending 176 -+#define __NR_rt_sigtimedwait 177 -+#define __NR_rt_sigqueueinfo 178 -+#define __NR_rt_sigsuspend 179 -+#define __NR_pread64 180 -+#define __NR_pwrite64 181 -+#define __NR_chown 182 -+#define __NR_getcwd 183 -+#define __NR_capget 184 -+#define __NR_capset 185 -+#define __NR_sigaltstack 186 -+#define __NR_sendfile 187 -+#define __NR_vfork 190 -+#define __NR_ugetrlimit 191 -+#define __NR_mmap2 192 -+#define __NR_truncate64 193 -+#define __NR_ftruncate64 194 -+#define __NR_stat64 195 -+#define __NR_lstat64 196 -+#define __NR_fstat64 197 -+#define __NR_lchown32 198 -+#define __NR_getuid32 199 -+#define __NR_getgid32 200 -+#define __NR_geteuid32 201 -+#define __NR_getegid32 202 -+#define __NR_setreuid32 203 -+#define __NR_setregid32 204 -+#define __NR_getgroups32 205 -+#define __NR_setgroups32 206 -+#define __NR_fchown32 207 -+#define __NR_setresuid32 208 -+#define __NR_getresuid32 209 -+#define __NR_setresgid32 210 -+#define __NR_getresgid32 211 -+#define __NR_chown32 212 -+#define __NR_setuid32 213 -+#define __NR_setgid32 214 -+#define __NR_setfsuid32 215 -+#define __NR_setfsgid32 216 -+#define __NR_pivot_root 217 -+#define __NR_mincore 218 -+#define __NR_madvise 219 -+#define __NR_getdents64 220 -+#define __NR_fcntl64 221 -+#define __NR_gettid 224 -+#define __NR_readahead 225 -+#define __NR_setxattr 226 -+#define __NR_lsetxattr 227 -+#define __NR_fsetxattr 228 -+#define __NR_getxattr 229 -+#define __NR_lgetxattr 230 -+#define __NR_fgetxattr 231 -+#define __NR_listxattr 232 -+#define __NR_llistxattr 233 -+#define __NR_flistxattr 234 -+#define __NR_removexattr 235 -+#define __NR_lremovexattr 236 -+#define __NR_fremovexattr 237 -+#define __NR_tkill 238 -+#define __NR_sendfile64 239 -+#define __NR_futex 240 -+#define __NR_sched_setaffinity 241 -+#define __NR_sched_getaffinity 242 -+#define __NR_io_setup 245 -+#define __NR_io_destroy 246 -+#define __NR_io_getevents 247 -+#define __NR_io_submit 248 -+#define __NR_io_cancel 249 -+#define __NR_fadvise64 250 -+#define __NR_exit_group 252 -+#define __NR_lookup_dcookie 253 -+#define __NR_epoll_create 254 -+#define __NR_epoll_ctl 255 -+#define __NR_epoll_wait 256 -+#define __NR_remap_file_pages 257 -+#define __NR_set_tid_address 258 -+#define __NR_timer_create 259 -+#define __NR_timer_settime 260 -+#define __NR_timer_gettime 261 -+#define __NR_timer_getoverrun 262 -+#define __NR_timer_delete 263 -+#define __NR_clock_settime 264 -+#define __NR_clock_gettime 265 -+#define __NR_clock_getres 266 -+#define __NR_clock_nanosleep 267 -+#define __NR_statfs64 268 -+#define __NR_fstatfs64 269 -+#define __NR_tgkill 270 -+#define __NR_utimes 271 -+#define __NR_fadvise64_64 272 -+#define __NR_mbind 274 -+#define __NR_get_mempolicy 275 -+#define __NR_set_mempolicy 276 -+#define __NR_mq_open 277 -+#define __NR_mq_unlink 278 -+#define __NR_mq_timedsend 279 -+#define __NR_mq_timedreceive 280 -+#define __NR_mq_notify 281 -+#define __NR_mq_getsetattr 282 -+#define __NR_kexec_load 283 -+#define __NR_waitid 284 -+#define __NR_add_key 285 -+#define __NR_request_key 286 -+#define __NR_keyctl 287 -+#define __NR_ioprio_set 288 -+#define __NR_ioprio_get 289 -+#define __NR_inotify_init 290 -+#define __NR_inotify_add_watch 291 -+#define __NR_inotify_rm_watch 292 -+#define __NR_migrate_pages 294 -+#define __NR_openat 295 -+#define __NR_mkdirat 296 -+#define __NR_mknodat 297 -+#define __NR_fchownat 298 -+#define __NR_futimesat 299 -+#define __NR_fstatat64 300 -+#define __NR_unlinkat 301 -+#define __NR_renameat 302 -+#define __NR_linkat 303 -+#define __NR_symlinkat 304 -+#define __NR_readlinkat 305 -+#define __NR_fchmodat 306 -+#define __NR_faccessat 307 -+#define __NR_pselect6 308 -+#define __NR_ppoll 309 -+#define __NR_unshare 310 -+#define __NR_set_robust_list 311 -+#define __NR_get_robust_list 312 -+#define __NR_splice 313 -+#define __NR_sync_file_range 314 -+#define __NR_tee 315 -+#define __NR_vmsplice 316 -+#define __NR_move_pages 317 -+#define __NR_getcpu 318 -+#define __NR_epoll_pwait 319 -+#define __NR_utimensat 320 -+#define __NR_signalfd 321 -+#define __NR_timerfd_create 322 -+#define __NR_eventfd 323 -+#define __NR_fallocate 324 -+#define __NR_timerfd_settime 325 -+#define __NR_timerfd_gettime 326 -+#define __NR_signalfd4 327 -+#define __NR_eventfd2 328 -+#define __NR_epoll_create1 329 -+#define __NR_dup3 330 -+#define __NR_pipe2 331 -+#define __NR_inotify_init1 332 -+#define __NR_preadv 333 -+#define __NR_pwritev 334 -+#define __NR_rt_tgsigqueueinfo 335 -+#define __NR_perf_event_open 336 -+#define __NR_fanotify_init 337 -+#define __NR_fanotify_mark 338 -+#define __NR_prlimit64 339 -+#define __NR_socket 340 -+#define __NR_bind 341 -+#define __NR_connect 342 -+#define __NR_listen 343 -+#define __NR_accept 344 -+#define __NR_getsockname 345 -+#define __NR_getpeername 346 -+#define __NR_socketpair 347 -+#define __NR_send 348 -+#define __NR_sendto 349 -+#define __NR_recv 350 -+#define __NR_recvfrom 351 -+#define __NR_shutdown 352 -+#define __NR_setsockopt 353 -+#define __NR_getsockopt 354 -+#define __NR_sendmsg 355 -+#define __NR_recvmsg 356 -+#define __NR_recvmmsg 357 -+#define __NR_accept4 358 -+#define __NR_name_to_handle_at 359 -+#define __NR_open_by_handle_at 360 -+#define __NR_clock_adjtime 361 -+#define __NR_syncfs 362 -+#define __NR_sendmmsg 363 -+#define __NR_setns 364 -+#define __NR_process_vm_readv 365 -+#define __NR_process_vm_writev 366 -+#define __NR_kcmp 367 -+#define __NR_finit_module 368 -+ -+ -+/* Repeated with SYS_ prefix */ -+ -+#define SYS_restart_syscall 0 -+#define SYS_exit 1 -+#define SYS_fork 2 -+#define SYS_read 3 -+#define SYS_write 4 -+#define SYS_open 5 -+#define SYS_close 6 -+#define SYS_waitpid 7 -+#define SYS_creat 8 -+#define SYS_link 9 -+#define SYS_unlink 10 -+#define SYS_execve 11 -+#define SYS_chdir 12 -+#define SYS_time 13 -+#define SYS_mknod 14 -+#define SYS_chmod 15 -+#define SYS_lchown 16 -+#define SYS_oldstat 18 -+#define SYS_lseek 19 -+#define SYS_getpid 20 -+#define SYS_mount 21 -+#define SYS_umount 22 -+#define SYS_setuid 23 -+#define SYS_getuid 24 -+#define SYS_stime 25 -+#define SYS_ptrace 26 -+#define SYS_alarm 27 -+#define SYS_oldfstat 28 -+#define SYS_pause 29 -+#define SYS_utime 30 -+#define SYS_access 33 -+#define SYS_nice 34 -+#define SYS_sync 36 -+#define SYS_kill 37 -+#define SYS_rename 38 -+#define SYS_mkdir 39 -+#define SYS_rmdir 40 -+#define SYS_dup 41 -+#define SYS_pipe 42 -+#define SYS_times 43 -+#define SYS_brk 45 -+#define SYS_setgid 46 -+#define SYS_getgid 47 -+#define SYS_signal 48 -+#define SYS_geteuid 49 -+#define SYS_getegid 50 -+#define SYS_acct 51 -+#define SYS_umount2 52 -+#define SYS_ioctl 54 -+#define SYS_fcntl 55 -+#define SYS_setpgid 57 -+#define SYS_umask 60 -+#define SYS_chroot 61 -+#define SYS_ustat 62 -+#define SYS_dup2 63 -+#define SYS_getppid 64 -+#define SYS_getpgrp 65 -+#define SYS_setsid 66 -+#define SYS_sigaction 67 -+#define SYS_sgetmask 68 -+#define SYS_ssetmask 69 -+#define SYS_setreuid 70 -+#define SYS_setregid 71 -+#define SYS_sigsuspend 72 -+#define SYS_sigpending 73 -+#define SYS_sethostname 74 -+#define SYS_setrlimit 75 -+#define SYS_getrlimit 76 -+#define SYS_getrusage 77 -+#define SYS_gettimeofday 78 -+#define SYS_settimeofday 79 -+#define SYS_getgroups 80 -+#define SYS_setgroups 81 -+#define SYS_symlink 83 -+#define SYS_oldlstat 84 -+#define SYS_readlink 85 -+#define SYS_uselib 86 -+#define SYS_swapon 87 -+#define SYS_reboot 88 -+#define SYS_readdir 89 -+#define SYS_mmap 90 -+#define SYS_munmap 91 -+#define SYS_truncate 92 -+#define SYS_ftruncate 93 -+#define SYS_fchmod 94 -+#define SYS_fchown 95 -+#define SYS_getpriority 96 -+#define SYS_setpriority 97 -+#define SYS_statfs 99 -+#define SYS_fstatfs 100 -+#define SYS_socketcall 102 -+#define SYS_syslog 103 -+#define SYS_setitimer 104 -+#define SYS_getitimer 105 -+#define SYS_stat 106 -+#define SYS_lstat 107 -+#define SYS_fstat 108 -+#define SYS_olduname 109 -+#define SYS_vhangup 111 -+#define SYS_wait4 114 -+#define SYS_swapoff 115 -+#define SYS_sysinfo 116 -+#define SYS_ipc 117 -+#define SYS_fsync 118 -+#define SYS_sigreturn 119 -+#define SYS_clone 120 -+#define SYS_setdomainname 121 -+#define SYS_uname 122 -+#define SYS_cacheflush 123 -+#define SYS_adjtimex 124 -+#define SYS_mprotect 125 -+#define SYS_sigprocmask 126 -+#define SYS_init_module 128 -+#define SYS_delete_module 129 -+#define SYS_quotactl 131 -+#define SYS_getpgid 132 -+#define SYS_fchdir 133 -+#define SYS_bdflush 134 -+#define SYS_sysfs 135 -+#define SYS_personality 136 -+#define SYS_setfsuid 138 -+#define SYS_setfsgid 139 -+#define SYS__llseek 140 -+#define SYS_getdents 141 -+#define SYS__newselect 142 -+#define SYS_flock 143 -+#define SYS_msync 144 -+#define SYS_readv 145 -+#define SYS_writev 146 -+#define SYS_getsid 147 -+#define SYS_fdatasync 148 -+#define SYS__sysctl 149 -+#define SYS_mlock 150 -+#define SYS_munlock 151 -+#define SYS_mlockall 152 -+#define SYS_munlockall 153 -+#define SYS_sched_setparam 154 -+#define SYS_sched_getparam 155 -+#define SYS_sched_setscheduler 156 -+#define SYS_sched_getscheduler 157 -+#define SYS_sched_yield 158 -+#define SYS_sched_get_priority_max 159 -+#define SYS_sched_get_priority_min 160 -+#define SYS_sched_rr_get_interval 161 -+#define SYS_nanosleep 162 -+#define SYS_mremap 163 -+#define SYS_setresuid 164 -+#define SYS_getresuid 165 -+#define SYS_poll 168 -+#define SYS_nfsservctl 169 -+#define SYS_setresgid 170 -+#define SYS_getresgid 171 -+#define SYS_prctl 172 -+#define SYS_rt_sigreturn 173 -+#define SYS_rt_sigaction 174 -+#define SYS_rt_sigprocmask 175 -+#define SYS_rt_sigpending 176 -+#define SYS_rt_sigtimedwait 177 -+#define SYS_rt_sigqueueinfo 178 -+#define SYS_rt_sigsuspend 179 -+#define SYS_pread64 180 -+#define SYS_pwrite64 181 -+#define SYS_chown 182 -+#define SYS_getcwd 183 -+#define SYS_capget 184 -+#define SYS_capset 185 -+#define SYS_sigaltstack 186 -+#define SYS_sendfile 187 -+#define SYS_vfork 190 -+#define SYS_ugetrlimit 191 -+#define SYS_mmap2 192 -+#define SYS_truncate64 193 -+#define SYS_ftruncate64 194 -+#define SYS_stat64 195 -+#define SYS_lstat64 196 -+#define SYS_fstat64 197 -+#define SYS_lchown32 198 -+#define SYS_getuid32 199 -+#define SYS_getgid32 200 -+#define SYS_geteuid32 201 -+#define SYS_getegid32 202 -+#define SYS_setreuid32 203 -+#define SYS_setregid32 204 -+#define SYS_getgroups32 205 -+#define SYS_setgroups32 206 -+#define SYS_fchown32 207 -+#define SYS_setresuid32 208 -+#define SYS_getresuid32 209 -+#define SYS_setresgid32 210 -+#define SYS_getresgid32 211 -+#define SYS_chown32 212 -+#define SYS_setuid32 213 -+#define SYS_setgid32 214 -+#define SYS_setfsuid32 215 -+#define SYS_setfsgid32 216 -+#define SYS_pivot_root 217 -+#define SYS_mincore 218 -+#define SYS_madvise 219 -+#define SYS_getdents64 220 -+#define SYS_fcntl64 221 -+#define SYS_gettid 224 -+#define SYS_readahead 225 -+#define SYS_setxattr 226 -+#define SYS_lsetxattr 227 -+#define SYS_fsetxattr 228 -+#define SYS_getxattr 229 -+#define SYS_lgetxattr 230 -+#define SYS_fgetxattr 231 -+#define SYS_listxattr 232 -+#define SYS_llistxattr 233 -+#define SYS_flistxattr 234 -+#define SYS_removexattr 235 -+#define SYS_lremovexattr 236 -+#define SYS_fremovexattr 237 -+#define SYS_tkill 238 -+#define SYS_sendfile64 239 -+#define SYS_futex 240 -+#define SYS_sched_setaffinity 241 -+#define SYS_sched_getaffinity 242 -+#define SYS_io_setup 245 -+#define SYS_io_destroy 246 -+#define SYS_io_getevents 247 -+#define SYS_io_submit 248 -+#define SYS_io_cancel 249 -+#define SYS_fadvise64 250 -+#define SYS_exit_group 252 -+#define SYS_lookup_dcookie 253 -+#define SYS_epoll_create 254 -+#define SYS_epoll_ctl 255 -+#define SYS_epoll_wait 256 -+#define SYS_remap_file_pages 257 -+#define SYS_set_tid_address 258 -+#define SYS_timer_create 259 -+#define SYS_timer_settime 260 -+#define SYS_timer_gettime 261 -+#define SYS_timer_getoverrun 262 -+#define SYS_timer_delete 263 -+#define SYS_clock_settime 264 -+#define SYS_clock_gettime 265 -+#define SYS_clock_getres 266 -+#define SYS_clock_nanosleep 267 -+#define SYS_statfs64 268 -+#define SYS_fstatfs64 269 -+#define SYS_tgkill 270 -+#define SYS_utimes 271 -+#define SYS_fadvise64_64 272 -+#define SYS_mbind 274 -+#define SYS_get_mempolicy 275 -+#define SYS_set_mempolicy 276 -+#define SYS_mq_open 277 -+#define SYS_mq_unlink 278 -+#define SYS_mq_timedsend 279 -+#define SYS_mq_timedreceive 280 -+#define SYS_mq_notify 281 -+#define SYS_mq_getsetattr 282 -+#define SYS_kexec_load 283 -+#define SYS_waitid 284 -+#define SYS_add_key 285 -+#define SYS_request_key 286 -+#define SYS_keyctl 287 -+#define SYS_ioprio_set 288 -+#define SYS_ioprio_get 289 -+#define SYS_inotify_init 290 -+#define SYS_inotify_add_watch 291 -+#define SYS_inotify_rm_watch 292 -+#define SYS_migrate_pages 294 -+#define SYS_openat 295 -+#define SYS_mkdirat 296 -+#define SYS_mknodat 297 -+#define SYS_fchownat 298 -+#define SYS_futimesat 299 -+#define SYS_fstatat64 300 -+#define SYS_unlinkat 301 -+#define SYS_renameat 302 -+#define SYS_linkat 303 -+#define SYS_symlinkat 304 -+#define SYS_readlinkat 305 -+#define SYS_fchmodat 306 -+#define SYS_faccessat 307 -+#define SYS_pselect6 308 -+#define SYS_ppoll 309 -+#define SYS_unshare 310 -+#define SYS_set_robust_list 311 -+#define SYS_get_robust_list 312 -+#define SYS_splice 313 -+#define SYS_sync_file_range 314 -+#define SYS_tee 315 -+#define SYS_vmsplice 316 -+#define SYS_move_pages 317 -+#define SYS_getcpu 318 -+#define SYS_epoll_pwait 319 -+#define SYS_utimensat 320 -+#define SYS_signalfd 321 -+#define SYS_timerfd_create 322 -+#define SYS_eventfd 323 -+#define SYS_fallocate 324 -+#define SYS_timerfd_settime 325 -+#define SYS_timerfd_gettime 326 -+#define SYS_signalfd4 327 -+#define SYS_eventfd2 328 -+#define SYS_epoll_create1 329 -+#define SYS_dup3 330 -+#define SYS_pipe2 331 -+#define SYS_inotify_init1 332 -+#define SYS_preadv 333 -+#define SYS_pwritev 334 -+#define SYS_rt_tgsigqueueinfo 335 -+#define SYS_perf_event_open 336 -+#define SYS_fanotify_init 337 -+#define SYS_fanotify_mark 338 -+#define SYS_prlimit64 339 -+#define SYS_socket 340 -+#define SYS_bind 341 -+#define SYS_connect 342 -+#define SYS_listen 343 -+#define SYS_accept 344 -+#define SYS_getsockname 345 -+#define SYS_getpeername 346 -+#define SYS_socketpair 347 -+#define SYS_send 348 -+#define SYS_sendto 349 -+#define SYS_recv 350 -+#define SYS_recvfrom 351 -+#define SYS_shutdown 352 -+#define SYS_setsockopt 353 -+#define SYS_getsockopt 354 -+#define SYS_sendmsg 355 -+#define SYS_recvmsg 356 -+#define SYS_recvmmsg 357 -+#define SYS_accept4 358 -+#define SYS_name_to_handle_at 359 -+#define SYS_open_by_handle_at 360 -+#define SYS_clock_adjtime 361 -+#define SYS_syncfs 362 -+#define SYS_sendmmsg 363 -+#define SYS_setns 364 -+#define SYS_process_vm_readv 365 -+#define SYS_process_vm_writev 366 -+#define SYS_kcmp 367 -+#define SYS_finit_module 368 -diff -Nur musl-0.9.15/arch/sh/bits/termios.h musl-git/arch/sh/bits/termios.h ---- musl-0.9.15/arch/sh/bits/termios.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/termios.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,160 @@ -+struct termios -+{ -+ tcflag_t c_iflag; -+ tcflag_t c_oflag; -+ tcflag_t c_cflag; -+ tcflag_t c_lflag; -+ cc_t c_line; -+ cc_t c_cc[NCCS]; -+ speed_t __c_ispeed; -+ speed_t __c_ospeed; -+}; -+ -+#define VINTR 0 -+#define VQUIT 1 -+#define VERASE 2 -+#define VKILL 3 -+#define VEOF 4 -+#define VTIME 5 -+#define VMIN 6 -+#define VSWTC 7 -+#define VSTART 8 -+#define VSTOP 9 -+#define VSUSP 10 -+#define VEOL 11 -+#define VREPRINT 12 -+#define VDISCARD 13 -+#define VWERASE 14 -+#define VLNEXT 15 -+#define VEOL2 16 -+ -+#define IGNBRK 0000001 -+#define BRKINT 0000002 -+#define IGNPAR 0000004 -+#define PARMRK 0000010 -+#define INPCK 0000020 -+#define ISTRIP 0000040 -+#define INLCR 0000100 -+#define IGNCR 0000200 -+#define ICRNL 0000400 -+#define IUCLC 0001000 -+#define IXON 0002000 -+#define IXANY 0004000 -+#define IXOFF 0010000 -+#define IMAXBEL 0020000 -+#define IUTF8 0040000 -+ -+#define OPOST 0000001 -+#define OLCUC 0000002 -+#define ONLCR 0000004 -+#define OCRNL 0000010 -+#define ONOCR 0000020 -+#define ONLRET 0000040 -+#define OFILL 0000100 -+#define OFDEL 0000200 -+#define NLDLY 0000400 -+#define NL0 0000000 -+#define NL1 0000400 -+#define CRDLY 0003000 -+#define CR0 0000000 -+#define CR1 0001000 -+#define CR2 0002000 -+#define CR3 0003000 -+#define TABDLY 0014000 -+#define TAB0 0000000 -+#define TAB1 0004000 -+#define TAB2 0010000 -+#define TAB3 0014000 -+#define BSDLY 0020000 -+#define BS0 0000000 -+#define BS1 0020000 -+#define FFDLY 0100000 -+#define FF0 0000000 -+#define FF1 0100000 -+ -+#define VTDLY 0040000 -+#define VT0 0000000 -+#define VT1 0040000 -+ -+#define B0 0000000 -+#define B50 0000001 -+#define B75 0000002 -+#define B110 0000003 -+#define B134 0000004 -+#define B150 0000005 -+#define B200 0000006 -+#define B300 0000007 -+#define B600 0000010 -+#define B1200 0000011 -+#define B1800 0000012 -+#define B2400 0000013 -+#define B4800 0000014 -+#define B9600 0000015 -+#define B19200 0000016 -+#define B38400 0000017 -+ -+#define B57600 0010001 -+#define B115200 0010002 -+#define B230400 0010003 -+#define B460800 0010004 -+#define B500000 0010005 -+#define B576000 0010006 -+#define B921600 0010007 -+#define B1000000 0010010 -+#define B1152000 0010011 -+#define B1500000 0010012 -+#define B2000000 0010013 -+#define B2500000 0010014 -+#define B3000000 0010015 -+#define B3500000 0010016 -+#define B4000000 0010017 -+ -+#define CBAUD 0010017 -+ -+#define CSIZE 0000060 -+#define CS5 0000000 -+#define CS6 0000020 -+#define CS7 0000040 -+#define CS8 0000060 -+#define CSTOPB 0000100 -+#define CREAD 0000200 -+#define PARENB 0000400 -+#define PARODD 0001000 -+#define HUPCL 0002000 -+#define CLOCAL 0004000 -+ -+#define ISIG 0000001 -+#define ICANON 0000002 -+#define ECHO 0000010 -+#define ECHOE 0000020 -+#define ECHOK 0000040 -+#define ECHONL 0000100 -+#define NOFLSH 0000200 -+#define TOSTOP 0000400 -+#define IEXTEN 0100000 -+ -+#define ECHOCTL 0001000 -+#define ECHOPRT 0002000 -+#define ECHOKE 0004000 -+#define FLUSHO 0010000 -+#define PENDIN 0040000 -+ -+#define TCOOFF 0 -+#define TCOON 1 -+#define TCIOFF 2 -+#define TCION 3 -+ -+#define TCIFLUSH 0 -+#define TCOFLUSH 1 -+#define TCIOFLUSH 2 -+ -+#define TCSANOW 0 -+#define TCSADRAIN 1 -+#define TCSAFLUSH 2 -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define CBAUDEX 0010000 -+#define CRTSCTS 020000000000 -+#define EXTPROC 0200000 -+#define XTABS 0014000 -+#endif -diff -Nur musl-0.9.15/arch/sh/crt_arch.h musl-git/arch/sh/crt_arch.h ---- musl-0.9.15/arch/sh/crt_arch.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/crt_arch.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,9 @@ -+__asm__("\ -+.global _start \n\ -+_start: \n\ -+ mov r15, r4 \n\ -+ mov #-16, r0 \n\ -+ and r0, r15 \n\ -+ bsr __cstart \n\ -+ nop \n\ -+"); -diff -Nur musl-0.9.15/arch/sh/pthread_arch.h musl-git/arch/sh/pthread_arch.h ---- musl-0.9.15/arch/sh/pthread_arch.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/pthread_arch.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,11 @@ -+static inline struct pthread *__pthread_self() -+{ -+ char *self; -+ __asm__ __volatile__ ("stc gbr,%0" : "=r" (self) ); -+ return (struct pthread *) (self + 8 - sizeof(struct pthread)); -+} -+ -+#define TLS_ABOVE_TP -+#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) - 8) -+ -+#define CANCEL_REG_IP 17 -diff -Nur musl-0.9.15/arch/sh/reloc.h musl-git/arch/sh/reloc.h ---- musl-0.9.15/arch/sh/reloc.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/reloc.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,47 @@ -+#if __BYTE_ORDER == __BIG_ENDIAN -+#define ENDIAN_SUFFIX "eb" -+#else -+#define ENDIAN_SUFFIX "" -+#endif -+ -+#define LDSO_ARCH "sh" ENDIAN_SUFFIX -+ -+#define IS_COPY(x) ((x) == R_SH_COPY) -+#define IS_PLT(x) ((x) == R_SH_JMP_SLOT) -+ -+static inline void do_single_reloc( -+ struct dso *self, unsigned char *base_addr, -+ size_t *reloc_addr, int type, size_t addend, -+ Sym *sym, size_t sym_size, -+ struct symdef def, size_t sym_val) -+{ -+ switch(type) { -+ case R_SH_GLOB_DAT: -+ case R_SH_JMP_SLOT: -+ *reloc_addr = sym_val; -+ break; -+ case R_SH_RELATIVE: -+ *reloc_addr = (size_t)base_addr + addend; -+ break; -+ case R_SH_DIR32: -+ *reloc_addr = sym_val + addend; -+ break; -+ case R_SH_REL32: -+ *reloc_addr = sym_val + addend - (size_t)reloc_addr + (size_t)base_addr; -+ break; -+ case R_SH_COPY: -+ memcpy(reloc_addr, (void *)sym_val, sym_size); -+ break; -+ case R_SH_TLS_DTPMOD32: -+ *reloc_addr += def.dso ? def.dso->tls_id : self->tls_id; -+ break; -+ case R_SH_TLS_DTPOFF32: -+ *reloc_addr += def.sym->st_value; -+ break; -+ case R_SH_TLS_TPOFF32: -+ *reloc_addr += def.sym -+ ? def.sym->st_value + def.dso->tls_offset + 8 -+ : self->tls_offset + 8; -+ break; -+ } -+} -diff -Nur musl-0.9.15/arch/sh/src/atomic.c musl-git/arch/sh/src/atomic.c ---- musl-0.9.15/arch/sh/src/atomic.c 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/src/atomic.c 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,146 @@ -+#include "libc.h" -+ -+#define LLSC_CLOBBERS "r0", "t", "memory" -+#define LLSC_START(mem) \ -+ "0: movli.l @" mem ", r0\n" -+#define LLSC_END(mem) \ -+ "1: movco.l r0, @" mem "\n" \ -+ " bf 0b\n" \ -+ " synco\n" -+ -+/* gusa is a hack in the kernel which lets you create a sequence of instructions -+ * which will be restarted if the process is preempted in the middle of the -+ * sequence. It will do for implementing atomics on non-smp systems. ABI is: -+ * r0 = address of first instruction after the atomic sequence -+ * r1 = original stack pointer -+ * r15 = -1 * length of atomic sequence in bytes -+ */ -+#define GUSA_CLOBBERS "r0", "r1", "memory" -+#define GUSA_START(mem,old,nop) \ -+ " .align 2\n" \ -+ " mova 1f, r0\n" \ -+ nop \ -+ " mov r15, r1\n" \ -+ " mov #(0f-1f), r15\n" \ -+ "0: mov.l @" mem ", " old "\n" -+/* the target of mova must be 4 byte aligned, so we may need a nop */ -+#define GUSA_START_ODD(mem,old) GUSA_START(mem,old,"") -+#define GUSA_START_EVEN(mem,old) GUSA_START(mem,old,"\tnop\n") -+#define GUSA_END(mem,new) \ -+ " mov.l " new ", @" mem "\n" \ -+ "1: mov r1, r15\n" -+ -+#define CPU_HAS_LLSC 0x0040 -+ -+int __sh_cas(volatile int *p, int t, int s) -+{ -+ int old; -+ if (__hwcap & CPU_HAS_LLSC) { -+ __asm__ __volatile__( -+ LLSC_START("%1") -+ " mov r0, %0\n" -+ " cmp/eq %0, %2\n" -+ " bf 1f\n" -+ " mov %3, r0\n" -+ LLSC_END("%1") -+ : "=&r"(old) : "r"(p), "r"(t), "r"(s) : LLSC_CLOBBERS); -+ } else { -+ __asm__ __volatile__( -+ GUSA_START_EVEN("%1", "%0") -+ " cmp/eq %0, %2\n" -+ " bf 1f\n" -+ GUSA_END("%1", "%3") -+ : "=&r"(old) : "r"(p), "r"(t), "r"(s) : GUSA_CLOBBERS, "t"); -+ } -+ return old; -+} -+ -+int __sh_swap(volatile int *x, int v) -+{ -+ int old; -+ if (__hwcap & CPU_HAS_LLSC) { -+ __asm__ __volatile__( -+ LLSC_START("%1") -+ " mov r0, %0\n" -+ " mov %2, r0\n" -+ LLSC_END("%1") -+ : "=&r"(old) : "r"(x), "r"(v) : LLSC_CLOBBERS); -+ } else { -+ __asm__ __volatile__( -+ GUSA_START_EVEN("%1", "%0") -+ GUSA_END("%1", "%2") -+ : "=&r"(old) : "r"(x), "r"(v) : GUSA_CLOBBERS); -+ } -+ return old; -+} -+ -+int __sh_fetch_add(volatile int *x, int v) -+{ -+ int old, dummy; -+ if (__hwcap & CPU_HAS_LLSC) { -+ __asm__ __volatile__( -+ LLSC_START("%1") -+ " mov r0, %0\n" -+ " add %2, r0\n" -+ LLSC_END("%1") -+ : "=&r"(old) : "r"(x), "r"(v) : LLSC_CLOBBERS); -+ } else { -+ __asm__ __volatile__( -+ GUSA_START_EVEN("%2", "%0") -+ " mov %0, %1\n" -+ " add %3, %1\n" -+ GUSA_END("%2", "%1") -+ : "=&r"(old), "=&r"(dummy) : "r"(x), "r"(v) : GUSA_CLOBBERS); -+ } -+ return old; -+} -+ -+void __sh_store(volatile int *p, int x) -+{ -+ if (__hwcap & CPU_HAS_LLSC) { -+ __asm__ __volatile__( -+ " mov.l %1, @%0\n" -+ " synco\n" -+ : : "r"(p), "r"(x) : "memory"); -+ } else { -+ __asm__ __volatile__( -+ " mov.l %1, @%0\n" -+ : : "r"(p), "r"(x) : "memory"); -+ } -+} -+ -+void __sh_and(volatile int *x, int v) -+{ -+ int dummy; -+ if (__hwcap & CPU_HAS_LLSC) { -+ __asm__ __volatile__( -+ LLSC_START("%0") -+ " and %1, r0\n" -+ LLSC_END("%0") -+ : : "r"(x), "r"(v) : LLSC_CLOBBERS); -+ } else { -+ __asm__ __volatile__( -+ GUSA_START_ODD("%1", "%0") -+ " and %2, %0\n" -+ GUSA_END("%1", "%0") -+ : "=&r"(dummy) : "r"(x), "r"(v) : GUSA_CLOBBERS); -+ } -+} -+ -+void __sh_or(volatile int *x, int v) -+{ -+ int dummy; -+ if (__hwcap & CPU_HAS_LLSC) { -+ __asm__ __volatile__( -+ LLSC_START("%0") -+ " or %1, r0\n" -+ LLSC_END("%0") -+ : : "r"(x), "r"(v) : LLSC_CLOBBERS); -+ } else { -+ __asm__ __volatile__( -+ GUSA_START_ODD("%1", "%0") -+ " or %2, %0\n" -+ GUSA_END("%1", "%0") -+ : "=&r"(dummy) : "r"(x), "r"(v) : GUSA_CLOBBERS); -+ } -+} -diff -Nur musl-0.9.15/arch/sh/src/__fpsrc_values.c musl-git/arch/sh/src/__fpsrc_values.c ---- musl-0.9.15/arch/sh/src/__fpsrc_values.c 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/src/__fpsrc_values.c 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,2 @@ -+/* used by gcc for switching the FPU between single and double precision */ -+const unsigned long __fpscr_values[2] = { 0, 0x80000 }; -diff -Nur musl-0.9.15/arch/sh/syscall_arch.h musl-git/arch/sh/syscall_arch.h ---- musl-0.9.15/arch/sh/syscall_arch.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/syscall_arch.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,87 @@ -+#define __SYSCALL_LL_E(x) \ -+((union { long long ll; long l[2]; }){ .ll = x }).l[0], \ -+((union { long long ll; long l[2]; }){ .ll = x }).l[1] -+#define __SYSCALL_LL_O(x) __SYSCALL_LL_E((x)) -+ -+/* The extra OR instructions are to work around a hardware bug: -+ * http://documentation.renesas.com/doc/products/mpumcu/tu/tnsh7456ae.pdf -+ */ -+#define __asm_syscall(trapno, ...) do { \ -+ __asm__ __volatile__ ( \ -+ "trapa #" #trapno "\n" \ -+ "or r0, r0\n" \ -+ "or r0, r0\n" \ -+ "or r0, r0\n" \ -+ "or r0, r0\n" \ -+ "or r0, r0\n" \ -+ : "=r"(r0) : __VA_ARGS__ : "memory"); \ -+ return r0; \ -+ } while (0) -+ -+static inline long __syscall0(long n) -+{ -+ register long r3 __asm__("r3") = n; -+ register long r0 __asm__("r0"); -+ __asm_syscall(16, "r"(r3)); -+} -+ -+static inline long __syscall1(long n, long a) -+{ -+ register long r3 __asm__("r3") = n; -+ register long r4 __asm__("r4") = a; -+ register long r0 __asm__("r0"); -+ __asm_syscall(17, "r"(r3), "r"(r4)); -+} -+ -+static inline long __syscall2(long n, long a, long b) -+{ -+ register long r3 __asm__("r3") = n; -+ register long r4 __asm__("r4") = a; -+ register long r5 __asm__("r5") = b; -+ register long r0 __asm__("r0"); -+ __asm_syscall(18, "r"(r3), "r"(r4), "r"(r5)); -+} -+ -+static inline long __syscall3(long n, long a, long b, long c) -+{ -+ register long r3 __asm__("r3") = n; -+ register long r4 __asm__("r4") = a; -+ register long r5 __asm__("r5") = b; -+ register long r6 __asm__("r6") = c; -+ register long r0 __asm__("r0"); -+ __asm_syscall(19, "r"(r3), "r"(r4), "r"(r5), "r"(r6)); -+} -+ -+static inline long __syscall4(long n, long a, long b, long c, long d) -+{ -+ register long r3 __asm__("r3") = n; -+ register long r4 __asm__("r4") = a; -+ register long r5 __asm__("r5") = b; -+ register long r6 __asm__("r6") = c; -+ register long r7 __asm__("r7") = d; -+ register long r0 __asm__("r0"); -+ __asm_syscall(20, "r"(r3), "r"(r4), "r"(r5), "r"(r6), "r"(r7)); -+} -+ -+static inline long __syscall5(long n, long a, long b, long c, long d, long e) -+{ -+ register long r3 __asm__("r3") = n; -+ register long r4 __asm__("r4") = a; -+ register long r5 __asm__("r5") = b; -+ register long r6 __asm__("r6") = c; -+ register long r7 __asm__("r7") = d; -+ register long r0 __asm__("r0") = e; -+ __asm_syscall(21, "r"(r3), "r"(r4), "r"(r5), "r"(r6), "r"(r7), "0"(r0)); -+} -+ -+static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f) -+{ -+ register long r3 __asm__("r3") = n; -+ register long r4 __asm__("r4") = a; -+ register long r5 __asm__("r5") = b; -+ register long r6 __asm__("r6") = c; -+ register long r7 __asm__("r7") = d; -+ register long r0 __asm__("r0") = e; -+ register long r1 __asm__("r1") = f; -+ __asm_syscall(22, "r"(r3), "r"(r4), "r"(r5), "r"(r6), "r"(r7), "0"(r0), "r"(r1)); -+} -diff -Nur musl-0.9.15/arch/x32/atomic.h musl-git/arch/x32/atomic.h ---- musl-0.9.15/arch/x32/atomic.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/atomic.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,125 @@ -+#ifndef _INTERNAL_ATOMIC_H -+#define _INTERNAL_ATOMIC_H -+ -+#include -+ -+static inline int a_ctz_64(uint64_t x) -+{ -+ __asm__( "bsf %1,%0" : "=r"(x) : "r"(x) ); -+ return x; -+} -+ -+static inline int a_ctz_l(unsigned long x) -+{ -+ __asm__( "bsf %1,%0" : "=r"(x) : "r"(x) ); -+ return x; -+} -+ -+static inline void a_and_64(volatile uint64_t *p, uint64_t v) -+{ -+ __asm__( "lock ; and %1, %0" -+ : "=m"(*p) : "r"(v) : "memory" ); -+} -+ -+static inline void a_or_64(volatile uint64_t *p, uint64_t v) -+{ -+ __asm__( "lock ; or %1, %0" -+ : "=m"(*p) : "r"(v) : "memory" ); -+} -+ -+static inline void a_store_l(volatile void *p, long x) -+{ -+ __asm__( "mov %1, %0" : "=m"(*(long *)p) : "r"(x) : "memory" ); -+} -+ -+static inline void a_or_l(volatile void *p, long v) -+{ -+ __asm__( "lock ; or %1, %0" -+ : "=m"(*(long *)p) : "r"(v) : "memory" ); -+} -+ -+static inline void *a_cas_p(volatile void *p, void *t, void *s) -+{ -+ __asm__( "lock ; cmpxchg %3, %1" -+ : "=a"(t), "=m"(*(long *)p) : "a"(t), "r"(s) : "memory" ); -+ return t; -+} -+ -+static inline long a_cas_l(volatile void *p, long t, long s) -+{ -+ __asm__( "lock ; cmpxchg %3, %1" -+ : "=a"(t), "=m"(*(long *)p) : "a"(t), "r"(s) : "memory" ); -+ return t; -+} -+ -+static inline int a_cas(volatile int *p, int t, int s) -+{ -+ __asm__( "lock ; cmpxchg %3, %1" -+ : "=a"(t), "=m"(*p) : "a"(t), "r"(s) : "memory" ); -+ return t; -+} -+ -+static inline void *a_swap_p(void *volatile *x, void *v) -+{ -+ __asm__( "xchg %0, %1" : "=r"(v), "=m"(*(void **)x) : "0"(v) : "memory" ); -+ return v; -+} -+static inline long a_swap_l(volatile void *x, long v) -+{ -+ __asm__( "xchg %0, %1" : "=r"(v), "=m"(*(long *)x) : "0"(v) : "memory" ); -+ return v; -+} -+ -+static inline void a_or(volatile void *p, int v) -+{ -+ __asm__( "lock ; or %1, %0" -+ : "=m"(*(int *)p) : "r"(v) : "memory" ); -+} -+ -+static inline void a_and(volatile void *p, int v) -+{ -+ __asm__( "lock ; and %1, %0" -+ : "=m"(*(int *)p) : "r"(v) : "memory" ); -+} -+ -+static inline int a_swap(volatile int *x, int v) -+{ -+ __asm__( "xchg %0, %1" : "=r"(v), "=m"(*x) : "0"(v) : "memory" ); -+ return v; -+} -+ -+#define a_xchg a_swap -+ -+static inline int a_fetch_add(volatile int *x, int v) -+{ -+ __asm__( "lock ; xadd %0, %1" : "=r"(v), "=m"(*x) : "0"(v) : "memory" ); -+ return v; -+} -+ -+static inline void a_inc(volatile int *x) -+{ -+ __asm__( "lock ; incl %0" : "=m"(*x) : "m"(*x) : "memory" ); -+} -+ -+static inline void a_dec(volatile int *x) -+{ -+ __asm__( "lock ; decl %0" : "=m"(*x) : "m"(*x) : "memory" ); -+} -+ -+static inline void a_store(volatile int *p, int x) -+{ -+ __asm__( "mov %1, %0" : "=m"(*p) : "r"(x) : "memory" ); -+} -+ -+static inline void a_spin() -+{ -+ __asm__ __volatile__( "pause" : : : "memory" ); -+} -+ -+static inline void a_crash() -+{ -+ __asm__ __volatile__( "hlt" : : : "memory" ); -+} -+ -+ -+#endif -diff -Nur musl-0.9.15/arch/x32/bits/alltypes.h.in musl-git/arch/x32/bits/alltypes.h.in ---- musl-0.9.15/arch/x32/bits/alltypes.h.in 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/alltypes.h.in 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,28 @@ -+#define _Addr int -+#define _Int64 long long -+#define _Reg long long -+ -+TYPEDEF __builtin_va_list va_list; -+TYPEDEF __builtin_va_list __isoc_va_list; -+ -+#ifndef __cplusplus -+TYPEDEF long wchar_t; -+#endif -+TYPEDEF unsigned wint_t; -+ -+#if defined(__FLT_EVAL_METHOD__) && __FLT_EVAL_METHOD__ == 2 -+TYPEDEF long double float_t; -+TYPEDEF long double double_t; -+#else -+TYPEDEF float float_t; -+TYPEDEF double double_t; -+#endif -+ -+TYPEDEF long long time_t; -+TYPEDEF long long suseconds_t; -+ -+TYPEDEF struct { union { int __i[14]; unsigned long __s[7]; } __u; } pthread_attr_t; -+TYPEDEF struct { union { int __i[10]; void *__p[5]; } __u; } pthread_mutex_t; -+TYPEDEF struct { union { int __i[12]; void *__p[6]; } __u; } pthread_cond_t; -+TYPEDEF struct { union { int __i[14]; void *__p[7]; } __u; } pthread_rwlock_t; -+TYPEDEF struct { union { int __i[8]; void *__p[4]; } __u; } pthread_barrier_t; -diff -Nur musl-0.9.15/arch/x32/bits/endian.h musl-git/arch/x32/bits/endian.h ---- musl-0.9.15/arch/x32/bits/endian.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/endian.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1 @@ -+#define __BYTE_ORDER __LITTLE_ENDIAN -diff -Nur musl-0.9.15/arch/x32/bits/errno.h musl-git/arch/x32/bits/errno.h ---- musl-0.9.15/arch/x32/bits/errno.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/errno.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,134 @@ -+#define EPERM 1 -+#define ENOENT 2 -+#define ESRCH 3 -+#define EINTR 4 -+#define EIO 5 -+#define ENXIO 6 -+#define E2BIG 7 -+#define ENOEXEC 8 -+#define EBADF 9 -+#define ECHILD 10 -+#define EAGAIN 11 -+#define ENOMEM 12 -+#define EACCES 13 -+#define EFAULT 14 -+#define ENOTBLK 15 -+#define EBUSY 16 -+#define EEXIST 17 -+#define EXDEV 18 -+#define ENODEV 19 -+#define ENOTDIR 20 -+#define EISDIR 21 -+#define EINVAL 22 -+#define ENFILE 23 -+#define EMFILE 24 -+#define ENOTTY 25 -+#define ETXTBSY 26 -+#define EFBIG 27 -+#define ENOSPC 28 -+#define ESPIPE 29 -+#define EROFS 30 -+#define EMLINK 31 -+#define EPIPE 32 -+#define EDOM 33 -+#define ERANGE 34 -+#define EDEADLK 35 -+#define ENAMETOOLONG 36 -+#define ENOLCK 37 -+#define ENOSYS 38 -+#define ENOTEMPTY 39 -+#define ELOOP 40 -+#define EWOULDBLOCK EAGAIN -+#define ENOMSG 42 -+#define EIDRM 43 -+#define ECHRNG 44 -+#define EL2NSYNC 45 -+#define EL3HLT 46 -+#define EL3RST 47 -+#define ELNRNG 48 -+#define EUNATCH 49 -+#define ENOCSI 50 -+#define EL2HLT 51 -+#define EBADE 52 -+#define EBADR 53 -+#define EXFULL 54 -+#define ENOANO 55 -+#define EBADRQC 56 -+#define EBADSLT 57 -+#define EDEADLOCK EDEADLK -+#define EBFONT 59 -+#define ENOSTR 60 -+#define ENODATA 61 -+#define ETIME 62 -+#define ENOSR 63 -+#define ENONET 64 -+#define ENOPKG 65 -+#define EREMOTE 66 -+#define ENOLINK 67 -+#define EADV 68 -+#define ESRMNT 69 -+#define ECOMM 70 -+#define EPROTO 71 -+#define EMULTIHOP 72 -+#define EDOTDOT 73 -+#define EBADMSG 74 -+#define EOVERFLOW 75 -+#define ENOTUNIQ 76 -+#define EBADFD 77 -+#define EREMCHG 78 -+#define ELIBACC 79 -+#define ELIBBAD 80 -+#define ELIBSCN 81 -+#define ELIBMAX 82 -+#define ELIBEXEC 83 -+#define EILSEQ 84 -+#define ERESTART 85 -+#define ESTRPIPE 86 -+#define EUSERS 87 -+#define ENOTSOCK 88 -+#define EDESTADDRREQ 89 -+#define EMSGSIZE 90 -+#define EPROTOTYPE 91 -+#define ENOPROTOOPT 92 -+#define EPROTONOSUPPORT 93 -+#define ESOCKTNOSUPPORT 94 -+#define EOPNOTSUPP 95 -+#define ENOTSUP EOPNOTSUPP -+#define EPFNOSUPPORT 96 -+#define EAFNOSUPPORT 97 -+#define EADDRINUSE 98 -+#define EADDRNOTAVAIL 99 -+#define ENETDOWN 100 -+#define ENETUNREACH 101 -+#define ENETRESET 102 -+#define ECONNABORTED 103 -+#define ECONNRESET 104 -+#define ENOBUFS 105 -+#define EISCONN 106 -+#define ENOTCONN 107 -+#define ESHUTDOWN 108 -+#define ETOOMANYREFS 109 -+#define ETIMEDOUT 110 -+#define ECONNREFUSED 111 -+#define EHOSTDOWN 112 -+#define EHOSTUNREACH 113 -+#define EALREADY 114 -+#define EINPROGRESS 115 -+#define ESTALE 116 -+#define EUCLEAN 117 -+#define ENOTNAM 118 -+#define ENAVAIL 119 -+#define EISNAM 120 -+#define EREMOTEIO 121 -+#define EDQUOT 122 -+#define ENOMEDIUM 123 -+#define EMEDIUMTYPE 124 -+#define ECANCELED 125 -+#define ENOKEY 126 -+#define EKEYEXPIRED 127 -+#define EKEYREVOKED 128 -+#define EKEYREJECTED 129 -+#define EOWNERDEAD 130 -+#define ENOTRECOVERABLE 131 -+#define ERFKILL 132 -+#define EHWPOISON 133 -diff -Nur musl-0.9.15/arch/x32/bits/fcntl.h musl-git/arch/x32/bits/fcntl.h ---- musl-0.9.15/arch/x32/bits/fcntl.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/fcntl.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,39 @@ -+#define O_CREAT 0100 -+#define O_EXCL 0200 -+#define O_NOCTTY 0400 -+#define O_TRUNC 01000 -+#define O_APPEND 02000 -+#define O_NONBLOCK 04000 -+#define O_DSYNC 010000 -+#define O_SYNC 04010000 -+#define O_RSYNC 04010000 -+#define O_DIRECTORY 0200000 -+#define O_NOFOLLOW 0400000 -+#define O_CLOEXEC 02000000 -+ -+#define O_ASYNC 020000 -+#define O_DIRECT 040000 -+#define O_LARGEFILE 0 -+#define O_NOATIME 01000000 -+#define O_TMPFILE 020200000 -+#define O_NDELAY O_NONBLOCK -+ -+#define F_DUPFD 0 -+#define F_GETFD 1 -+#define F_SETFD 2 -+#define F_GETFL 3 -+#define F_SETFL 4 -+ -+#define F_SETOWN 8 -+#define F_GETOWN 9 -+#define F_SETSIG 10 -+#define F_GETSIG 11 -+ -+#define F_GETLK 5 -+#define F_SETLK 6 -+#define F_SETLKW 7 -+ -+#define F_SETOWN_EX 15 -+#define F_GETOWN_EX 16 -+ -+#define F_GETOWNER_UIDS 17 -diff -Nur musl-0.9.15/arch/x32/bits/fenv.h musl-git/arch/x32/bits/fenv.h ---- musl-0.9.15/arch/x32/bits/fenv.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/fenv.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,34 @@ -+#define FE_INVALID 1 -+#define __FE_DENORM 2 -+#define FE_DIVBYZERO 4 -+#define FE_OVERFLOW 8 -+#define FE_UNDERFLOW 16 -+#define FE_INEXACT 32 -+ -+#define FE_ALL_EXCEPT 63 -+ -+#define FE_TONEAREST 0 -+#define FE_DOWNWARD 0x400 -+#define FE_UPWARD 0x800 -+#define FE_TOWARDZERO 0xc00 -+ -+typedef unsigned short fexcept_t; -+ -+typedef struct { -+ unsigned short __control_word; -+ unsigned short __unused1; -+ unsigned short __status_word; -+ unsigned short __unused2; -+ unsigned short __tags; -+ unsigned short __unused3; -+ unsigned int __eip; -+ unsigned short __cs_selector; -+ unsigned int __opcode:11; -+ unsigned int __unused4:5; -+ unsigned int __data_offset; -+ unsigned short __data_selector; -+ unsigned short __unused5; -+ unsigned int __mxcsr; -+} fenv_t; -+ -+#define FE_DFL_ENV ((const fenv_t *) -1) -diff -Nur musl-0.9.15/arch/x32/bits/float.h musl-git/arch/x32/bits/float.h ---- musl-0.9.15/arch/x32/bits/float.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/float.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,21 @@ -+#define FLT_ROUNDS 1 -+#ifdef __FLT_EVAL_METHOD__ -+#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__ -+#else -+#define FLT_EVAL_METHOD 0 -+#endif -+ -+#define LDBL_TRUE_MIN 3.6451995318824746025e-4951L -+#define LDBL_MIN 3.3621031431120935063e-4932L -+#define LDBL_MAX 1.1897314953572317650e+4932L -+#define LDBL_EPSILON 1.0842021724855044340e-19L -+ -+#define LDBL_MANT_DIG 64 -+#define LDBL_MIN_EXP (-16381) -+#define LDBL_MAX_EXP 16384 -+ -+#define LDBL_DIG 18 -+#define LDBL_MIN_10_EXP (-4931) -+#define LDBL_MAX_10_EXP 4932 -+ -+#define DECIMAL_DIG 21 -diff -Nur musl-0.9.15/arch/x32/bits/ioctl.h musl-git/arch/x32/bits/ioctl.h ---- musl-0.9.15/arch/x32/bits/ioctl.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/ioctl.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,197 @@ -+#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) ) -+#define _IOC_NONE 0U -+#define _IOC_WRITE 1U -+#define _IOC_READ 2U -+ -+#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0) -+#define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c)) -+#define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c)) -+#define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c)) -+ -+#define TCGETS 0x5401 -+#define TCSETS 0x5402 -+#define TCSETSW 0x5403 -+#define TCSETSF 0x5404 -+#define TCGETA 0x5405 -+#define TCSETA 0x5406 -+#define TCSETAW 0x5407 -+#define TCSETAF 0x5408 -+#define TCSBRK 0x5409 -+#define TCXONC 0x540A -+#define TCFLSH 0x540B -+#define TIOCEXCL 0x540C -+#define TIOCNXCL 0x540D -+#define TIOCSCTTY 0x540E -+#define TIOCGPGRP 0x540F -+#define TIOCSPGRP 0x5410 -+#define TIOCOUTQ 0x5411 -+#define TIOCSTI 0x5412 -+#define TIOCGWINSZ 0x5413 -+#define TIOCSWINSZ 0x5414 -+#define TIOCMGET 0x5415 -+#define TIOCMBIS 0x5416 -+#define TIOCMBIC 0x5417 -+#define TIOCMSET 0x5418 -+#define TIOCGSOFTCAR 0x5419 -+#define TIOCSSOFTCAR 0x541A -+#define FIONREAD 0x541B -+#define TIOCINQ FIONREAD -+#define TIOCLINUX 0x541C -+#define TIOCCONS 0x541D -+#define TIOCGSERIAL 0x541E -+#define TIOCSSERIAL 0x541F -+#define TIOCPKT 0x5420 -+#define FIONBIO 0x5421 -+#define TIOCNOTTY 0x5422 -+#define TIOCSETD 0x5423 -+#define TIOCGETD 0x5424 -+#define TCSBRKP 0x5425 -+#define TIOCTTYGSTRUCT 0x5426 -+#define TIOCSBRK 0x5427 -+#define TIOCCBRK 0x5428 -+#define TIOCGSID 0x5429 -+#define TIOCGPTN 0x80045430 -+#define TIOCSPTLCK 0x40045431 -+#define TCGETX 0x5432 -+#define TCSETX 0x5433 -+#define TCSETXF 0x5434 -+#define TCSETXW 0x5435 -+ -+#define FIONCLEX 0x5450 -+#define FIOCLEX 0x5451 -+#define FIOASYNC 0x5452 -+#define TIOCSERCONFIG 0x5453 -+#define TIOCSERGWILD 0x5454 -+#define TIOCSERSWILD 0x5455 -+#define TIOCGLCKTRMIOS 0x5456 -+#define TIOCSLCKTRMIOS 0x5457 -+#define TIOCSERGSTRUCT 0x5458 -+#define TIOCSERGETLSR 0x5459 -+#define TIOCSERGETMULTI 0x545A -+#define TIOCSERSETMULTI 0x545B -+ -+#define TIOCMIWAIT 0x545C -+#define TIOCGICOUNT 0x545D -+#define TIOCGHAYESESP 0x545E -+#define TIOCSHAYESESP 0x545F -+#define FIOQSIZE 0x5460 -+ -+#define TIOCPKT_DATA 0 -+#define TIOCPKT_FLUSHREAD 1 -+#define TIOCPKT_FLUSHWRITE 2 -+#define TIOCPKT_STOP 4 -+#define TIOCPKT_START 8 -+#define TIOCPKT_NOSTOP 16 -+#define TIOCPKT_DOSTOP 32 -+#define TIOCPKT_IOCTL 64 -+ -+#define TIOCSER_TEMT 0x01 -+ -+struct winsize { -+ unsigned short ws_row; -+ unsigned short ws_col; -+ unsigned short ws_xpixel; -+ unsigned short ws_ypixel; -+}; -+ -+#define TIOCM_LE 0x001 -+#define TIOCM_DTR 0x002 -+#define TIOCM_RTS 0x004 -+#define TIOCM_ST 0x008 -+#define TIOCM_SR 0x010 -+#define TIOCM_CTS 0x020 -+#define TIOCM_CAR 0x040 -+#define TIOCM_RNG 0x080 -+#define TIOCM_DSR 0x100 -+#define TIOCM_CD TIOCM_CAR -+#define TIOCM_RI TIOCM_RNG -+#define TIOCM_OUT1 0x2000 -+#define TIOCM_OUT2 0x4000 -+#define TIOCM_LOOP 0x8000 -+#define TIOCM_MODEM_BITS TIOCM_OUT2 -+ -+#define N_TTY 0 -+#define N_SLIP 1 -+#define N_MOUSE 2 -+#define N_PPP 3 -+#define N_STRIP 4 -+#define N_AX25 5 -+#define N_X25 6 -+#define N_6PACK 7 -+#define N_MASC 8 -+#define N_R3964 9 -+#define N_PROFIBUS_FDL 10 -+#define N_IRDA 11 -+#define N_SMSBLOCK 12 -+#define N_HDLC 13 -+#define N_SYNC_PPP 14 -+#define N_HCI 15 -+ -+#define FIOSETOWN 0x8901 -+#define SIOCSPGRP 0x8902 -+#define FIOGETOWN 0x8903 -+#define SIOCGPGRP 0x8904 -+#define SIOCATMARK 0x8905 -+#define SIOCGSTAMP 0x8906 -+ -+#define SIOCADDRT 0x890B -+#define SIOCDELRT 0x890C -+#define SIOCRTMSG 0x890D -+ -+#define SIOCGIFNAME 0x8910 -+#define SIOCSIFLINK 0x8911 -+#define SIOCGIFCONF 0x8912 -+#define SIOCGIFFLAGS 0x8913 -+#define SIOCSIFFLAGS 0x8914 -+#define SIOCGIFADDR 0x8915 -+#define SIOCSIFADDR 0x8916 -+#define SIOCGIFDSTADDR 0x8917 -+#define SIOCSIFDSTADDR 0x8918 -+#define SIOCGIFBRDADDR 0x8919 -+#define SIOCSIFBRDADDR 0x891a -+#define SIOCGIFNETMASK 0x891b -+#define SIOCSIFNETMASK 0x891c -+#define SIOCGIFMETRIC 0x891d -+#define SIOCSIFMETRIC 0x891e -+#define SIOCGIFMEM 0x891f -+#define SIOCSIFMEM 0x8920 -+#define SIOCGIFMTU 0x8921 -+#define SIOCSIFMTU 0x8922 -+#define SIOCSIFHWADDR 0x8924 -+#define SIOCGIFENCAP 0x8925 -+#define SIOCSIFENCAP 0x8926 -+#define SIOCGIFHWADDR 0x8927 -+#define SIOCGIFSLAVE 0x8929 -+#define SIOCSIFSLAVE 0x8930 -+#define SIOCADDMULTI 0x8931 -+#define SIOCDELMULTI 0x8932 -+#define SIOCGIFINDEX 0x8933 -+#define SIOGIFINDEX SIOCGIFINDEX -+#define SIOCSIFPFLAGS 0x8934 -+#define SIOCGIFPFLAGS 0x8935 -+#define SIOCDIFADDR 0x8936 -+#define SIOCSIFHWBROADCAST 0x8937 -+#define SIOCGIFCOUNT 0x8938 -+ -+#define SIOCGIFBR 0x8940 -+#define SIOCSIFBR 0x8941 -+ -+#define SIOCGIFTXQLEN 0x8942 -+#define SIOCSIFTXQLEN 0x8943 -+ -+#define SIOCDARP 0x8953 -+#define SIOCGARP 0x8954 -+#define SIOCSARP 0x8955 -+ -+#define SIOCDRARP 0x8960 -+#define SIOCGRARP 0x8961 -+#define SIOCSRARP 0x8962 -+ -+#define SIOCGIFMAP 0x8970 -+#define SIOCSIFMAP 0x8971 -+ -+#define SIOCADDDLCI 0x8980 -+#define SIOCDELDLCI 0x8981 -+ -+#define SIOCDEVPRIVATE 0x89F0 -+#define SIOCPROTOPRIVATE 0x89E0 -diff -Nur musl-0.9.15/arch/x32/bits/io.h musl-git/arch/x32/bits/io.h ---- musl-0.9.15/arch/x32/bits/io.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/io.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,77 @@ -+static __inline void outb(unsigned char __val, unsigned short __port) -+{ -+ __asm__ volatile ("outb %0,%1" : : "a" (__val), "dN" (__port)); -+} -+ -+static __inline void outw(unsigned short __val, unsigned short __port) -+{ -+ __asm__ volatile ("outw %0,%1" : : "a" (__val), "dN" (__port)); -+} -+ -+static __inline void outl(unsigned int __val, unsigned short __port) -+{ -+ __asm__ volatile ("outl %0,%1" : : "a" (__val), "dN" (__port)); -+} -+ -+static __inline unsigned char inb(unsigned short __port) -+{ -+ unsigned char __val; -+ __asm__ volatile ("inb %1,%0" : "=a" (__val) : "dN" (__port)); -+ return __val; -+} -+ -+static __inline unsigned short inw(unsigned short __port) -+{ -+ unsigned short __val; -+ __asm__ volatile ("inw %1,%0" : "=a" (__val) : "dN" (__port)); -+ return __val; -+} -+ -+static __inline unsigned int inl(unsigned short __port) -+{ -+ unsigned int __val; -+ __asm__ volatile ("inl %1,%0" : "=a" (__val) : "dN" (__port)); -+ return __val; -+} -+ -+static __inline void outsb(unsigned short __port, const void *__buf, unsigned long __n) -+{ -+ __asm__ volatile ("cld; rep; outsb" -+ : "+S" (__buf), "+c" (__n) -+ : "d" (__port)); -+} -+ -+static __inline void outsw(unsigned short __port, const void *__buf, unsigned long __n) -+{ -+ __asm__ volatile ("cld; rep; outsw" -+ : "+S" (__buf), "+c" (__n) -+ : "d" (__port)); -+} -+ -+static __inline void outsl(unsigned short __port, const void *__buf, unsigned long __n) -+{ -+ __asm__ volatile ("cld; rep; outsl" -+ : "+S" (__buf), "+c"(__n) -+ : "d" (__port)); -+} -+ -+static __inline void insb(unsigned short __port, void *__buf, unsigned long __n) -+{ -+ __asm__ volatile ("cld; rep; insb" -+ : "+D" (__buf), "+c" (__n) -+ : "d" (__port)); -+} -+ -+static __inline void insw(unsigned short __port, void *__buf, unsigned long __n) -+{ -+ __asm__ volatile ("cld; rep; insw" -+ : "+D" (__buf), "+c" (__n) -+ : "d" (__port)); -+} -+ -+static __inline void insl(unsigned short __port, void *__buf, unsigned long __n) -+{ -+ __asm__ volatile ("cld; rep; insl" -+ : "+D" (__buf), "+c" (__n) -+ : "d" (__port)); -+} -diff -Nur musl-0.9.15/arch/x32/bits/ipc.h musl-git/arch/x32/bits/ipc.h ---- musl-0.9.15/arch/x32/bits/ipc.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/ipc.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,14 @@ -+struct ipc_perm -+{ -+ key_t __ipc_perm_key; -+ uid_t uid; -+ gid_t gid; -+ uid_t cuid; -+ gid_t cgid; -+ mode_t mode; -+ int __ipc_perm_seq; -+ long long __pad1; -+ long long __pad2; -+}; -+ -+#define IPC_64 0 -diff -Nur musl-0.9.15/arch/x32/bits/limits.h musl-git/arch/x32/bits/limits.h ---- musl-0.9.15/arch/x32/bits/limits.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/limits.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,8 @@ -+#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 -+ -+#define LONG_MAX 0x7fffffffL -+#define LLONG_MAX 0x7fffffffffffffffLL -diff -Nur musl-0.9.15/arch/x32/bits/mman.h musl-git/arch/x32/bits/mman.h ---- musl-0.9.15/arch/x32/bits/mman.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/mman.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,62 @@ -+#define MAP_FAILED ((void *) -1) -+ -+#define PROT_NONE 0 -+#define PROT_READ 1 -+#define PROT_WRITE 2 -+#define PROT_EXEC 4 -+#define PROT_GROWSDOWN 0x01000000 -+#define PROT_GROWSUP 0x02000000 -+ -+#define MAP_SHARED 0x01 -+#define MAP_PRIVATE 0x02 -+#define MAP_FIXED 0x10 -+ -+#define MAP_TYPE 0x0f -+#define MAP_FILE 0x00 -+#define MAP_ANON 0x20 -+#define MAP_ANONYMOUS MAP_ANON -+#define MAP_32BIT 0x40 -+#define MAP_NORESERVE 0x4000 -+#define MAP_GROWSDOWN 0x0100 -+#define MAP_DENYWRITE 0x0800 -+#define MAP_EXECUTABLE 0x1000 -+#define MAP_LOCKED 0x2000 -+#define MAP_POPULATE 0x8000 -+#define MAP_NONBLOCK 0x10000 -+#define MAP_STACK 0x20000 -+#define MAP_HUGETLB 0x40000 -+ -+#define POSIX_MADV_NORMAL 0 -+#define POSIX_MADV_RANDOM 1 -+#define POSIX_MADV_SEQUENTIAL 2 -+#define POSIX_MADV_WILLNEED 3 -+#define POSIX_MADV_DONTNEED 0 -+ -+#define MS_ASYNC 1 -+#define MS_INVALIDATE 2 -+#define MS_SYNC 4 -+ -+#define MCL_CURRENT 1 -+#define MCL_FUTURE 2 -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define MADV_NORMAL 0 -+#define MADV_RANDOM 1 -+#define MADV_SEQUENTIAL 2 -+#define MADV_WILLNEED 3 -+#define MADV_DONTNEED 4 -+#define MADV_REMOVE 9 -+#define MADV_DONTFORK 10 -+#define MADV_DOFORK 11 -+#define MADV_MERGEABLE 12 -+#define MADV_UNMERGEABLE 13 -+#define MADV_HUGEPAGE 14 -+#define MADV_NOHUGEPAGE 15 -+#define MADV_DONTDUMP 16 -+#define MADV_DODUMP 17 -+#define MADV_HWPOISON 100 -+#define MADV_SOFT_OFFLINE 101 -+ -+#define MREMAP_MAYMOVE 1 -+#define MREMAP_FIXED 2 -+#endif -diff -Nur musl-0.9.15/arch/x32/bits/msg.h musl-git/arch/x32/bits/msg.h ---- musl-0.9.15/arch/x32/bits/msg.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/msg.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,16 @@ -+struct msqid_ds -+{ -+ struct ipc_perm msg_perm; -+ time_t msg_stime; -+ time_t msg_rtime; -+ time_t msg_ctime; -+ unsigned long msg_cbytes; -+ long __unused1; -+ msgqnum_t msg_qnum; -+ long __unused2; -+ msglen_t msg_qbytes; -+ long __unused3; -+ pid_t msg_lspid; -+ pid_t msg_lrpid; -+ unsigned long long __unused[2]; -+}; -diff -Nur musl-0.9.15/arch/x32/bits/posix.h musl-git/arch/x32/bits/posix.h ---- musl-0.9.15/arch/x32/bits/posix.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/posix.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,2 @@ -+#define _POSIX_V6_LP64_OFF64 1 -+#define _POSIX_V7_LP64_OFF64 1 -diff -Nur musl-0.9.15/arch/x32/bits/reg.h musl-git/arch/x32/bits/reg.h ---- musl-0.9.15/arch/x32/bits/reg.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/reg.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,29 @@ -+#undef __WORDSIZE -+#define __WORDSIZE 32 -+#define R15 0 -+#define R14 1 -+#define R13 2 -+#define R12 3 -+#define RBP 4 -+#define RBX 5 -+#define R11 6 -+#define R10 7 -+#define R9 8 -+#define R8 9 -+#define RAX 10 -+#define RCX 11 -+#define RDX 12 -+#define RSI 13 -+#define RDI 14 -+#define ORIG_RAX 15 -+#define RIP 16 -+#define CS 17 -+#define EFLAGS 18 -+#define RSP 19 -+#define SS 20 -+#define FS_BASE 21 -+#define GS_BASE 22 -+#define DS 23 -+#define ES 24 -+#define FS 25 -+#define GS 26 -diff -Nur musl-0.9.15/arch/x32/bits/setjmp.h musl-git/arch/x32/bits/setjmp.h ---- musl-0.9.15/arch/x32/bits/setjmp.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/setjmp.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1 @@ -+typedef unsigned long long __jmp_buf[8]; -diff -Nur musl-0.9.15/arch/x32/bits/shm.h musl-git/arch/x32/bits/shm.h ---- musl-0.9.15/arch/x32/bits/shm.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/shm.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,33 @@ -+#define SHMLBA 4096 -+ -+struct shmid_ds -+{ -+ struct ipc_perm shm_perm; -+ size_t shm_segsz; -+ time_t shm_atime; -+ time_t shm_dtime; -+ time_t shm_ctime; -+ pid_t shm_cpid; -+ pid_t shm_lpid; -+ unsigned long shm_nattch; -+ unsigned long __pad0; -+ unsigned long long __pad1; -+ unsigned long long __pad2; -+}; -+ -+struct shminfo { -+ unsigned long shmmax, __pad0, shmmin, __pad1, shmmni, __pad2, -+ shmseg, __pad3, shmall, __pad4; -+ unsigned long long __unused[4]; -+}; -+ -+struct shm_info { -+ int __used_ids; -+ int __pad_ids; -+ unsigned long shm_tot, __pad0, shm_rss, __pad1, shm_swp, __pad2; -+ unsigned long __swap_attempts, __pad3, __swap_successes, __pad4; -+} -+#ifdef __GNUC__ -+__attribute__((__aligned__(8))) -+#endif -+; -diff -Nur musl-0.9.15/arch/x32/bits/signal.h musl-git/arch/x32/bits/signal.h ---- musl-0.9.15/arch/x32/bits/signal.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/signal.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,119 @@ -+#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ -+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+ -+#ifdef _GNU_SOURCE -+#define REG_R8 0 -+#define REG_R9 1 -+#define REG_R10 2 -+#define REG_R11 3 -+#define REG_R12 4 -+#define REG_R13 5 -+#define REG_R14 6 -+#define REG_R15 7 -+#define REG_RDI 8 -+#define REG_RSI 9 -+#define REG_RBP 10 -+#define REG_RBX 11 -+#define REG_RDX 12 -+#define REG_RAX 13 -+#define REG_RCX 14 -+#define REG_RSP 15 -+#define REG_RIP 16 -+#define REG_EFL 17 -+#define REG_CSGSFS 18 -+#define REG_ERR 19 -+#define REG_TRAPNO 20 -+#define REG_OLDMASK 21 -+#define REG_CR2 22 -+#endif -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+typedef long long greg_t, gregset_t[23]; -+typedef struct _fpstate { -+ unsigned short cwd, swd, ftw, fop; -+ unsigned long long rip, rdp; -+ unsigned mxcsr, mxcr_mask; -+ struct { -+ unsigned short significand[4], exponent, padding[3]; -+ } _st[8]; -+ struct { -+ unsigned element[4]; -+ } _xmm[16]; -+ unsigned padding[24]; -+} *fpregset_t; -+struct sigcontext { -+ unsigned long long r8, r9, r10, r11, r12, r13, r14, r15; -+ unsigned long long rdi, rsi, rbp, rbx, rdx, rax, rcx, rsp, rip, eflags; -+ unsigned short cs, gs, fs, __pad0; -+ unsigned long long err, trapno, oldmask, cr2; -+ struct _fpstate *fpstate; -+ unsigned long long __reserved1[8]; -+}; -+typedef struct { -+ gregset_t gregs; -+ fpregset_t fpregs; -+ unsigned long long __reserved1[8]; -+} mcontext_t; -+#else -+typedef struct { -+ unsigned long long __space[32]; -+} mcontext_t; -+#endif -+ -+typedef struct __ucontext { -+ unsigned long uc_flags; -+ struct __ucontext *uc_link; -+ stack_t uc_stack; -+ mcontext_t uc_mcontext; -+ sigset_t uc_sigmask; -+ unsigned long long __fpregs_mem[64]; -+} ucontext_t; -+ -+#define SA_NOCLDSTOP 1 -+#define SA_NOCLDWAIT 2 -+#define SA_SIGINFO 4 -+#define SA_ONSTACK 0x08000000 -+#define SA_RESTART 0x10000000 -+#define SA_NODEFER 0x40000000 -+#define SA_RESETHAND 0x80000000 -+#define SA_RESTORER 0x04000000 -+ -+#endif -+ -+#define SIGHUP 1 -+#define SIGINT 2 -+#define SIGQUIT 3 -+#define SIGILL 4 -+#define SIGTRAP 5 -+#define SIGABRT 6 -+#define SIGIOT SIGABRT -+#define SIGBUS 7 -+#define SIGFPE 8 -+#define SIGKILL 9 -+#define SIGUSR1 10 -+#define SIGSEGV 11 -+#define SIGUSR2 12 -+#define SIGPIPE 13 -+#define SIGALRM 14 -+#define SIGTERM 15 -+#define SIGSTKFLT 16 -+#define SIGCHLD 17 -+#define SIGCONT 18 -+#define SIGSTOP 19 -+#define SIGTSTP 20 -+#define SIGTTIN 21 -+#define SIGTTOU 22 -+#define SIGURG 23 -+#define SIGXCPU 24 -+#define SIGXFSZ 25 -+#define SIGVTALRM 26 -+#define SIGPROF 27 -+#define SIGWINCH 28 -+#define SIGIO 29 -+#define SIGPOLL 29 -+#define SIGPWR 30 -+#define SIGSYS 31 -+#define SIGUNUSED SIGSYS -+ -+#define _NSIG 65 -+ -diff -Nur musl-0.9.15/arch/x32/bits/socket.h musl-git/arch/x32/bits/socket.h ---- musl-0.9.15/arch/x32/bits/socket.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/socket.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,18 @@ -+struct msghdr -+{ -+ void *msg_name; -+ socklen_t msg_namelen; -+ struct iovec *msg_iov; -+ int msg_iovlen, __pad1; -+ void *msg_control; -+ socklen_t msg_controllen, __pad2; -+ int msg_flags; -+}; -+ -+struct cmsghdr -+{ -+ socklen_t cmsg_len; -+ int __pad1; -+ int cmsg_level; -+ int cmsg_type; -+}; -diff -Nur musl-0.9.15/arch/x32/bits/statfs.h musl-git/arch/x32/bits/statfs.h ---- musl-0.9.15/arch/x32/bits/statfs.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/statfs.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,7 @@ -+struct statfs { -+ unsigned long f_type, f_bsize; -+ fsblkcnt_t f_blocks, f_bfree, f_bavail; -+ fsfilcnt_t f_files, f_ffree; -+ fsid_t f_fsid; -+ unsigned long f_namelen, f_frsize, f_flags, f_spare[4]; -+}; -diff -Nur musl-0.9.15/arch/x32/bits/stat.h musl-git/arch/x32/bits/stat.h ---- musl-0.9.15/arch/x32/bits/stat.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/stat.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,22 @@ -+/* copied from kernel definition, but with padding replaced -+ * by the corresponding correctly-sized userspace types. */ -+ -+struct stat { -+ dev_t st_dev; -+ ino_t st_ino; -+ nlink_t st_nlink; -+ -+ mode_t st_mode; -+ uid_t st_uid; -+ gid_t st_gid; -+ unsigned int __pad0; -+ dev_t st_rdev; -+ off_t st_size; -+ blksize_t st_blksize; -+ blkcnt_t st_blocks; -+ -+ struct timespec st_atim; -+ struct timespec st_mtim; -+ struct timespec st_ctim; -+ long long __unused[3]; -+}; -diff -Nur musl-0.9.15/arch/x32/bits/stdarg.h musl-git/arch/x32/bits/stdarg.h ---- musl-0.9.15/arch/x32/bits/stdarg.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/stdarg.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,4 @@ -+#define va_start(v,l) __builtin_va_start(v,l) -+#define va_end(v) __builtin_va_end(v) -+#define va_arg(v,l) __builtin_va_arg(v,l) -+#define va_copy(d,s) __builtin_va_copy(d,s) -diff -Nur musl-0.9.15/arch/x32/bits/stdint.h musl-git/arch/x32/bits/stdint.h ---- musl-0.9.15/arch/x32/bits/stdint.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/stdint.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,20 @@ -+typedef int32_t int_fast16_t; -+typedef int32_t int_fast32_t; -+typedef uint32_t uint_fast16_t; -+typedef uint32_t uint_fast32_t; -+ -+#define INT_FAST16_MIN INT32_MIN -+#define INT_FAST32_MIN INT32_MIN -+ -+#define INT_FAST16_MAX INT32_MAX -+#define INT_FAST32_MAX INT32_MAX -+ -+#define UINT_FAST16_MAX UINT32_MAX -+#define UINT_FAST32_MAX UINT32_MAX -+ -+#define INTPTR_MIN INT32_MIN -+#define INTPTR_MAX INT32_MAX -+#define UINTPTR_MAX UINT32_MAX -+#define PTRDIFF_MIN INT32_MIN -+#define PTRDIFF_MAX INT32_MAX -+#define SIZE_MAX UINT32_MAX -diff -Nur musl-0.9.15/arch/x32/bits/syscall.h musl-git/arch/x32/bits/syscall.h ---- musl-0.9.15/arch/x32/bits/syscall.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/syscall.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,634 @@ -+#define __X32_SYSCALL_BIT 0x40000000 -+#define __NR_read (__X32_SYSCALL_BIT + 0) -+#define __NR_write (__X32_SYSCALL_BIT + 1) -+#define __NR_open (__X32_SYSCALL_BIT + 2) -+#define __NR_close (__X32_SYSCALL_BIT + 3) -+#define __NR_stat (__X32_SYSCALL_BIT + 4) -+#define __NR_fstat (__X32_SYSCALL_BIT + 5) -+#define __NR_lstat (__X32_SYSCALL_BIT + 6) -+#define __NR_poll (__X32_SYSCALL_BIT + 7) -+#define __NR_lseek (__X32_SYSCALL_BIT + 8) -+#define __NR_mmap (__X32_SYSCALL_BIT + 9) -+#define __NR_mprotect (__X32_SYSCALL_BIT + 10) -+#define __NR_munmap (__X32_SYSCALL_BIT + 11) -+#define __NR_brk (__X32_SYSCALL_BIT + 12) -+#define __NR_rt_sigprocmask (__X32_SYSCALL_BIT + 14) -+#define __NR_pread64 (__X32_SYSCALL_BIT + 17) -+#define __NR_pwrite64 (__X32_SYSCALL_BIT + 18) -+#define __NR_access (__X32_SYSCALL_BIT + 21) -+#define __NR_pipe (__X32_SYSCALL_BIT + 22) -+#define __NR_select (__X32_SYSCALL_BIT + 23) -+#define __NR_sched_yield (__X32_SYSCALL_BIT + 24) -+#define __NR_mremap (__X32_SYSCALL_BIT + 25) -+#define __NR_msync (__X32_SYSCALL_BIT + 26) -+#define __NR_mincore (__X32_SYSCALL_BIT + 27) -+#define __NR_madvise (__X32_SYSCALL_BIT + 28) -+#define __NR_shmget (__X32_SYSCALL_BIT + 29) -+#define __NR_shmat (__X32_SYSCALL_BIT + 30) -+#define __NR_shmctl (__X32_SYSCALL_BIT + 31) -+#define __NR_dup (__X32_SYSCALL_BIT + 32) -+#define __NR_dup2 (__X32_SYSCALL_BIT + 33) -+#define __NR_pause (__X32_SYSCALL_BIT + 34) -+#define __NR_nanosleep (__X32_SYSCALL_BIT + 35) -+#define __NR_getitimer (__X32_SYSCALL_BIT + 36) -+#define __NR_alarm (__X32_SYSCALL_BIT + 37) -+#define __NR_setitimer (__X32_SYSCALL_BIT + 38) -+#define __NR_getpid (__X32_SYSCALL_BIT + 39) -+#define __NR_sendfile (__X32_SYSCALL_BIT + 40) -+#define __NR_socket (__X32_SYSCALL_BIT + 41) -+#define __NR_connect (__X32_SYSCALL_BIT + 42) -+#define __NR_accept (__X32_SYSCALL_BIT + 43) -+#define __NR_sendto (__X32_SYSCALL_BIT + 44) -+#define __NR_shutdown (__X32_SYSCALL_BIT + 48) -+#define __NR_bind (__X32_SYSCALL_BIT + 49) -+#define __NR_listen (__X32_SYSCALL_BIT + 50) -+#define __NR_getsockname (__X32_SYSCALL_BIT + 51) -+#define __NR_getpeername (__X32_SYSCALL_BIT + 52) -+#define __NR_socketpair (__X32_SYSCALL_BIT + 53) -+#define __NR_clone (__X32_SYSCALL_BIT + 56) -+#define __NR_fork (__X32_SYSCALL_BIT + 57) -+#define __NR_vfork (__X32_SYSCALL_BIT + 58) -+#define __NR_exit (__X32_SYSCALL_BIT + 60) -+#define __NR_wait4 (__X32_SYSCALL_BIT + 61) -+#define __NR_kill (__X32_SYSCALL_BIT + 62) -+#define __NR_uname (__X32_SYSCALL_BIT + 63) -+#define __NR_semget (__X32_SYSCALL_BIT + 64) -+#define __NR_semop (__X32_SYSCALL_BIT + 65) -+#define __NR_semctl (__X32_SYSCALL_BIT + 66) -+#define __NR_shmdt (__X32_SYSCALL_BIT + 67) -+#define __NR_msgget (__X32_SYSCALL_BIT + 68) -+#define __NR_msgsnd (__X32_SYSCALL_BIT + 69) -+#define __NR_msgrcv (__X32_SYSCALL_BIT + 70) -+#define __NR_msgctl (__X32_SYSCALL_BIT + 71) -+#define __NR_fcntl (__X32_SYSCALL_BIT + 72) -+#define __NR_flock (__X32_SYSCALL_BIT + 73) -+#define __NR_fsync (__X32_SYSCALL_BIT + 74) -+#define __NR_fdatasync (__X32_SYSCALL_BIT + 75) -+#define __NR_truncate (__X32_SYSCALL_BIT + 76) -+#define __NR_ftruncate (__X32_SYSCALL_BIT + 77) -+#define __NR_getdents (__X32_SYSCALL_BIT + 78) -+#define __NR_getcwd (__X32_SYSCALL_BIT + 79) -+#define __NR_chdir (__X32_SYSCALL_BIT + 80) -+#define __NR_fchdir (__X32_SYSCALL_BIT + 81) -+#define __NR_rename (__X32_SYSCALL_BIT + 82) -+#define __NR_mkdir (__X32_SYSCALL_BIT + 83) -+#define __NR_rmdir (__X32_SYSCALL_BIT + 84) -+#define __NR_creat (__X32_SYSCALL_BIT + 85) -+#define __NR_link (__X32_SYSCALL_BIT + 86) -+#define __NR_unlink (__X32_SYSCALL_BIT + 87) -+#define __NR_symlink (__X32_SYSCALL_BIT + 88) -+#define __NR_readlink (__X32_SYSCALL_BIT + 89) -+#define __NR_chmod (__X32_SYSCALL_BIT + 90) -+#define __NR_fchmod (__X32_SYSCALL_BIT + 91) -+#define __NR_chown (__X32_SYSCALL_BIT + 92) -+#define __NR_fchown (__X32_SYSCALL_BIT + 93) -+#define __NR_lchown (__X32_SYSCALL_BIT + 94) -+#define __NR_umask (__X32_SYSCALL_BIT + 95) -+#define __NR_gettimeofday (__X32_SYSCALL_BIT + 96) -+#define __NR_getrlimit (__X32_SYSCALL_BIT + 97) -+#define __NR_getrusage (__X32_SYSCALL_BIT + 98) -+#define __NR_sysinfo (__X32_SYSCALL_BIT + 99) -+#define __NR_times (__X32_SYSCALL_BIT + 100) -+#define __NR_getuid (__X32_SYSCALL_BIT + 102) -+#define __NR_syslog (__X32_SYSCALL_BIT + 103) -+#define __NR_getgid (__X32_SYSCALL_BIT + 104) -+#define __NR_setuid (__X32_SYSCALL_BIT + 105) -+#define __NR_setgid (__X32_SYSCALL_BIT + 106) -+#define __NR_geteuid (__X32_SYSCALL_BIT + 107) -+#define __NR_getegid (__X32_SYSCALL_BIT + 108) -+#define __NR_setpgid (__X32_SYSCALL_BIT + 109) -+#define __NR_getppid (__X32_SYSCALL_BIT + 110) -+#define __NR_getpgrp (__X32_SYSCALL_BIT + 111) -+#define __NR_setsid (__X32_SYSCALL_BIT + 112) -+#define __NR_setreuid (__X32_SYSCALL_BIT + 113) -+#define __NR_setregid (__X32_SYSCALL_BIT + 114) -+#define __NR_getgroups (__X32_SYSCALL_BIT + 115) -+#define __NR_setgroups (__X32_SYSCALL_BIT + 116) -+#define __NR_setresuid (__X32_SYSCALL_BIT + 117) -+#define __NR_getresuid (__X32_SYSCALL_BIT + 118) -+#define __NR_setresgid (__X32_SYSCALL_BIT + 119) -+#define __NR_getresgid (__X32_SYSCALL_BIT + 120) -+#define __NR_getpgid (__X32_SYSCALL_BIT + 121) -+#define __NR_setfsuid (__X32_SYSCALL_BIT + 122) -+#define __NR_setfsgid (__X32_SYSCALL_BIT + 123) -+#define __NR_getsid (__X32_SYSCALL_BIT + 124) -+#define __NR_capget (__X32_SYSCALL_BIT + 125) -+#define __NR_capset (__X32_SYSCALL_BIT + 126) -+#define __NR_rt_sigsuspend (__X32_SYSCALL_BIT + 130) -+#define __NR_utime (__X32_SYSCALL_BIT + 132) -+#define __NR_mknod (__X32_SYSCALL_BIT + 133) -+#define __NR_personality (__X32_SYSCALL_BIT + 135) -+#define __NR_ustat (__X32_SYSCALL_BIT + 136) -+#define __NR_statfs (__X32_SYSCALL_BIT + 137) -+#define __NR_fstatfs (__X32_SYSCALL_BIT + 138) -+#define __NR_sysfs (__X32_SYSCALL_BIT + 139) -+#define __NR_getpriority (__X32_SYSCALL_BIT + 140) -+#define __NR_setpriority (__X32_SYSCALL_BIT + 141) -+#define __NR_sched_setparam (__X32_SYSCALL_BIT + 142) -+#define __NR_sched_getparam (__X32_SYSCALL_BIT + 143) -+#define __NR_sched_setscheduler (__X32_SYSCALL_BIT + 144) -+#define __NR_sched_getscheduler (__X32_SYSCALL_BIT + 145) -+#define __NR_sched_get_priority_max (__X32_SYSCALL_BIT + 146) -+#define __NR_sched_get_priority_min (__X32_SYSCALL_BIT + 147) -+#define __NR_sched_rr_get_interval (__X32_SYSCALL_BIT + 148) -+#define __NR_mlock (__X32_SYSCALL_BIT + 149) -+#define __NR_munlock (__X32_SYSCALL_BIT + 150) -+#define __NR_mlockall (__X32_SYSCALL_BIT + 151) -+#define __NR_munlockall (__X32_SYSCALL_BIT + 152) -+#define __NR_vhangup (__X32_SYSCALL_BIT + 153) -+#define __NR_modify_ldt (__X32_SYSCALL_BIT + 154) -+#define __NR_pivot_root (__X32_SYSCALL_BIT + 155) -+#define __NR_prctl (__X32_SYSCALL_BIT + 157) -+#define __NR_arch_prctl (__X32_SYSCALL_BIT + 158) -+#define __NR_adjtimex (__X32_SYSCALL_BIT + 159) -+#define __NR_setrlimit (__X32_SYSCALL_BIT + 160) -+#define __NR_chroot (__X32_SYSCALL_BIT + 161) -+#define __NR_sync (__X32_SYSCALL_BIT + 162) -+#define __NR_acct (__X32_SYSCALL_BIT + 163) -+#define __NR_settimeofday (__X32_SYSCALL_BIT + 164) -+#define __NR_mount (__X32_SYSCALL_BIT + 165) -+#define __NR_umount2 (__X32_SYSCALL_BIT + 166) -+#define __NR_swapon (__X32_SYSCALL_BIT + 167) -+#define __NR_swapoff (__X32_SYSCALL_BIT + 168) -+#define __NR_reboot (__X32_SYSCALL_BIT + 169) -+#define __NR_sethostname (__X32_SYSCALL_BIT + 170) -+#define __NR_setdomainname (__X32_SYSCALL_BIT + 171) -+#define __NR_iopl (__X32_SYSCALL_BIT + 172) -+#define __NR_ioperm (__X32_SYSCALL_BIT + 173) -+#define __NR_init_module (__X32_SYSCALL_BIT + 175) -+#define __NR_delete_module (__X32_SYSCALL_BIT + 176) -+#define __NR_quotactl (__X32_SYSCALL_BIT + 179) -+#define __NR_getpmsg (__X32_SYSCALL_BIT + 181) -+#define __NR_putpmsg (__X32_SYSCALL_BIT + 182) -+#define __NR_afs_syscall (__X32_SYSCALL_BIT + 183) -+#define __NR_tuxcall (__X32_SYSCALL_BIT + 184) -+#define __NR_security (__X32_SYSCALL_BIT + 185) -+#define __NR_gettid (__X32_SYSCALL_BIT + 186) -+#define __NR_readahead (__X32_SYSCALL_BIT + 187) -+#define __NR_setxattr (__X32_SYSCALL_BIT + 188) -+#define __NR_lsetxattr (__X32_SYSCALL_BIT + 189) -+#define __NR_fsetxattr (__X32_SYSCALL_BIT + 190) -+#define __NR_getxattr (__X32_SYSCALL_BIT + 191) -+#define __NR_lgetxattr (__X32_SYSCALL_BIT + 192) -+#define __NR_fgetxattr (__X32_SYSCALL_BIT + 193) -+#define __NR_listxattr (__X32_SYSCALL_BIT + 194) -+#define __NR_llistxattr (__X32_SYSCALL_BIT + 195) -+#define __NR_flistxattr (__X32_SYSCALL_BIT + 196) -+#define __NR_removexattr (__X32_SYSCALL_BIT + 197) -+#define __NR_lremovexattr (__X32_SYSCALL_BIT + 198) -+#define __NR_fremovexattr (__X32_SYSCALL_BIT + 199) -+#define __NR_tkill (__X32_SYSCALL_BIT + 200) -+#define __NR_time (__X32_SYSCALL_BIT + 201) -+#define __NR_futex (__X32_SYSCALL_BIT + 202) -+#define __NR_sched_setaffinity (__X32_SYSCALL_BIT + 203) -+#define __NR_sched_getaffinity (__X32_SYSCALL_BIT + 204) -+#define __NR_io_setup (__X32_SYSCALL_BIT + 206) -+#define __NR_io_destroy (__X32_SYSCALL_BIT + 207) -+#define __NR_io_getevents (__X32_SYSCALL_BIT + 208) -+#define __NR_io_submit (__X32_SYSCALL_BIT + 209) -+#define __NR_io_cancel (__X32_SYSCALL_BIT + 210) -+#define __NR_lookup_dcookie (__X32_SYSCALL_BIT + 212) -+#define __NR_epoll_create (__X32_SYSCALL_BIT + 213) -+#define __NR_remap_file_pages (__X32_SYSCALL_BIT + 216) -+#define __NR_getdents64 (__X32_SYSCALL_BIT + 217) -+#define __NR_set_tid_address (__X32_SYSCALL_BIT + 218) -+#define __NR_restart_syscall (__X32_SYSCALL_BIT + 219) -+#define __NR_semtimedop (__X32_SYSCALL_BIT + 220) -+#define __NR_fadvise64 (__X32_SYSCALL_BIT + 221) -+#define __NR_timer_settime (__X32_SYSCALL_BIT + 223) -+#define __NR_timer_gettime (__X32_SYSCALL_BIT + 224) -+#define __NR_timer_getoverrun (__X32_SYSCALL_BIT + 225) -+#define __NR_timer_delete (__X32_SYSCALL_BIT + 226) -+#define __NR_clock_settime (__X32_SYSCALL_BIT + 227) -+#define __NR_clock_gettime (__X32_SYSCALL_BIT + 228) -+#define __NR_clock_getres (__X32_SYSCALL_BIT + 229) -+#define __NR_clock_nanosleep (__X32_SYSCALL_BIT + 230) -+#define __NR_exit_group (__X32_SYSCALL_BIT + 231) -+#define __NR_epoll_wait (__X32_SYSCALL_BIT + 232) -+#define __NR_epoll_ctl (__X32_SYSCALL_BIT + 233) -+#define __NR_tgkill (__X32_SYSCALL_BIT + 234) -+#define __NR_utimes (__X32_SYSCALL_BIT + 235) -+#define __NR_mbind (__X32_SYSCALL_BIT + 237) -+#define __NR_set_mempolicy (__X32_SYSCALL_BIT + 238) -+#define __NR_get_mempolicy (__X32_SYSCALL_BIT + 239) -+#define __NR_mq_open (__X32_SYSCALL_BIT + 240) -+#define __NR_mq_unlink (__X32_SYSCALL_BIT + 241) -+#define __NR_mq_timedsend (__X32_SYSCALL_BIT + 242) -+#define __NR_mq_timedreceive (__X32_SYSCALL_BIT + 243) -+#define __NR_mq_getsetattr (__X32_SYSCALL_BIT + 245) -+#define __NR_add_key (__X32_SYSCALL_BIT + 248) -+#define __NR_request_key (__X32_SYSCALL_BIT + 249) -+#define __NR_keyctl (__X32_SYSCALL_BIT + 250) -+#define __NR_ioprio_set (__X32_SYSCALL_BIT + 251) -+#define __NR_ioprio_get (__X32_SYSCALL_BIT + 252) -+#define __NR_inotify_init (__X32_SYSCALL_BIT + 253) -+#define __NR_inotify_add_watch (__X32_SYSCALL_BIT + 254) -+#define __NR_inotify_rm_watch (__X32_SYSCALL_BIT + 255) -+#define __NR_migrate_pages (__X32_SYSCALL_BIT + 256) -+#define __NR_openat (__X32_SYSCALL_BIT + 257) -+#define __NR_mkdirat (__X32_SYSCALL_BIT + 258) -+#define __NR_mknodat (__X32_SYSCALL_BIT + 259) -+#define __NR_fchownat (__X32_SYSCALL_BIT + 260) -+#define __NR_futimesat (__X32_SYSCALL_BIT + 261) -+#define __NR_newfstatat (__X32_SYSCALL_BIT + 262) -+#define __NR_unlinkat (__X32_SYSCALL_BIT + 263) -+#define __NR_renameat (__X32_SYSCALL_BIT + 264) -+#define __NR_linkat (__X32_SYSCALL_BIT + 265) -+#define __NR_symlinkat (__X32_SYSCALL_BIT + 266) -+#define __NR_readlinkat (__X32_SYSCALL_BIT + 267) -+#define __NR_fchmodat (__X32_SYSCALL_BIT + 268) -+#define __NR_faccessat (__X32_SYSCALL_BIT + 269) -+#define __NR_pselect6 (__X32_SYSCALL_BIT + 270) -+#define __NR_ppoll (__X32_SYSCALL_BIT + 271) -+#define __NR_unshare (__X32_SYSCALL_BIT + 272) -+#define __NR_splice (__X32_SYSCALL_BIT + 275) -+#define __NR_tee (__X32_SYSCALL_BIT + 276) -+#define __NR_sync_file_range (__X32_SYSCALL_BIT + 277) -+#define __NR_utimensat (__X32_SYSCALL_BIT + 280) -+#define __NR_epoll_pwait (__X32_SYSCALL_BIT + 281) -+#define __NR_signalfd (__X32_SYSCALL_BIT + 282) -+#define __NR_timerfd_create (__X32_SYSCALL_BIT + 283) -+#define __NR_eventfd (__X32_SYSCALL_BIT + 284) -+#define __NR_fallocate (__X32_SYSCALL_BIT + 285) -+#define __NR_timerfd_settime (__X32_SYSCALL_BIT + 286) -+#define __NR_timerfd_gettime (__X32_SYSCALL_BIT + 287) -+#define __NR_accept4 (__X32_SYSCALL_BIT + 288) -+#define __NR_signalfd4 (__X32_SYSCALL_BIT + 289) -+#define __NR_eventfd2 (__X32_SYSCALL_BIT + 290) -+#define __NR_epoll_create1 (__X32_SYSCALL_BIT + 291) -+#define __NR_dup3 (__X32_SYSCALL_BIT + 292) -+#define __NR_pipe2 (__X32_SYSCALL_BIT + 293) -+#define __NR_inotify_init1 (__X32_SYSCALL_BIT + 294) -+#define __NR_perf_event_open (__X32_SYSCALL_BIT + 298) -+#define __NR_fanotify_init (__X32_SYSCALL_BIT + 300) -+#define __NR_fanotify_mark (__X32_SYSCALL_BIT + 301) -+#define __NR_prlimit64 (__X32_SYSCALL_BIT + 302) -+#define __NR_name_to_handle_at (__X32_SYSCALL_BIT + 303) -+#define __NR_open_by_handle_at (__X32_SYSCALL_BIT + 304) -+#define __NR_clock_adjtime (__X32_SYSCALL_BIT + 305) -+#define __NR_syncfs (__X32_SYSCALL_BIT + 306) -+#define __NR_setns (__X32_SYSCALL_BIT + 308) -+#define __NR_getcpu (__X32_SYSCALL_BIT + 309) -+#define __NR_kcmp (__X32_SYSCALL_BIT + 312) -+#define __NR_finit_module (__X32_SYSCALL_BIT + 313) -+#define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512) -+#define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513) -+#define __NR_ioctl (__X32_SYSCALL_BIT + 514) -+#define __NR_readv (__X32_SYSCALL_BIT + 515) -+#define __NR_writev (__X32_SYSCALL_BIT + 516) -+#define __NR_recvfrom (__X32_SYSCALL_BIT + 517) -+#define __NR_sendmsg (__X32_SYSCALL_BIT + 518) -+#define __NR_recvmsg (__X32_SYSCALL_BIT + 519) -+#define __NR_execve (__X32_SYSCALL_BIT + 520) -+#define __NR_ptrace (__X32_SYSCALL_BIT + 521) -+#define __NR_rt_sigpending (__X32_SYSCALL_BIT + 522) -+#define __NR_rt_sigtimedwait (__X32_SYSCALL_BIT + 523) -+#define __NR_rt_sigqueueinfo (__X32_SYSCALL_BIT + 524) -+#define __NR_sigaltstack (__X32_SYSCALL_BIT + 525) -+#define __NR_timer_create (__X32_SYSCALL_BIT + 526) -+#define __NR_mq_notify (__X32_SYSCALL_BIT + 527) -+#define __NR_kexec_load (__X32_SYSCALL_BIT + 528) -+#define __NR_waitid (__X32_SYSCALL_BIT + 529) -+#define __NR_set_robust_list (__X32_SYSCALL_BIT + 530) -+#define __NR_get_robust_list (__X32_SYSCALL_BIT + 531) -+#define __NR_vmsplice (__X32_SYSCALL_BIT + 532) -+#define __NR_move_pages (__X32_SYSCALL_BIT + 533) -+#define __NR_preadv (__X32_SYSCALL_BIT + 534) -+#define __NR_pwritev (__X32_SYSCALL_BIT + 535) -+#define __NR_rt_tgsigqueueinfo (__X32_SYSCALL_BIT + 536) -+#define __NR_recvmmsg (__X32_SYSCALL_BIT + 537) -+#define __NR_sendmmsg (__X32_SYSCALL_BIT + 538) -+#define __NR_process_vm_readv (__X32_SYSCALL_BIT + 539) -+#define __NR_process_vm_writev (__X32_SYSCALL_BIT + 540) -+#define __NR_setsockopt (__X32_SYSCALL_BIT + 541) -+#define __NR_getsockopt (__X32_SYSCALL_BIT + 542) -+ -+#undef __NR_fstatat -+#undef __NR_pread -+#undef __NR_pwrite -+#undef __NR_getdents -+#define __NR_fstatat __NR_newfstatat -+#define __NR_pread __NR_pread64 -+#define __NR_pwrite __NR_pwrite64 -+#define __NR_getdents __NR_getdents64 -+#define __NR_fadvise __NR_fadvise64 -+ -+ -+ -+/* Repeat with SYS_ prefix */ -+ -+ -+ -+#define SYS_read __NR_read -+#define SYS_write __NR_write -+#define SYS_open __NR_open -+#define SYS_close __NR_close -+#define SYS_stat __NR_stat -+#define SYS_fstat __NR_fstat -+#define SYS_lstat __NR_lstat -+#define SYS_poll __NR_poll -+#define SYS_lseek __NR_lseek -+#define SYS_mmap __NR_mmap -+#define SYS_mprotect __NR_mprotect -+#define SYS_munmap __NR_munmap -+#define SYS_brk __NR_brk -+#define SYS_rt_sigprocmask __NR_rt_sigprocmask -+#define SYS_pread64 __NR_pread64 -+#define SYS_pwrite64 __NR_pwrite64 -+#define SYS_access __NR_access -+#define SYS_pipe __NR_pipe -+#define SYS_select __NR_select -+#define SYS_sched_yield __NR_sched_yield -+#define SYS_mremap __NR_mremap -+#define SYS_msync __NR_msync -+#define SYS_mincore __NR_mincore -+#define SYS_madvise __NR_madvise -+#define SYS_shmget __NR_shmget -+#define SYS_shmat __NR_shmat -+#define SYS_shmctl __NR_shmctl -+#define SYS_dup __NR_dup -+#define SYS_dup2 __NR_dup2 -+#define SYS_pause __NR_pause -+#define SYS_nanosleep __NR_nanosleep -+#define SYS_getitimer __NR_getitimer -+#define SYS_alarm __NR_alarm -+#define SYS_setitimer __NR_setitimer -+#define SYS_getpid __NR_getpid -+#define SYS_sendfile __NR_sendfile -+#define SYS_socket __NR_socket -+#define SYS_connect __NR_connect -+#define SYS_accept __NR_accept -+#define SYS_sendto __NR_sendto -+#define SYS_shutdown __NR_shutdown -+#define SYS_bind __NR_bind -+#define SYS_listen __NR_listen -+#define SYS_getsockname __NR_getsockname -+#define SYS_getpeername __NR_getpeername -+#define SYS_socketpair __NR_socketpair -+#define SYS_clone __NR_clone -+#define SYS_fork __NR_fork -+#define SYS_vfork __NR_vfork -+#define SYS_exit __NR_exit -+#define SYS_wait4 __NR_wait4 -+#define SYS_kill __NR_kill -+#define SYS_uname __NR_uname -+#define SYS_semget __NR_semget -+#define SYS_semop __NR_semop -+#define SYS_semctl __NR_semctl -+#define SYS_shmdt __NR_shmdt -+#define SYS_msgget __NR_msgget -+#define SYS_msgsnd __NR_msgsnd -+#define SYS_msgrcv __NR_msgrcv -+#define SYS_msgctl __NR_msgctl -+#define SYS_fcntl __NR_fcntl -+#define SYS_flock __NR_flock -+#define SYS_fsync __NR_fsync -+#define SYS_fdatasync __NR_fdatasync -+#define SYS_truncate __NR_truncate -+#define SYS_ftruncate __NR_ftruncate -+#define SYS_getdents __NR_getdents -+#define SYS_getcwd __NR_getcwd -+#define SYS_chdir __NR_chdir -+#define SYS_fchdir __NR_fchdir -+#define SYS_rename __NR_rename -+#define SYS_mkdir __NR_mkdir -+#define SYS_rmdir __NR_rmdir -+#define SYS_creat __NR_creat -+#define SYS_link __NR_link -+#define SYS_unlink __NR_unlink -+#define SYS_symlink __NR_symlink -+#define SYS_readlink __NR_readlink -+#define SYS_chmod __NR_chmod -+#define SYS_fchmod __NR_fchmod -+#define SYS_chown __NR_chown -+#define SYS_fchown __NR_fchown -+#define SYS_lchown __NR_lchown -+#define SYS_umask __NR_umask -+#define SYS_gettimeofday __NR_gettimeofday -+#define SYS_getrlimit __NR_getrlimit -+#define SYS_getrusage __NR_getrusage -+#define SYS_sysinfo __NR_sysinfo -+#define SYS_times __NR_times -+#define SYS_getuid __NR_getuid -+#define SYS_syslog __NR_syslog -+#define SYS_getgid __NR_getgid -+#define SYS_setuid __NR_setuid -+#define SYS_setgid __NR_setgid -+#define SYS_geteuid __NR_geteuid -+#define SYS_getegid __NR_getegid -+#define SYS_setpgid __NR_setpgid -+#define SYS_getppid __NR_getppid -+#define SYS_getpgrp __NR_getpgrp -+#define SYS_setsid __NR_setsid -+#define SYS_setreuid __NR_setreuid -+#define SYS_setregid __NR_setregid -+#define SYS_getgroups __NR_getgroups -+#define SYS_setgroups __NR_setgroups -+#define SYS_setresuid __NR_setresuid -+#define SYS_getresuid __NR_getresuid -+#define SYS_setresgid __NR_setresgid -+#define SYS_getresgid __NR_getresgid -+#define SYS_getpgid __NR_getpgid -+#define SYS_setfsuid __NR_setfsuid -+#define SYS_setfsgid __NR_setfsgid -+#define SYS_getsid __NR_getsid -+#define SYS_capget __NR_capget -+#define SYS_capset __NR_capset -+#define SYS_rt_sigsuspend __NR_rt_sigsuspend -+#define SYS_utime __NR_utime -+#define SYS_mknod __NR_mknod -+#define SYS_personality __NR_personality -+#define SYS_ustat __NR_ustat -+#define SYS_statfs __NR_statfs -+#define SYS_fstatfs __NR_fstatfs -+#define SYS_sysfs __NR_sysfs -+#define SYS_getpriority __NR_getpriority -+#define SYS_setpriority __NR_setpriority -+#define SYS_sched_setparam __NR_sched_setparam -+#define SYS_sched_getparam __NR_sched_getparam -+#define SYS_sched_setscheduler __NR_sched_setscheduler -+#define SYS_sched_getscheduler __NR_sched_getscheduler -+#define SYS_sched_get_priority_max __NR_sched_get_priority_max -+#define SYS_sched_get_priority_min __NR_sched_get_priority_min -+#define SYS_sched_rr_get_interval __NR_sched_rr_get_interval -+#define SYS_mlock __NR_mlock -+#define SYS_munlock __NR_munlock -+#define SYS_mlockall __NR_mlockall -+#define SYS_munlockall __NR_munlockall -+#define SYS_vhangup __NR_vhangup -+#define SYS_modify_ldt __NR_modify_ldt -+#define SYS_pivot_root __NR_pivot_root -+#define SYS_prctl __NR_prctl -+#define SYS_arch_prctl __NR_arch_prctl -+#define SYS_adjtimex __NR_adjtimex -+#define SYS_setrlimit __NR_setrlimit -+#define SYS_chroot __NR_chroot -+#define SYS_sync __NR_sync -+#define SYS_acct __NR_acct -+#define SYS_settimeofday __NR_settimeofday -+#define SYS_mount __NR_mount -+#define SYS_umount2 __NR_umount2 -+#define SYS_swapon __NR_swapon -+#define SYS_swapoff __NR_swapoff -+#define SYS_reboot __NR_reboot -+#define SYS_sethostname __NR_sethostname -+#define SYS_setdomainname __NR_setdomainname -+#define SYS_iopl __NR_iopl -+#define SYS_ioperm __NR_ioperm -+#define SYS_init_module __NR_init_module -+#define SYS_delete_module __NR_delete_module -+#define SYS_quotactl __NR_quotactl -+#define SYS_getpmsg __NR_getpmsg -+#define SYS_putpmsg __NR_putpmsg -+#define SYS_afs_syscall __NR_afs_syscall -+#define SYS_tuxcall __NR_tuxcall -+#define SYS_security __NR_security -+#define SYS_gettid __NR_gettid -+#define SYS_readahead __NR_readahead -+#define SYS_setxattr __NR_setxattr -+#define SYS_lsetxattr __NR_lsetxattr -+#define SYS_fsetxattr __NR_fsetxattr -+#define SYS_getxattr __NR_getxattr -+#define SYS_lgetxattr __NR_lgetxattr -+#define SYS_fgetxattr __NR_fgetxattr -+#define SYS_listxattr __NR_listxattr -+#define SYS_llistxattr __NR_llistxattr -+#define SYS_flistxattr __NR_flistxattr -+#define SYS_removexattr __NR_removexattr -+#define SYS_lremovexattr __NR_lremovexattr -+#define SYS_fremovexattr __NR_fremovexattr -+#define SYS_tkill __NR_tkill -+#define SYS_time __NR_time -+#define SYS_futex __NR_futex -+#define SYS_sched_setaffinity __NR_sched_setaffinity -+#define SYS_sched_getaffinity __NR_sched_getaffinity -+#define SYS_io_setup __NR_io_setup -+#define SYS_io_destroy __NR_io_destroy -+#define SYS_io_getevents __NR_io_getevents -+#define SYS_io_submit __NR_io_submit -+#define SYS_io_cancel __NR_io_cancel -+#define SYS_lookup_dcookie __NR_lookup_dcookie -+#define SYS_epoll_create __NR_epoll_create -+#define SYS_remap_file_pages __NR_remap_file_pages -+#define SYS_getdents64 __NR_getdents64 -+#define SYS_set_tid_address __NR_set_tid_address -+#define SYS_restart_syscall __NR_restart_syscall -+#define SYS_semtimedop __NR_semtimedop -+#define SYS_fadvise64 __NR_fadvise64 -+#define SYS_timer_settime __NR_timer_settime -+#define SYS_timer_gettime __NR_timer_gettime -+#define SYS_timer_getoverrun __NR_timer_getoverrun -+#define SYS_timer_delete __NR_timer_delete -+#define SYS_clock_settime __NR_clock_settime -+#define SYS_clock_gettime __NR_clock_gettime -+#define SYS_clock_getres __NR_clock_getres -+#define SYS_clock_nanosleep __NR_clock_nanosleep -+#define SYS_exit_group __NR_exit_group -+#define SYS_epoll_wait __NR_epoll_wait -+#define SYS_epoll_ctl __NR_epoll_ctl -+#define SYS_tgkill __NR_tgkill -+#define SYS_utimes __NR_utimes -+#define SYS_mbind __NR_mbind -+#define SYS_set_mempolicy __NR_set_mempolicy -+#define SYS_get_mempolicy __NR_get_mempolicy -+#define SYS_mq_open __NR_mq_open -+#define SYS_mq_unlink __NR_mq_unlink -+#define SYS_mq_timedsend __NR_mq_timedsend -+#define SYS_mq_timedreceive __NR_mq_timedreceive -+#define SYS_mq_getsetattr __NR_mq_getsetattr -+#define SYS_add_key __NR_add_key -+#define SYS_request_key __NR_request_key -+#define SYS_keyctl __NR_keyctl -+#define SYS_ioprio_set __NR_ioprio_set -+#define SYS_ioprio_get __NR_ioprio_get -+#define SYS_inotify_init __NR_inotify_init -+#define SYS_inotify_add_watch __NR_inotify_add_watch -+#define SYS_inotify_rm_watch __NR_inotify_rm_watch -+#define SYS_migrate_pages __NR_migrate_pages -+#define SYS_openat __NR_openat -+#define SYS_mkdirat __NR_mkdirat -+#define SYS_mknodat __NR_mknodat -+#define SYS_fchownat __NR_fchownat -+#define SYS_futimesat __NR_futimesat -+#define SYS_newfstatat __NR_newfstatat -+#define SYS_unlinkat __NR_unlinkat -+#define SYS_renameat __NR_renameat -+#define SYS_linkat __NR_linkat -+#define SYS_symlinkat __NR_symlinkat -+#define SYS_readlinkat __NR_readlinkat -+#define SYS_fchmodat __NR_fchmodat -+#define SYS_faccessat __NR_faccessat -+#define SYS_pselect6 __NR_pselect6 -+#define SYS_ppoll __NR_ppoll -+#define SYS_unshare __NR_unshare -+#define SYS_splice __NR_splice -+#define SYS_tee __NR_tee -+#define SYS_sync_file_range __NR_sync_file_range -+#define SYS_utimensat __NR_utimensat -+#define SYS_epoll_pwait __NR_epoll_pwait -+#define SYS_signalfd __NR_signalfd -+#define SYS_timerfd_create __NR_timerfd_create -+#define SYS_eventfd __NR_eventfd -+#define SYS_fallocate __NR_fallocate -+#define SYS_timerfd_settime __NR_timerfd_settime -+#define SYS_timerfd_gettime __NR_timerfd_gettime -+#define SYS_accept4 __NR_accept4 -+#define SYS_signalfd4 __NR_signalfd4 -+#define SYS_eventfd2 __NR_eventfd2 -+#define SYS_epoll_create1 __NR_epoll_create1 -+#define SYS_dup3 __NR_dup3 -+#define SYS_pipe2 __NR_pipe2 -+#define SYS_inotify_init1 __NR_inotify_init1 -+#define SYS_perf_event_open __NR_perf_event_open -+#define SYS_fanotify_init __NR_fanotify_init -+#define SYS_fanotify_mark __NR_fanotify_mark -+#define SYS_prlimit64 __NR_prlimit64 -+#define SYS_name_to_handle_at __NR_name_to_handle_at -+#define SYS_open_by_handle_at __NR_open_by_handle_at -+#define SYS_clock_adjtime __NR_clock_adjtime -+#define SYS_syncfs __NR_syncfs -+#define SYS_setns __NR_setns -+#define SYS_getcpu __NR_getcpu -+#define SYS_kcmp __NR_kcmp -+#define SYS_finit_module __NR_finit_module -+#define SYS_rt_sigaction __NR_rt_sigaction -+#define SYS_rt_sigreturn __NR_rt_sigreturn -+#define SYS_ioctl __NR_ioctl -+#define SYS_readv __NR_readv -+#define SYS_writev __NR_writev -+#define SYS_recvfrom __NR_recvfrom -+#define SYS_sendmsg __NR_sendmsg -+#define SYS_recvmsg __NR_recvmsg -+#define SYS_execve __NR_execve -+#define SYS_ptrace __NR_ptrace -+#define SYS_rt_sigpending __NR_rt_sigpending -+#define SYS_rt_sigtimedwait __NR_rt_sigtimedwait -+#define SYS_rt_sigqueueinfo __NR_rt_sigqueueinfo -+#define SYS_sigaltstack __NR_sigaltstack -+#define SYS_timer_create __NR_timer_create -+#define SYS_mq_notify __NR_mq_notify -+#define SYS_kexec_load __NR_kexec_load -+#define SYS_waitid __NR_waitid -+#define SYS_set_robust_list __NR_set_robust_list -+#define SYS_get_robust_list __NR_get_robust_list -+#define SYS_vmsplice __NR_vmsplice -+#define SYS_move_pages __NR_move_pages -+#define SYS_preadv __NR_preadv -+#define SYS_pwritev __NR_pwritev -+#define SYS_rt_tgsigqueueinfo __NR_rt_tgsigqueueinfo -+#define SYS_recvmmsg __NR_recvmmsg -+#define SYS_sendmmsg __NR_sendmmsg -+#define SYS_process_vm_readv __NR_process_vm_readv -+#define SYS_process_vm_writev __NR_process_vm_writev -+#define SYS_setsockopt __NR_setsockopt -+#define SYS_getsockopt __NR_getsockopt -+ -+#undef SYS_fstatat -+#undef SYS_pread -+#undef SYS_pwrite -+#undef SYS_getdents -+#define SYS_fstatat SYS_newfstatat -+#define SYS_pread SYS_pread64 -+#define SYS_pwrite SYS_pwrite64 -+#define SYS_getdents SYS_getdents64 -+#define SYS_fadvise SYS_fadvise64 -diff -Nur musl-0.9.15/arch/x32/bits/termios.h musl-git/arch/x32/bits/termios.h ---- musl-0.9.15/arch/x32/bits/termios.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/termios.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,160 @@ -+struct termios -+{ -+ tcflag_t c_iflag; -+ tcflag_t c_oflag; -+ tcflag_t c_cflag; -+ tcflag_t c_lflag; -+ cc_t c_line; -+ cc_t c_cc[NCCS]; -+ speed_t __c_ispeed; -+ speed_t __c_ospeed; -+}; -+ -+#define VINTR 0 -+#define VQUIT 1 -+#define VERASE 2 -+#define VKILL 3 -+#define VEOF 4 -+#define VTIME 5 -+#define VMIN 6 -+#define VSWTC 7 -+#define VSTART 8 -+#define VSTOP 9 -+#define VSUSP 10 -+#define VEOL 11 -+#define VREPRINT 12 -+#define VDISCARD 13 -+#define VWERASE 14 -+#define VLNEXT 15 -+#define VEOL2 16 -+ -+#define IGNBRK 0000001 -+#define BRKINT 0000002 -+#define IGNPAR 0000004 -+#define PARMRK 0000010 -+#define INPCK 0000020 -+#define ISTRIP 0000040 -+#define INLCR 0000100 -+#define IGNCR 0000200 -+#define ICRNL 0000400 -+#define IUCLC 0001000 -+#define IXON 0002000 -+#define IXANY 0004000 -+#define IXOFF 0010000 -+#define IMAXBEL 0020000 -+#define IUTF8 0040000 -+ -+#define OPOST 0000001 -+#define OLCUC 0000002 -+#define ONLCR 0000004 -+#define OCRNL 0000010 -+#define ONOCR 0000020 -+#define ONLRET 0000040 -+#define OFILL 0000100 -+#define OFDEL 0000200 -+#define NLDLY 0000400 -+#define NL0 0000000 -+#define NL1 0000400 -+#define CRDLY 0003000 -+#define CR0 0000000 -+#define CR1 0001000 -+#define CR2 0002000 -+#define CR3 0003000 -+#define TABDLY 0014000 -+#define TAB0 0000000 -+#define TAB1 0004000 -+#define TAB2 0010000 -+#define TAB3 0014000 -+#define BSDLY 0020000 -+#define BS0 0000000 -+#define BS1 0020000 -+#define FFDLY 0100000 -+#define FF0 0000000 -+#define FF1 0100000 -+ -+#define VTDLY 0040000 -+#define VT0 0000000 -+#define VT1 0040000 -+ -+#define B0 0000000 -+#define B50 0000001 -+#define B75 0000002 -+#define B110 0000003 -+#define B134 0000004 -+#define B150 0000005 -+#define B200 0000006 -+#define B300 0000007 -+#define B600 0000010 -+#define B1200 0000011 -+#define B1800 0000012 -+#define B2400 0000013 -+#define B4800 0000014 -+#define B9600 0000015 -+#define B19200 0000016 -+#define B38400 0000017 -+ -+#define B57600 0010001 -+#define B115200 0010002 -+#define B230400 0010003 -+#define B460800 0010004 -+#define B500000 0010005 -+#define B576000 0010006 -+#define B921600 0010007 -+#define B1000000 0010010 -+#define B1152000 0010011 -+#define B1500000 0010012 -+#define B2000000 0010013 -+#define B2500000 0010014 -+#define B3000000 0010015 -+#define B3500000 0010016 -+#define B4000000 0010017 -+ -+#define CBAUD 0010017 -+ -+#define CSIZE 0000060 -+#define CS5 0000000 -+#define CS6 0000020 -+#define CS7 0000040 -+#define CS8 0000060 -+#define CSTOPB 0000100 -+#define CREAD 0000200 -+#define PARENB 0000400 -+#define PARODD 0001000 -+#define HUPCL 0002000 -+#define CLOCAL 0004000 -+ -+#define ISIG 0000001 -+#define ICANON 0000002 -+#define ECHO 0000010 -+#define ECHOE 0000020 -+#define ECHOK 0000040 -+#define ECHONL 0000100 -+#define NOFLSH 0000200 -+#define TOSTOP 0000400 -+#define IEXTEN 0100000 -+ -+#define ECHOCTL 0001000 -+#define ECHOPRT 0002000 -+#define ECHOKE 0004000 -+#define FLUSHO 0010000 -+#define PENDIN 0040000 -+ -+#define TCOOFF 0 -+#define TCOON 1 -+#define TCIOFF 2 -+#define TCION 3 -+ -+#define TCIFLUSH 0 -+#define TCOFLUSH 1 -+#define TCIOFLUSH 2 -+ -+#define TCSANOW 0 -+#define TCSADRAIN 1 -+#define TCSAFLUSH 2 -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define CBAUDEX 0010000 -+#define CRTSCTS 020000000000 -+#define EXTPROC 0200000 -+#define XTABS 0014000 -+#endif -diff -Nur musl-0.9.15/arch/x32/bits/user.h musl-git/arch/x32/bits/user.h ---- musl-0.9.15/arch/x32/bits/user.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/user.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,44 @@ -+#undef __WORDSIZE -+#define __WORDSIZE 64 -+ -+typedef struct user_fpregs_struct -+{ -+ uint16_t cwd, swd, ftw, fop; -+ uint64_t rip, rdp; -+ uint32_t mxcsr, mxcs_mask; -+ uint32_t st_space[32], xmm_space[64], padding[24]; -+} elf_fpregset_t; -+ -+struct user_regs_struct -+{ -+ unsigned long r15, r14, r13, r12, rbp, rbx, r11, r10, r9, r8; -+ unsigned long rax, rcx, rdx, rsi, rdi, orig_rax, rip; -+ unsigned long cs, eflags, rsp, ss, fs_base, gs_base, ds, es, fs, gs; -+}; -+#define ELF_NGREG 27 -+typedef unsigned long long elf_greg_t, elf_gregset_t[ELF_NGREG]; -+ -+struct user -+{ -+ struct user_regs_struct regs; -+ int u_fpvalid; -+ struct user_fpregs_struct i387; -+ unsigned long u_tsize; -+ unsigned long u_dsize; -+ unsigned long u_ssize; -+ unsigned long start_code; -+ unsigned long start_stack; -+ long signal; -+ int reserved; -+ struct user_regs_struct *u_ar0; -+ struct user_fpregs_struct *u_fpstate; -+ unsigned long magic; -+ char u_comm[32]; -+ unsigned long u_debugreg[8]; -+}; -+ -+#define PAGE_MASK (~(PAGE_SIZE-1)) -+#define NBPG PAGE_SIZE -+#define UPAGES 1 -+#define HOST_TEXT_START_ADDR (u.start_code) -+#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG) -diff -Nur musl-0.9.15/arch/x32/crt_arch.h musl-git/arch/x32/crt_arch.h ---- musl-0.9.15/arch/x32/crt_arch.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/crt_arch.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,9 @@ -+__asm__("\ -+.text \n\ -+.global _start \n\ -+_start: \n\ -+ xor %rbp,%rbp \n\ -+ mov %rsp,%rdi \n\ -+ andq $-16,%rsp \n\ -+ call __cstart \n\ -+"); -diff -Nur musl-0.9.15/arch/x32/pthread_arch.h musl-git/arch/x32/pthread_arch.h ---- musl-0.9.15/arch/x32/pthread_arch.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/pthread_arch.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,10 @@ -+static inline struct pthread *__pthread_self() -+{ -+ struct pthread *self; -+ __asm__ __volatile__ ("mov %%fs:0,%0" : "=r" (self) ); -+ return self; -+} -+ -+#define TP_ADJ(p) (p) -+ -+#define CANCEL_REG_IP 16 -diff -Nur musl-0.9.15/arch/x32/reloc.h musl-git/arch/x32/reloc.h ---- musl-0.9.15/arch/x32/reloc.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/reloc.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,46 @@ -+#include -+#include -+#include -+ -+#define LDSO_ARCH "x32" -+ -+#define IS_COPY(x) ((x)==R_X86_64_COPY) -+#define IS_PLT(x) ((x)==R_X86_64_JUMP_SLOT) -+ -+static inline void do_single_reloc( -+ struct dso *self, unsigned char *base_addr, -+ size_t *reloc_addr, int type, size_t addend, -+ Sym *sym, size_t sym_size, -+ struct symdef def, size_t sym_val) -+{ -+ switch(type) { -+ case R_X86_64_GLOB_DAT: -+ case R_X86_64_JUMP_SLOT: -+ case R_X86_64_64: -+ *reloc_addr = sym_val + addend; -+ break; -+ case R_X86_64_32: -+ *(uint32_t *)reloc_addr = sym_val + addend; -+ break; -+ case R_X86_64_PC32: -+ *reloc_addr = sym_val + addend - (size_t)reloc_addr + (size_t)base_addr; -+ break; -+ case R_X86_64_RELATIVE: -+ *reloc_addr = (size_t)base_addr + addend; -+ break; -+ case R_X86_64_COPY: -+ memcpy(reloc_addr, (void *)sym_val, sym_size); -+ break; -+ case R_X86_64_DTPMOD64: -+ *reloc_addr = def.dso ? def.dso->tls_id : self->tls_id; -+ break; -+ case R_X86_64_DTPOFF64: -+ *reloc_addr = def.sym->st_value + addend; -+ break; -+ case R_X86_64_TPOFF64: -+ *reloc_addr = (def.sym -+ ? def.sym->st_value - def.dso->tls_offset -+ : 0 - self->tls_offset) + addend; -+ break; -+ } -+} -diff -Nur musl-0.9.15/arch/x32/src/syscall_cp_fixup.c musl-git/arch/x32/src/syscall_cp_fixup.c ---- musl-0.9.15/arch/x32/src/syscall_cp_fixup.c 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/src/syscall_cp_fixup.c 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,31 @@ -+#include -+long __syscall_cp_internal(volatile void*, long long, long long, long long, long long, -+ long long, long long, long long); -+ -+struct __timespec { long long tv_sec; long tv_nsec; }; -+struct __timespec_kernel { long long tv_sec; long long tv_nsec; }; -+#define __tsc(X) ((struct __timespec*)(unsigned long)(X)) -+#define __fixup(X) do { if(X) X = (unsigned long) (&(struct __timespec_kernel) \ -+ { .tv_sec = __tsc(X)->tv_sec, .tv_nsec = __tsc(X)->tv_nsec}); } while(0) -+ -+long __syscall_cp_asm (volatile void * foo, long long n, long long a1, long long a2, long long a3, -+ long long a4, long long a5, long long a6) { -+ switch (n) { -+ case SYS_mq_timedsend: case SYS_mq_timedreceive: case SYS_pselect6: -+ __fixup(a5); -+ break; -+ case SYS_futex: -+ if((a2 & (~128 /* FUTEX_PRIVATE_FLAG */)) == 0 /* FUTEX_WAIT */) -+ __fixup(a4); -+ break; -+ case SYS_clock_nanosleep: -+ case SYS_rt_sigtimedwait: case SYS_ppoll: -+ __fixup(a3); -+ break; -+ case SYS_nanosleep: -+ __fixup(a1); -+ break; -+ } -+ return __syscall_cp_internal(foo, n, a1, a2, a3, a4, a5, a6); -+} -+ -diff -Nur musl-0.9.15/arch/x32/src/sysinfo.c musl-git/arch/x32/src/sysinfo.c ---- musl-0.9.15/arch/x32/src/sysinfo.c 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/src/sysinfo.c 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,47 @@ -+#include -+#include "syscall.h" -+ -+#define klong long long -+#define kulong unsigned long long -+ -+struct kernel_sysinfo { -+ klong uptime; -+ kulong loads[3]; -+ kulong totalram; -+ kulong freeram; -+ kulong sharedram; -+ kulong bufferram; -+ kulong totalswap; -+ kulong freeswap; -+ short procs; -+ short pad; -+ kulong totalhigh; -+ kulong freehigh; -+ unsigned mem_unit; -+}; -+ -+int __x32_sysinfo(struct sysinfo *info) -+{ -+ struct kernel_sysinfo tmp; -+ int ret = syscall(SYS_sysinfo, &tmp); -+ if(ret == -1) return ret; -+ info->uptime = tmp.uptime; -+ info->loads[0] = tmp.loads[0]; -+ info->loads[1] = tmp.loads[1]; -+ info->loads[2] = tmp.loads[2]; -+ kulong shifts; -+ kulong max = tmp.totalram | tmp.totalswap; -+ __asm__("bsr %1,%0" : "=r"(shifts) : "r"(max)); -+ shifts = shifts >= 32 ? shifts - 31 : 0; -+ info->totalram = tmp.totalram >> shifts; -+ info->freeram = tmp.freeram >> shifts; -+ info->sharedram = tmp.sharedram >> shifts; -+ info->bufferram = tmp.bufferram >> shifts; -+ info->totalswap = tmp.totalswap >> shifts; -+ info->freeswap = tmp.freeswap >> shifts; -+ info->procs = tmp.procs ; -+ info->totalhigh = tmp.totalhigh >> shifts; -+ info->freehigh = tmp.freehigh >> shifts; -+ info->mem_unit = (tmp.mem_unit ? tmp.mem_unit : 1) << shifts; -+ return ret; -+} -diff -Nur musl-0.9.15/arch/x32/syscall_arch.h musl-git/arch/x32/syscall_arch.h ---- musl-0.9.15/arch/x32/syscall_arch.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/syscall_arch.h 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,117 @@ -+#define __SYSCALL_LL_E(x) (x) -+#define __SYSCALL_LL_O(x) (x) -+ -+#define __scc(X) sizeof(1?(X):0ULL) < 8 ? (unsigned long) (X) : (long long) (X) -+typedef long long syscall_arg_t; -+struct __timespec { long long tv_sec; long tv_nsec; }; -+struct __timespec_kernel { long long tv_sec; long long tv_nsec; }; -+#define __tsc(X) ((struct __timespec*)(unsigned long)(X)) -+#define __fixup(X) do { if(X) X = (unsigned long) (&(struct __timespec_kernel) \ -+ { .tv_sec = __tsc(X)->tv_sec, .tv_nsec = __tsc(X)->tv_nsec}); } while(0) -+#define __fixup_case_2 \ -+ case SYS_nanosleep: \ -+ __fixup(a1); break; \ -+ case SYS_clock_settime: \ -+ __fixup(a2); break; -+#define __fixup_case_3 \ -+ case SYS_clock_nanosleep: case SYS_rt_sigtimedwait: case SYS_ppoll: \ -+ __fixup(a3); break; \ -+ case SYS_utimensat: \ -+ if(a3) a3 = (unsigned long) ((struct __timespec_kernel[2]) { \ -+ [0] = {.tv_sec = __tsc(a3)[0].tv_sec, .tv_nsec = __tsc(a3)[0].tv_nsec}, \ -+ [1] = {.tv_sec = __tsc(a3)[1].tv_sec, .tv_nsec = __tsc(a3)[1].tv_nsec}, \ -+ }); break; -+#define __fixup_case_4 \ -+ case SYS_futex: \ -+ if((a2 & (~128 /* FUTEX_PRIVATE_FLAG */)) == 0 /* FUTEX_WAIT */) __fixup(a4); break; -+#define __fixup_case_5 \ -+ case SYS_mq_timedsend: case SYS_mq_timedreceive: case SYS_pselect6: \ -+ __fixup(a5); break; -+ -+static __inline long __syscall0(long long n) -+{ -+ unsigned long ret; -+ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n) : "rcx", "r11", "memory"); -+ return ret; -+} -+ -+static __inline long __syscall1(long long n, long long a1) -+{ -+ unsigned long ret; -+ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1) : "rcx", "r11", "memory"); -+ return ret; -+} -+ -+static __inline long __syscall2(long long n, long long a1, long long a2) -+{ -+ unsigned long ret; -+ struct __timespec *ts2 = 0; -+ switch (n) { -+ __fixup_case_2; -+ } -+ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2) -+ : "rcx", "r11", "memory"); -+ return ret; -+} -+ -+static __inline long __syscall3(long long n, long long a1, long long a2, long long a3) -+{ -+ unsigned long ret; -+ switch (n) { -+ __fixup_case_2; -+ __fixup_case_3; -+ } -+ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), -+ "d"(a3) : "rcx", "r11", "memory"); -+ return ret; -+} -+ -+static __inline long __syscall4(long long n, long long a1, long long a2, long long a3, -+ long long a4_) -+{ -+ unsigned long ret; -+ register long long a4 __asm__("r10") = a4_; -+ switch (n) { -+ __fixup_case_2; -+ __fixup_case_3; -+ __fixup_case_4; -+ } -+ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), -+ "d"(a3), "r"(a4): "rcx", "r11", "memory"); -+ return ret; -+} -+ -+static __inline long __syscall5(long long n, long long a1, long long a2, long long a3, -+ long long a4_, long long a5_) -+{ -+ unsigned long ret; -+ register long long a4 __asm__("r10") = a4_; -+ register long long a5 __asm__("r8") = a5_; -+ switch (n) { -+ __fixup_case_2; -+ __fixup_case_3; -+ __fixup_case_4; -+ __fixup_case_5; -+ } -+ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), -+ "d"(a3), "r"(a4), "r"(a5) : "rcx", "r11", "memory"); -+ return ret; -+} -+ -+static __inline long __syscall6(long long n, long long a1, long long a2, long long a3, -+ long long a4_, long long a5_, long long a6_) -+{ -+ unsigned long ret; -+ register long long a4 __asm__("r10") = a4_; -+ register long long a5 __asm__("r8") = a5_; -+ register long long a6 __asm__("r9") = a6_; -+ switch (n) { -+ __fixup_case_2; -+ __fixup_case_3; -+ __fixup_case_4; -+ __fixup_case_5; -+ } -+ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), -+ "d"(a3), "r"(a4), "r"(a5), "r"(a6) : "rcx", "r11", "memory"); -+ return ret; -+} -diff -Nur musl-0.9.15/arch/x86_64/atomic.h musl-git/arch/x86_64/atomic.h ---- musl-0.9.15/arch/x86_64/atomic.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/x86_64/atomic.h 2014-03-07 14:03:57.000000000 +0100 -@@ -5,38 +5,36 @@ - - static inline int a_ctz_64(uint64_t x) - { -- long r; -- __asm__( "bsf %1,%0" : "=r"(r) : "r"(x) ); -- return r; -+ __asm__( "bsf %1,%0" : "=r"(x) : "r"(x) ); -+ return x; - } - - static inline int a_ctz_l(unsigned long x) - { -- long r; -- __asm__( "bsf %1,%0" : "=r"(r) : "r"(x) ); -- return r; -+ __asm__( "bsf %1,%0" : "=r"(x) : "r"(x) ); -+ return x; - } - - static inline void a_and_64(volatile uint64_t *p, uint64_t v) - { -- __asm__( "lock ; andq %1, %0" -- : "=m"(*(long *)p) : "r"(v) : "memory" ); -+ __asm__( "lock ; and %1, %0" -+ : "=m"(*p) : "r"(v) : "memory" ); - } - - static inline void a_or_64(volatile uint64_t *p, uint64_t v) - { -- __asm__( "lock ; orq %1, %0" -- : "=m"(*(long *)p) : "r"(v) : "memory" ); -+ __asm__( "lock ; or %1, %0" -+ : "=m"(*p) : "r"(v) : "memory" ); - } - - static inline void a_store_l(volatile void *p, long x) - { -- __asm__( "movq %1, %0" : "=m"(*(long *)p) : "r"(x) : "memory" ); -+ __asm__( "mov %1, %0" : "=m"(*(long *)p) : "r"(x) : "memory" ); - } - - static inline void a_or_l(volatile void *p, long v) - { -- __asm__( "lock ; orq %1, %0" -+ __asm__( "lock ; or %1, %0" - : "=m"(*(long *)p) : "r"(v) : "memory" ); - } - -@@ -56,7 +54,7 @@ - - static inline int a_cas(volatile int *p, int t, int s) - { -- __asm__( "lock ; cmpxchgl %3, %1" -+ __asm__( "lock ; cmpxchg %3, %1" - : "=a"(t), "=m"(*p) : "a"(t), "r"(s) : "memory" ); - return t; - } -@@ -74,13 +72,13 @@ - - static inline void a_or(volatile void *p, int v) - { -- __asm__( "lock ; orl %1, %0" -+ __asm__( "lock ; or %1, %0" - : "=m"(*(int *)p) : "r"(v) : "memory" ); - } - - static inline void a_and(volatile void *p, int v) - { -- __asm__( "lock ; andl %1, %0" -+ __asm__( "lock ; and %1, %0" - : "=m"(*(int *)p) : "r"(v) : "memory" ); - } - -@@ -110,7 +108,7 @@ - - static inline void a_store(volatile int *p, int x) - { -- __asm__( "movl %1, %0" : "=m"(*p) : "r"(x) : "memory" ); -+ __asm__( "mov %1, %0" : "=m"(*p) : "r"(x) : "memory" ); - } - - static inline void a_spin() -diff -Nur musl-0.9.15/arch/x86_64/bits/shm.h musl-git/arch/x86_64/bits/shm.h ---- musl-0.9.15/arch/x86_64/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/x86_64/bits/shm.h 2014-03-07 14:03:57.000000000 +0100 -@@ -13,3 +13,14 @@ - unsigned long __pad1; - unsigned long __pad2; - }; -+ -+struct shminfo { -+ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; -+}; -+ -+struct shm_info { -+ int __used_ids; -+ unsigned long shm_tot, shm_rss, shm_swp; -+ unsigned long __swap_attempts, __swap_successes; -+}; -+ -diff -Nur musl-0.9.15/arch/x86_64/bits/stat.h musl-git/arch/x86_64/bits/stat.h ---- musl-0.9.15/arch/x86_64/bits/stat.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/x86_64/bits/stat.h 2014-03-07 14:03:57.000000000 +0100 -@@ -2,7 +2,7 @@ - * by the corresponding correctly-sized userspace types. */ - - struct stat { -- unsigned long st_dev; -+ dev_t st_dev; - ino_t st_ino; - nlink_t st_nlink; - -diff -Nur musl-0.9.15/arch/x86_64/bits/termios.h musl-git/arch/x86_64/bits/termios.h ---- musl-0.9.15/arch/x86_64/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/x86_64/bits/termios.h 2014-03-07 14:03:57.000000000 +0100 -@@ -42,6 +42,7 @@ - #define IXANY 0004000 - #define IXOFF 0010000 - #define IMAXBEL 0020000 -+#define IUTF8 0040000 - - #define OPOST 0000001 - #define OLCUC 0000002 -@@ -75,9 +76,6 @@ - #define VT0 0000000 - #define VT1 0040000 - --/* ?? */ --#define XTABS 0014000 -- - #define B0 0000000 - #define B50 0000001 - #define B75 0000002 -@@ -125,8 +123,6 @@ - #define HUPCL 0002000 - #define CLOCAL 0004000 - --#define CRTSCTS 020000000000 -- - #define ISIG 0000001 - #define ICANON 0000002 - #define ECHO 0000010 -@@ -137,14 +133,11 @@ - #define TOSTOP 0000400 - #define IEXTEN 0100000 - --/* Extensions? */ --#define CBAUDEX 0010000 - #define ECHOCTL 0001000 - #define ECHOPRT 0002000 - #define ECHOKE 0004000 - #define FLUSHO 0010000 - #define PENDIN 0040000 --#define EXTPROC 0200000 - - #define TCOOFF 0 - #define TCOON 1 -@@ -158,3 +151,10 @@ - #define TCSANOW 0 - #define TCSADRAIN 1 - #define TCSAFLUSH 2 -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define CBAUDEX 0010000 -+#define CRTSCTS 020000000000 -+#define EXTPROC 0200000 -+#define XTABS 0014000 -+#endif -diff -Nur musl-0.9.15/arch/x86_64/pthread_arch.h musl-git/arch/x86_64/pthread_arch.h ---- musl-0.9.15/arch/x86_64/pthread_arch.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/x86_64/pthread_arch.h 2014-03-07 14:03:57.000000000 +0100 -@@ -1,7 +1,7 @@ - static inline struct pthread *__pthread_self() - { - struct pthread *self; -- __asm__ __volatile__ ("movq %%fs:0,%0" : "=r" (self) ); -+ __asm__ __volatile__ ("mov %%fs:0,%0" : "=r" (self) ); - return self; - } - -diff -Nur musl-0.9.15/configure musl-git/configure ---- musl-0.9.15/configure 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/configure 2014-03-07 14:03:57.000000000 +0100 -@@ -222,12 +222,16 @@ - # Convert to just ARCH - # - case "$target" in -+# Catch these early to simplify matching for 32-bit archs -+mips64*|powerpc64*) fail "$0: unsupported target \"$target\"" ;; - arm*) ARCH=arm ;; - i?86*) ARCH=i386 ;; -+x86_64-x32*|x32*) ARCH=x32 ;; - x86_64*) ARCH=x86_64 ;; --mips-*|mipsel-*) ARCH=mips ;; --microblaze-*) ARCH=microblaze ;; --powerpc-*) ARCH=powerpc ;; -+mips*) ARCH=mips ;; -+microblaze*) ARCH=microblaze ;; -+powerpc*) ARCH=powerpc ;; -+sh[1-9bel-]*|sh|superh*) ARCH=sh ;; - unknown) fail "$0: unable to detect target arch; try $0 --target=..." ;; - *) fail "$0: unknown or unsupported target \"$target\"" ;; - esac -@@ -381,6 +385,7 @@ - tryflag CFLAGS_AUTO -Wno-unused-value - tryflag CFLAGS_AUTO -Wno-unused-but-set-variable - tryflag CFLAGS_AUTO -Wno-unknown-pragmas -+tryflag CFLAGS_AUTO -Wno-pointer-to-int-cast - fi - - # Some patched GCC builds have these defaults messed up... -@@ -410,12 +415,33 @@ - trycppif __ARM_PCS_VFP "$t" && SUBARCH=${SUBARCH}hf - fi - --test "$ARCH" = "mips" && trycppif "_MIPSEL || __MIPSEL || __MIPSEL__" "$t" \ --&& SUBARCH=${SUBARCH}el -+if test "$ARCH" = "mips" ; then -+trycppif "_MIPSEL || __MIPSEL || __MIPSEL__" "$t" && SUBARCH=${SUBARCH}el -+trycppif __mips_soft_float "$t" && SUBARCH=${SUBARCH}-sf -+fi - - test "$ARCH" = "microblaze" && trycppif __MICROBLAZEEL__ "$t" \ - && SUBARCH=${SUBARCH}el - -+if test "$ARCH" = "sh" ; then -+trycppif __BIG_ENDIAN__ "$t" && SUBARCH=${SUBARCH}eb -+if trycppif __SH_FPU_ANY__ "$t" ; then -+# Some sh configurations are broken and replace double with float -+# rather than using softfloat when the fpu is present but only -+# supports single precision. Reject them. -+printf "checking whether compiler's double type is IEEE double... " -+echo 'typedef char dblcheck[(int)sizeof(double)-5];' > "$tmpc" -+if $CC $CFLAGS_C99FSE $CPPFLAGS $CFLAGS -c -o /dev/null "$tmpc" >/dev/null 2>&1 ; then -+printf "yes\n" -+else -+printf "no\n" -+fail "$0: error: compiler's floating point configuration is unsupported" -+fi -+else -+SUBARCH=${SUBARCH}-nofpu -+fi -+fi -+ - test "$SUBARCH" \ - && printf "configured for %s variant: %s\n" "$ARCH" "$ARCH$SUBARCH" - -diff -Nur musl-0.9.15/COPYRIGHT musl-git/COPYRIGHT ---- musl-0.9.15/COPYRIGHT 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/COPYRIGHT 2014-03-07 14:03:57.000000000 +0100 -@@ -1,6 +1,6 @@ - musl as a whole is licensed under the following standard MIT license: - --Copyright © 2005-2013 Rich Felker -+Copyright © 2005-2014 Rich Felker - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the -@@ -79,7 +79,7 @@ - from Bionic libc, used on Android. - - All other files which have no copyright comments are original works --Copyright © 2005-2013 Rich Felker, the main author of this library. -+Copyright © 2005-2014 Rich Felker, the main author of this library. - The decision to exclude such comments is intentional, as it should be - possible to carry around the complete source code on tiny storage - media. All public header files (include/* and arch/*/bits/*) should be -diff -Nur musl-0.9.15/crt/superh/crti.s musl-git/crt/superh/crti.s ---- musl-0.9.15/crt/superh/crti.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/crt/superh/crti.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,13 @@ -+.section .init -+.global _init -+.type _init, @function -+_init: -+ sts.l pr, @-r15 -+ nop -+ -+.section .fini -+.global _fini -+.type _fini, @function -+_fini: -+ sts.l pr, @-r15 -+ nop -diff -Nur musl-0.9.15/crt/superh/crtn.s musl-git/crt/superh/crtn.s ---- musl-0.9.15/crt/superh/crtn.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/crt/superh/crtn.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,9 @@ -+.section .init -+ lds.l @r15+, pr -+ rts -+ nop -+ -+.section .fini -+ lds.l @r15+, pr -+ rts -+ nop -diff -Nur musl-0.9.15/crt/x32/crti.s musl-git/crt/x32/crti.s ---- musl-0.9.15/crt/x32/crti.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/crt/x32/crti.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,9 @@ -+.section .init -+.global _init -+_init: -+ push %rax -+ -+.section .fini -+.global _fini -+_fini: -+ push %rax -diff -Nur musl-0.9.15/crt/x32/crtn.s musl-git/crt/x32/crtn.s ---- musl-0.9.15/crt/x32/crtn.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/crt/x32/crtn.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,7 @@ -+.section .init -+ pop %rax -+ ret -+ -+.section .fini -+ pop %rax -+ ret -diff -Nur musl-0.9.15/.gitignore musl-git/.gitignore ---- musl-0.9.15/.gitignore 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/.gitignore 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,11 @@ -+*.o -+*.lo -+*.a -+*.so -+*.so.1 -+arch/*/bits/alltypes.h -+config.mak -+include/bits -+tools/musl-gcc -+lib/musl-gcc.specs -+src/internal/version.h -diff -Nur musl-0.9.15/include/arpa/inet.h musl-git/include/arpa/inet.h ---- musl-0.9.15/include/arpa/inet.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/arpa/inet.h 2014-03-07 14:03:57.000000000 +0100 -@@ -20,7 +20,7 @@ - const char *inet_ntop (int, const void *__restrict, char *__restrict, socklen_t); - - int inet_aton (const char *, struct in_addr *); --struct in_addr inet_makeaddr(int, int); -+struct in_addr inet_makeaddr(in_addr_t, in_addr_t); - in_addr_t inet_lnaof(struct in_addr); - in_addr_t inet_netof(struct in_addr); - -diff -Nur musl-0.9.15/include/dlfcn.h musl-git/include/dlfcn.h ---- musl-0.9.15/include/dlfcn.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/dlfcn.h 2014-03-07 14:03:57.000000000 +0100 -@@ -31,7 +31,7 @@ - const char *dli_sname; - void *dli_saddr; - } Dl_info; --int dladdr(void *, Dl_info *); -+int dladdr(const void *, Dl_info *); - int dlinfo(void *, int, void *); - #endif - -diff -Nur musl-0.9.15/include/elf.h musl-git/include/elf.h ---- musl-0.9.15/include/elf.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/elf.h 2014-03-07 14:03:57.000000000 +0100 -@@ -1153,6 +1153,7 @@ - #define EF_MIPS_64BIT_WHIRL 16 - #define EF_MIPS_ABI2 32 - #define EF_MIPS_ABI_ON32 64 -+#define EF_MIPS_NAN2008 1024 - #define EF_MIPS_ARCH 0xf0000000 - - -@@ -2092,6 +2093,117 @@ - #define R_AARCH64_NONE 0 - #define R_AARCH64_ABS64 257 - #define R_AARCH64_ABS32 258 -+#define R_AARCH64_ABS16 259 -+#define R_AARCH64_PREL64 260 -+#define R_AARCH64_PREL32 261 -+#define R_AARCH64_PREL16 262 -+#define R_AARCH64_MOVW_UABS_G0 263 -+#define R_AARCH64_MOVW_UABS_G0_NC 264 -+#define R_AARCH64_MOVW_UABS_G1 265 -+#define R_AARCH64_MOVW_UABS_G1_NC 266 -+#define R_AARCH64_MOVW_UABS_G2 267 -+#define R_AARCH64_MOVW_UABS_G2_NC 268 -+#define R_AARCH64_MOVW_UABS_G3 269 -+#define R_AARCH64_MOVW_SABS_G0 270 -+#define R_AARCH64_MOVW_SABS_G1 271 -+#define R_AARCH64_MOVW_SABS_G2 272 -+#define R_AARCH64_LD_PREL_LO19 273 -+#define R_AARCH64_ADR_PREL_LO21 274 -+#define R_AARCH64_ADR_PREL_PG_HI21 275 -+#define R_AARCH64_ADR_PREL_PG_HI21_NC 276 -+#define R_AARCH64_ADD_ABS_LO12_NC 277 -+#define R_AARCH64_LDST8_ABS_LO12_NC 278 -+#define R_AARCH64_TSTBR14 279 -+#define R_AARCH64_CONDBR19 280 -+#define R_AARCH64_JUMP26 282 -+#define R_AARCH64_CALL26 283 -+#define R_AARCH64_LDST16_ABS_LO12_NC 284 -+#define R_AARCH64_LDST32_ABS_LO12_NC 285 -+#define R_AARCH64_LDST64_ABS_LO12_NC 286 -+#define R_AARCH64_MOVW_PREL_G0 287 -+#define R_AARCH64_MOVW_PREL_G0_NC 288 -+#define R_AARCH64_MOVW_PREL_G1 289 -+#define R_AARCH64_MOVW_PREL_G1_NC 290 -+#define R_AARCH64_MOVW_PREL_G2 291 -+#define R_AARCH64_MOVW_PREL_G2_NC 292 -+#define R_AARCH64_MOVW_PREL_G3 293 -+#define R_AARCH64_LDST128_ABS_LO12_NC 299 -+#define R_AARCH64_MOVW_GOTOFF_G0 300 -+#define R_AARCH64_MOVW_GOTOFF_G0_NC 301 -+#define R_AARCH64_MOVW_GOTOFF_G1 302 -+#define R_AARCH64_MOVW_GOTOFF_G1_NC 303 -+#define R_AARCH64_MOVW_GOTOFF_G2 304 -+#define R_AARCH64_MOVW_GOTOFF_G2_NC 305 -+#define R_AARCH64_MOVW_GOTOFF_G3 306 -+#define R_AARCH64_GOTREL64 307 -+#define R_AARCH64_GOTREL32 308 -+#define R_AARCH64_GOT_LD_PREL19 309 -+#define R_AARCH64_LD64_GOTOFF_LO15 310 -+#define R_AARCH64_ADR_GOT_PAGE 311 -+#define R_AARCH64_LD64_GOT_LO12_NC 312 -+#define R_AARCH64_LD64_GOTPAGE_LO15 313 -+#define R_AARCH64_TLSGD_ADR_PREL21 512 -+#define R_AARCH64_TLSGD_ADR_PAGE21 513 -+#define R_AARCH64_TLSGD_ADD_LO12_NC 514 -+#define R_AARCH64_TLSGD_MOVW_G1 515 -+#define R_AARCH64_TLSGD_MOVW_G0_NC 516 -+#define R_AARCH64_TLSLD_ADR_PREL21 517 -+#define R_AARCH64_TLSLD_ADR_PAGE21 518 -+#define R_AARCH64_TLSLD_ADD_LO12_NC 519 -+#define R_AARCH64_TLSLD_MOVW_G1 520 -+#define R_AARCH64_TLSLD_MOVW_G0_NC 521 -+#define R_AARCH64_TLSLD_LD_PREL19 522 -+#define R_AARCH64_TLSLD_MOVW_DTPREL_G2 523 -+#define R_AARCH64_TLSLD_MOVW_DTPREL_G1 524 -+#define R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 525 -+#define R_AARCH64_TLSLD_MOVW_DTPREL_G0 526 -+#define R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 527 -+#define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528 -+#define R_AARCH64_TLSLD_ADD_DTPREL_LO12 529 -+#define R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 530 -+#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12 531 -+#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 532 -+#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12 533 -+#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 534 -+#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12 535 -+#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 536 -+#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12 537 -+#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 538 -+#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 539 -+#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 540 -+#define R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 541 -+#define R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 542 -+#define R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 543 -+#define R_AARCH64_TLSLE_MOVW_TPREL_G2 544 -+#define R_AARCH64_TLSLE_MOVW_TPREL_G1 545 -+#define R_AARCH64_TLSLE_MOVW_TPREL_G1_NC 546 -+#define R_AARCH64_TLSLE_MOVW_TPREL_G0 547 -+#define R_AARCH64_TLSLE_MOVW_TPREL_G0_NC 548 -+#define R_AARCH64_TLSLE_ADD_TPREL_HI12 549 -+#define R_AARCH64_TLSLE_ADD_TPREL_LO12 550 -+#define R_AARCH64_TLSLE_ADD_TPREL_LO12_NC 551 -+#define R_AARCH64_TLSLE_LDST8_TPREL_LO12 552 -+#define R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 553 -+#define R_AARCH64_TLSLE_LDST16_TPREL_LO12 554 -+#define R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 555 -+#define R_AARCH64_TLSLE_LDST32_TPREL_LO12 556 -+#define R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 557 -+#define R_AARCH64_TLSLE_LDST64_TPREL_LO12 558 -+#define R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 559 -+#define R_AARCH64_TLSDESC_LD_PREL19 560 -+#define R_AARCH64_TLSDESC_ADR_PREL21 561 -+#define R_AARCH64_TLSDESC_ADR_PAGE21 562 -+#define R_AARCH64_TLSDESC_LD64_LO12 563 -+#define R_AARCH64_TLSDESC_ADD_LO12 564 -+#define R_AARCH64_TLSDESC_OFF_G1 565 -+#define R_AARCH64_TLSDESC_OFF_G0_NC 566 -+#define R_AARCH64_TLSDESC_LDR 567 -+#define R_AARCH64_TLSDESC_ADD 568 -+#define R_AARCH64_TLSDESC_CALL 569 -+#define R_AARCH64_TLSLE_LDST128_TPREL_LO12 570 -+#define R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC 571 -+#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12 572 -+#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC 573 - #define R_AARCH64_COPY 1024 - #define R_AARCH64_GLOB_DAT 1025 - #define R_AARCH64_JUMP_SLOT 1026 -diff -Nur musl-0.9.15/include/fcntl.h musl-git/include/fcntl.h ---- musl-0.9.15/include/fcntl.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/fcntl.h 2014-03-07 14:03:57.000000000 +0100 -@@ -148,6 +148,7 @@ - #define SPLICE_F_MORE 4 - #define SPLICE_F_GIFT 8 - int fallocate(int, int, off_t, off_t); -+#define fallocate64 fallocate - ssize_t readahead(int, off_t, size_t); - int sync_file_range(int, off_t, off_t, unsigned); - ssize_t vmsplice(int, const struct iovec *, size_t, unsigned); -@@ -160,6 +161,7 @@ - #define F_GETLK64 F_GETLK - #define F_SETLK64 F_SETLK - #define F_SETLKW64 F_SETLKW -+#define flock64 flock - #define open64 open - #define openat64 openat - #define creat64 creat -diff -Nur musl-0.9.15/include/netdb.h musl-git/include/netdb.h ---- musl-0.9.15/include/netdb.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/netdb.h 2014-03-07 14:03:57.000000000 +0100 -@@ -131,6 +131,7 @@ - #define TRY_AGAIN 2 - #define NO_RECOVERY 3 - #define NO_DATA 4 -+#define NO_ADDRESS NO_DATA - #endif - - #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -diff -Nur musl-0.9.15/include/netinet/if_ether.h musl-git/include/netinet/if_ether.h ---- musl-0.9.15/include/netinet/if_ether.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/netinet/if_ether.h 2014-03-07 14:03:57.000000000 +0100 -@@ -54,6 +54,7 @@ - #define ETH_P_8021AH 0x88E7 - #define ETH_P_MVRP 0x88F5 - #define ETH_P_1588 0x88F7 -+#define ETH_P_PRP 0x88FB - #define ETH_P_FCOE 0x8906 - #define ETH_P_TDLS 0x890D - #define ETH_P_FIP 0x8914 -diff -Nur musl-0.9.15/include/netinet/in.h musl-git/include/netinet/in.h ---- musl-0.9.15/include/netinet/in.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/netinet/in.h 2014-03-07 14:03:57.000000000 +0100 -@@ -149,7 +149,7 @@ - (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0xe)) - - #define __ARE_4_EQUAL(a,b) \ -- (!( 0[a]-0[b] | 1[a]-1[b] | 2[a]-2[b] | 3[a]-3[b] )) -+ (!( (0[a]-0[b]) | (1[a]-1[b]) | (2[a]-2[b]) | (3[a]-3[b]) )) - #define IN6_ARE_ADDR_EQUAL(a,b) \ - __ARE_4_EQUAL((const uint32_t *)(a), (const uint32_t *)(b)) - -@@ -211,27 +211,13 @@ - #define IP_MULTICAST_ALL 49 - #define IP_UNICAST_IF 50 - --#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) --#define MCAST_JOIN_GROUP 42 --#define MCAST_BLOCK_SOURCE 43 --#define MCAST_UNBLOCK_SOURCE 44 --#define MCAST_LEAVE_GROUP 45 --#define MCAST_JOIN_SOURCE_GROUP 46 --#define MCAST_LEAVE_SOURCE_GROUP 47 --#define MCAST_MSFILTER 48 -- --#define MCAST_EXCLUDE 0 --#define MCAST_INCLUDE 1 --#endif -- - #define IP_RECVRETOPTS IP_RETOPTS - - #define IP_PMTUDISC_DONT 0 - #define IP_PMTUDISC_WANT 1 - #define IP_PMTUDISC_DO 2 - #define IP_PMTUDISC_PROBE 3 -- --#define SOL_IP 0 -+#define IP_PMTUDISC_INTERFACE 4 - - #define IP_DEFAULT_MULTICAST_TTL 1 - #define IP_DEFAULT_MULTICAST_LOOP 1 -@@ -243,6 +229,19 @@ - char ip_opts[40]; - }; - -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+ -+#define MCAST_JOIN_GROUP 42 -+#define MCAST_BLOCK_SOURCE 43 -+#define MCAST_UNBLOCK_SOURCE 44 -+#define MCAST_LEAVE_GROUP 45 -+#define MCAST_JOIN_SOURCE_GROUP 46 -+#define MCAST_LEAVE_SOURCE_GROUP 47 -+#define MCAST_MSFILTER 48 -+ -+#define MCAST_EXCLUDE 0 -+#define MCAST_INCLUDE 1 -+ - struct ip_mreq - { - struct in_addr imr_multiaddr; -@@ -273,7 +272,6 @@ - (sizeof(struct ip_msfilter) - sizeof(struct in_addr) \ - + (numsrc) * sizeof(struct in_addr)) - --#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) - struct group_req { - uint32_t gr_interface; - struct sockaddr_storage gr_group; -@@ -295,7 +293,6 @@ - #define GROUP_FILTER_SIZE(numsrc) \ - (sizeof(struct group_filter) - sizeof(struct sockaddr_storage) \ - + (numsrc) * sizeof(struct sockaddr_storage)) --#endif - - struct in_pktinfo - { -@@ -315,6 +312,7 @@ - struct sockaddr_in6 ip6m_addr; - uint32_t ip6m_mtu; - }; -+#endif - - #define IPV6_ADDRFORM 1 - #define IPV6_2292PKTINFO 2 -@@ -324,7 +322,6 @@ - #define IPV6_2292PKTOPTIONS 6 - #define IPV6_CHECKSUM 7 - #define IPV6_2292HOPLIMIT 8 --#define SCM_SRCRT IPV6_RXSRCRT - #define IPV6_NEXTHOP 9 - #define IPV6_AUTHHDR 10 - #define IPV6_UNICAST_HOPS 16 -@@ -363,15 +360,11 @@ - #define IPV6_RXHOPOPTS IPV6_HOPOPTS - #define IPV6_RXDSTOPTS IPV6_DSTOPTS - -- - #define IPV6_PMTUDISC_DONT 0 - #define IPV6_PMTUDISC_WANT 1 - #define IPV6_PMTUDISC_DO 2 - #define IPV6_PMTUDISC_PROBE 3 - --#define SOL_IPV6 41 --#define SOL_ICMPV6 58 -- - #define IPV6_RTHDR_LOOSE 0 - #define IPV6_RTHDR_STRICT 1 - -diff -Nur musl-0.9.15/include/netinet/tcp.h musl-git/include/netinet/tcp.h ---- musl-0.9.15/include/netinet/tcp.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/netinet/tcp.h 2014-03-07 14:03:57.000000000 +0100 -@@ -44,42 +44,80 @@ - #define SOL_TCP 6 - #include - #include --#endif -+#include -+#include -+ -+typedef uint32_t tcp_seq; - -+#define TH_FIN 0x01 -+#define TH_SYN 0x02 -+#define TH_RST 0x04 -+#define TH_PUSH 0x08 -+#define TH_ACK 0x10 -+#define TH_URG 0x20 -+ -+struct tcphdr { - #ifdef _GNU_SOURCE --#include --struct tcphdr --{ -- u_int16_t source; -- u_int16_t dest; -- u_int32_t seq; -- u_int32_t ack_seq; -+#ifdef __GNUC__ -+ __extension__ -+#endif -+ union { struct { -+ -+ uint16_t source; -+ uint16_t dest; -+ uint32_t seq; -+ uint32_t ack_seq; -+#if __BYTE_ORDER == __LITTLE_ENDIAN -+ uint16_t res1:4; -+ uint16_t doff:4; -+ uint16_t fin:1; -+ uint16_t syn:1; -+ uint16_t rst:1; -+ uint16_t psh:1; -+ uint16_t ack:1; -+ uint16_t urg:1; -+ uint16_t res2:2; -+#else -+ uint16_t doff:4; -+ uint16_t res1:4; -+ uint16_t res2:2; -+ uint16_t urg:1; -+ uint16_t ack:1; -+ uint16_t psh:1; -+ uint16_t rst:1; -+ uint16_t syn:1; -+ uint16_t fin:1; -+#endif -+ uint16_t window; -+ uint16_t check; -+ uint16_t urg_ptr; -+ -+ }; struct { -+#endif -+ -+ uint16_t th_sport; -+ uint16_t th_dport; -+ uint32_t th_seq; -+ uint32_t th_ack; - #if __BYTE_ORDER == __LITTLE_ENDIAN -- u_int16_t res1:4; -- u_int16_t doff:4; -- u_int16_t fin:1; -- u_int16_t syn:1; -- u_int16_t rst:1; -- u_int16_t psh:1; -- u_int16_t ack:1; -- u_int16_t urg:1; -- u_int16_t res2:2; -+ uint8_t th_x2:4; -+ uint8_t th_off:4; - #else -- u_int16_t doff:4; -- u_int16_t res1:4; -- u_int16_t res2:2; -- u_int16_t urg:1; -- u_int16_t ack:1; -- u_int16_t psh:1; -- u_int16_t rst:1; -- u_int16_t syn:1; -- u_int16_t fin:1; --#endif -- u_int16_t window; -- u_int16_t check; -- u_int16_t urg_ptr; -+ uint8_t th_off:4; -+ uint8_t th_x2:4; -+#endif -+ uint8_t th_flags; -+ uint16_t th_win; -+ uint16_t th_sum; -+ uint16_t th_urp; -+ -+#ifdef _GNU_SOURCE -+ }; }; -+#endif - }; -+#endif - -+#ifdef _GNU_SOURCE - #define TCPI_OPT_TIMESTAMPS 1 - #define TCPI_OPT_SACK 2 - #define TCPI_OPT_WSCALE 4 -@@ -93,37 +131,37 @@ - - struct tcp_info - { -- u_int8_t tcpi_state; -- u_int8_t tcpi_ca_state; -- u_int8_t tcpi_retransmits; -- u_int8_t tcpi_probes; -- u_int8_t tcpi_backoff; -- u_int8_t tcpi_options; -- u_int8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; -- u_int32_t tcpi_rto; -- u_int32_t tcpi_ato; -- u_int32_t tcpi_snd_mss; -- u_int32_t tcpi_rcv_mss; -- u_int32_t tcpi_unacked; -- u_int32_t tcpi_sacked; -- u_int32_t tcpi_lost; -- u_int32_t tcpi_retrans; -- u_int32_t tcpi_fackets; -- u_int32_t tcpi_last_data_sent; -- u_int32_t tcpi_last_ack_sent; -- u_int32_t tcpi_last_data_recv; -- u_int32_t tcpi_last_ack_recv; -- u_int32_t tcpi_pmtu; -- u_int32_t tcpi_rcv_ssthresh; -- u_int32_t tcpi_rtt; -- u_int32_t tcpi_rttvar; -- u_int32_t tcpi_snd_ssthresh; -- u_int32_t tcpi_snd_cwnd; -- u_int32_t tcpi_advmss; -- u_int32_t tcpi_reordering; -- u_int32_t tcpi_rcv_rtt; -- u_int32_t tcpi_rcv_space; -- u_int32_t tcpi_total_retrans; -+ uint8_t tcpi_state; -+ uint8_t tcpi_ca_state; -+ uint8_t tcpi_retransmits; -+ uint8_t tcpi_probes; -+ uint8_t tcpi_backoff; -+ uint8_t tcpi_options; -+ uint8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; -+ uint32_t tcpi_rto; -+ uint32_t tcpi_ato; -+ uint32_t tcpi_snd_mss; -+ uint32_t tcpi_rcv_mss; -+ uint32_t tcpi_unacked; -+ uint32_t tcpi_sacked; -+ uint32_t tcpi_lost; -+ uint32_t tcpi_retrans; -+ uint32_t tcpi_fackets; -+ uint32_t tcpi_last_data_sent; -+ uint32_t tcpi_last_ack_sent; -+ uint32_t tcpi_last_data_recv; -+ uint32_t tcpi_last_ack_recv; -+ uint32_t tcpi_pmtu; -+ uint32_t tcpi_rcv_ssthresh; -+ uint32_t tcpi_rtt; -+ uint32_t tcpi_rttvar; -+ uint32_t tcpi_snd_ssthresh; -+ uint32_t tcpi_snd_cwnd; -+ uint32_t tcpi_advmss; -+ uint32_t tcpi_reordering; -+ uint32_t tcpi_rcv_rtt; -+ uint32_t tcpi_rcv_space; -+ uint32_t tcpi_total_retrans; - }; - - #define TCP_MD5SIG_MAXKEYLEN 80 -@@ -131,10 +169,10 @@ - struct tcp_md5sig - { - struct sockaddr_storage tcpm_addr; -- u_int16_t __tcpm_pad1; -- u_int16_t tcpm_keylen; -- u_int32_t __tcpm_pad2; -- u_int8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN]; -+ uint16_t __tcpm_pad1; -+ uint16_t tcpm_keylen; -+ uint32_t __tcpm_pad2; -+ uint8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN]; - }; - - #endif -diff -Nur musl-0.9.15/include/netinet/udp.h musl-git/include/netinet/udp.h ---- musl-0.9.15/include/netinet/udp.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/netinet/udp.h 2014-03-07 14:03:57.000000000 +0100 -@@ -5,19 +5,22 @@ - extern "C" { - #endif - -+#include - #include - --struct udphdr { -- uint16_t source; -- uint16_t dest; -- uint16_t len; -- uint16_t check; --}; -- -+#ifdef _GNU_SOURCE - #define uh_sport source - #define uh_dport dest - #define uh_ulen len - #define uh_sum check -+#endif -+ -+struct udphdr { -+ uint16_t uh_sport; -+ uint16_t uh_dport; -+ uint16_t uh_ulen; -+ uint16_t uh_sum; -+}; - - #define UDP_CORK 1 - #define UDP_ENCAP 100 -diff -Nur musl-0.9.15/include/sched.h musl-git/include/sched.h ---- musl-0.9.15/include/sched.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/sched.h 2014-03-07 14:03:57.000000000 +0100 -@@ -78,7 +78,7 @@ - int sched_getaffinity(pid_t, size_t, cpu_set_t *); - int sched_setaffinity(pid_t, size_t, const cpu_set_t *); - --#define __CPU_op_S(i, size, set, op) ( (i)/8 >= (size) ? 0 : \ -+#define __CPU_op_S(i, size, set, op) ( (i)/8U >= (size) ? 0 : \ - ((set)->__bits[(i)/8/sizeof(long)] op (1UL<<((i)%(8*sizeof(long))))) ) - - #define CPU_SET_S(i, size, set) __CPU_op_S(i, size, set, |=) -diff -Nur musl-0.9.15/include/signal.h musl-git/include/signal.h ---- musl-0.9.15/include/signal.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/signal.h 2014-03-07 14:03:57.000000000 +0100 -@@ -227,8 +227,8 @@ - typedef void (*sighandler_t)(int); - void (*bsd_signal(int, void (*)(int)))(int); - int sigisemptyset(const sigset_t *); --int sigorset (sigset_t *, sigset_t *, sigset_t *); --int sigandset(sigset_t *, sigset_t *, sigset_t *); -+int sigorset (sigset_t *, const sigset_t *, const sigset_t *); -+int sigandset(sigset_t *, const sigset_t *, const sigset_t *); - - #define SA_NOMASK SA_NODEFER - #define SA_ONESHOT SA_RESETHAND -diff -Nur musl-0.9.15/include/stdlib.h musl-git/include/stdlib.h ---- musl-0.9.15/include/stdlib.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/stdlib.h 2014-03-07 14:03:57.000000000 +0100 -@@ -93,7 +93,7 @@ - #define WSTOPSIG(s) WEXITSTATUS(s) - #define WIFEXITED(s) (!WTERMSIG(s)) - #define WIFSTOPPED(s) ((short)((((s)&0xffff)*0x10001)>>8) > 0x7f00) --#define WIFSIGNALED(s) (((s)&0xffff)-1 < 0xffu) -+#define WIFSIGNALED(s) (((s)&0xffff)-1U < 0xffu) - - int posix_memalign (void **, size_t, size_t); - int setenv (const char *, const char *, int); -diff -Nur musl-0.9.15/include/sys/inotify.h musl-git/include/sys/inotify.h ---- musl-0.9.15/include/sys/inotify.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/sys/inotify.h 2014-03-07 14:03:57.000000000 +0100 -@@ -48,7 +48,7 @@ - int inotify_init(void); - int inotify_init1(int); - int inotify_add_watch(int, const char *, uint32_t); --int inotify_rm_watch(int, uint32_t); -+int inotify_rm_watch(int, int); - - #ifdef __cplusplus - } -diff -Nur musl-0.9.15/include/sys/mman.h musl-git/include/sys/mman.h ---- musl-0.9.15/include/sys/mman.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/sys/mman.h 2014-03-07 14:03:57.000000000 +0100 -@@ -33,7 +33,7 @@ - - #ifdef _GNU_SOURCE - void *mremap (void *, size_t, size_t, int, ...); --int remap_file_pages (void *, size_t, int, ssize_t, int); -+int remap_file_pages (void *, size_t, int, size_t, int); - #endif - - #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -diff -Nur musl-0.9.15/include/sys/sem.h musl-git/include/sys/sem.h ---- musl-0.9.15/include/sys/sem.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/sys/sem.h 2014-03-07 14:03:57.000000000 +0100 -@@ -29,19 +29,19 @@ - - struct semid_ds { - struct ipc_perm sem_perm; -- long sem_otime; -- unsigned long __unused1; -- long sem_ctime; -- unsigned long __unused2; -+ time_t sem_otime; -+ time_t __unused1; -+ time_t sem_ctime; -+ time_t __unused2; - #if __BYTE_ORDER == __LITTLE_ENDIAN - unsigned short sem_nsems; -- char __sem_nsems_pad[sizeof(long)-sizeof(short)]; -+ char __sem_nsems_pad[sizeof(time_t)-sizeof(short)]; - #else -- char __sem_nsems_pad[sizeof(long)-sizeof(short)]; -+ char __sem_nsems_pad[sizeof(time_t)-sizeof(short)]; - unsigned short sem_nsems; - #endif -- unsigned long __unused3; -- unsigned long __unused4; -+ time_t __unused3; -+ time_t __unused4; - }; - - #define _SEM_SEMUN_UNDEFINED 1 -diff -Nur musl-0.9.15/include/sys/shm.h musl-git/include/sys/shm.h ---- musl-0.9.15/include/sys/shm.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/sys/shm.h 2014-03-07 14:03:57.000000000 +0100 -@@ -14,6 +14,13 @@ - #include - - #include -+ -+#ifdef _GNU_SOURCE -+#define __used_ids used_ids -+#define __swap_attempts swap_attempts -+#define __swap_successes swap_successes -+#endif -+ - #include - - #define SHM_R 0400 -@@ -33,20 +40,6 @@ - #define SHM_HUGETLB 04000 - #define SHM_NORESERVE 010000 - --struct shminfo { -- unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; --}; -- --struct shm_info { -- int used_ids; -- unsigned long shm_tot, shm_rss, shm_swp; --#ifdef _GNU_SOURCE -- unsigned long swap_attempts, swap_successes; --#else -- unsigned long __reserved[2]; --#endif --}; -- - typedef unsigned long shmatt_t; - - void *shmat(int, const void *, int); -diff -Nur musl-0.9.15/include/sys/socket.h musl-git/include/sys/socket.h ---- musl-0.9.15/include/sys/socket.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/sys/socket.h 2014-03-07 14:03:57.000000000 +0100 -@@ -202,11 +202,16 @@ - #define SO_LOCK_FILTER 44 - #define SO_SELECT_ERR_QUEUE 45 - #define SO_BUSY_POLL 46 -+#define SO_MAX_PACING_RATE 47 - - #ifndef SOL_SOCKET - #define SOL_SOCKET 1 - #endif - -+#define SOL_IP 0 -+#define SOL_IPV6 41 -+#define SOL_ICMPV6 58 -+ - #define SOL_RAW 255 - #define SOL_DECNET 261 - #define SOL_X25 262 -diff -Nur musl-0.9.15/include/sys/sysctl.h musl-git/include/sys/sysctl.h ---- musl-0.9.15/include/sys/sysctl.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/sys/sysctl.h 1970-01-01 01:00:00.000000000 +0100 -@@ -1,17 +0,0 @@ --#ifndef _SYS_SYSCTL_H --#define _SYS_SYSCTL_H -- --#ifdef __cplusplus --extern "C" { --#endif -- --#define __NEED_size_t --#include -- --int sysctl (int *, int, void *, size_t *, void *, size_t); -- --#ifdef __cplusplus --} --#endif -- --#endif -diff -Nur musl-0.9.15/include/sys/time.h musl-git/include/sys/time.h ---- musl-0.9.15/include/sys/time.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/sys/time.h 2014-03-07 14:03:57.000000000 +0100 -@@ -51,6 +51,17 @@ - ((a)->tv_usec += 1000000, (a)->tv_sec--) ) - #endif - -+#if defined(_GNU_SOURCE) -+#define TIMEVAL_TO_TIMESPEC(tv, ts) ( \ -+ (ts)->tv_sec = (tv)->tv_sec, \ -+ (ts)->tv_nsec = (tv)->tv_usec * 1000, \ -+ (void)0 ) -+#define TIMESPEC_TO_TIMEVAL(tv, ts) ( \ -+ (tv)->tv_sec = (ts)->tv_sec, \ -+ (tv)->tv_usec = (ts)->tv_nsec / 1000, \ -+ (void)0 ) -+#endif -+ - #ifdef __cplusplus - } - #endif -diff -Nur musl-0.9.15/include/sys/wait.h musl-git/include/sys/wait.h ---- musl-0.9.15/include/sys/wait.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/sys/wait.h 2014-03-07 14:03:57.000000000 +0100 -@@ -50,7 +50,7 @@ - #define WCOREDUMP(s) ((s) & 0x80) - #define WIFEXITED(s) (!WTERMSIG(s)) - #define WIFSTOPPED(s) ((short)((((s)&0xffff)*0x10001)>>8) > 0x7f00) --#define WIFSIGNALED(s) (((s)&0xffff)-1 < 0xffu) -+#define WIFSIGNALED(s) (((s)&0xffff)-1U < 0xffu) - #define WIFCONTINUED(s) ((s) == 0xffff) - - #ifdef __cplusplus -diff -Nur musl-0.9.15/include/syslog.h musl-git/include/syslog.h ---- musl-0.9.15/include/syslog.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/syslog.h 2014-03-07 14:03:57.000000000 +0100 -@@ -21,7 +21,7 @@ - #define LOG_MAKEPRI(f, p) (((f)<<3)|(p)) - - #define LOG_MASK(p) (1<<(p)) --#define LOG_UPTO(p) ((1<<(p)+1)-1) -+#define LOG_UPTO(p) ((1<<((p)+1))-1) - - #define LOG_KERN (0<<3) - #define LOG_USER (1<<3) -diff -Nur musl-0.9.15/include/time.h musl-git/include/time.h ---- musl-0.9.15/include/time.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/time.h 2014-03-07 14:03:57.000000000 +0100 -@@ -125,7 +125,7 @@ - - - #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) --int stime(time_t *); -+int stime(const time_t *); - time_t timegm(struct tm *); - #endif - -diff -Nur musl-0.9.15/include/utmp.h musl-git/include/utmp.h ---- musl-0.9.15/include/utmp.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/utmp.h 2014-03-07 14:03:57.000000000 +0100 -@@ -10,6 +10,7 @@ - #define ACCOUNTING 9 - #define UT_NAMESIZE 32 - #define UT_HOSTSIZE 256 -+#define UT_LINESIZE 32 - - struct lastlog { - time_t ll_time; -@@ -22,6 +23,8 @@ - #define ut_addr ut_addr_v6[0] - #define utmp utmpx - #define utmpname(x) (-1) -+#define e_exit __e_exit -+#define e_termination __e_termination - - void endutent(void); - struct utmp *getutent(void); -diff -Nur musl-0.9.15/include/utmpx.h musl-git/include/utmpx.h ---- musl-0.9.15/include/utmpx.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/utmpx.h 2014-03-07 14:03:57.000000000 +0100 -@@ -5,6 +5,8 @@ - extern "C" { - #endif - -+#include -+ - #define __NEED_pid_t - #define __NEED_time_t - #define __NEED_suseconds_t -@@ -12,19 +14,17 @@ - - #include - --#define UT_LINESIZE 32 -- - struct utmpx - { - short ut_type; - pid_t ut_pid; -- char ut_line[UT_LINESIZE]; -+ char ut_line[32]; - char ut_id[4]; - char ut_user[32]; - char ut_host[256]; - struct { -- short e_termination; -- short e_exit; -+ short __e_termination; -+ short __e_exit; - } ut_exit; - long ut_session; - struct timeval ut_tv; -@@ -39,7 +39,11 @@ - struct utmpx *pututxline(const struct utmpx *); - void setutxent(void); - -+#if defined(_BSD_SOURCE) | defined(_GNU_SOURCE) -+#define e_exit __e_exit -+#define e_termination __e_termination - void updwtmpx(const char *, const struct utmpx *); -+#endif - - #define EMPTY 0 - #define RUN_LVL 1 -diff -Nur musl-0.9.15/src/crypt/crypt_des.c musl-git/src/crypt/crypt_des.c ---- musl-0.9.15/src/crypt/crypt_des.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/crypt/crypt_des.c 2014-03-07 14:03:57.000000000 +0100 -@@ -692,7 +692,7 @@ - return saltbits; - } - --static void des_setkey(const unsigned char *key, struct expanded_key *ekey) -+void __des_setkey(const unsigned char *key, struct expanded_key *ekey) - { - uint32_t k0, k1, rawkey0, rawkey1; - unsigned int shifts, round, i, ibit; -@@ -753,7 +753,7 @@ - /* - * l_in, r_in, l_out, and r_out are in pseudo-"big-endian" format. - */ --static void do_des(uint32_t l_in, uint32_t r_in, -+void __do_des(uint32_t l_in, uint32_t r_in, - uint32_t *l_out, uint32_t *r_out, - uint32_t count, uint32_t saltbits, const struct expanded_key *ekey) - { -@@ -862,7 +862,7 @@ - ((uint32_t)in[5] << 16) | - ((uint32_t)in[4] << 24); - -- do_des(rawl, rawr, &l_out, &r_out, count, saltbits, ekey); -+ __do_des(rawl, rawr, &l_out, &r_out, count, saltbits, ekey); - - out[0] = l_out >> 24; - out[1] = l_out >> 16; -@@ -894,7 +894,7 @@ - if (*key) - key++; - } -- des_setkey(keybuf, &ekey); -+ __des_setkey(keybuf, &ekey); - - if (*setting == _PASSWORD_EFMT1) { - /* -@@ -929,7 +929,7 @@ - q = keybuf; - while (q <= &keybuf[sizeof(keybuf) - 1] && *key) - *q++ ^= *key++ << 1; -- des_setkey(keybuf, &ekey); -+ __des_setkey(keybuf, &ekey); - } - - memcpy(output, setting, 9); -@@ -957,7 +957,7 @@ - /* - * Do it. - */ -- do_des(0, 0, &r0, &r1, count, setup_salt(salt), &ekey); -+ __do_des(0, 0, &r0, &r1, count, setup_salt(salt), &ekey); - - /* - * Now encode the result... -diff -Nur musl-0.9.15/src/crypt/encrypt.c musl-git/src/crypt/encrypt.c ---- musl-0.9.15/src/crypt/encrypt.c 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/crypt/encrypt.c 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,60 @@ -+#include -+#include -+#include -+ -+struct expanded_key { -+ uint32_t l[16], r[16]; -+}; -+ -+void __des_setkey(const unsigned char *key, struct expanded_key *ekey); -+void __do_des(uint32_t l_in, uint32_t r_in, -+ uint32_t *l_out, uint32_t *r_out, -+ uint32_t count, uint32_t saltbits, const struct expanded_key *ekey); -+ -+ -+static struct expanded_key __encrypt_key; -+ -+void setkey(const char *key) -+{ -+ unsigned char bkey[8]; -+ int i, j; -+ -+ for (i = 0; i < 8; i++) { -+ bkey[i] = 0; -+ for (j = 7; j >= 0; j--, key++) -+ bkey[i] |= (uint32_t)(*key & 1) << j; -+ } -+ -+ __des_setkey(bkey, &__encrypt_key); -+} -+ -+void encrypt(char *block, int edflag) -+{ -+ struct expanded_key decrypt_key, *key; -+ uint32_t b[2]; -+ int i, j; -+ char *p; -+ -+ p = block; -+ for (i = 0; i < 2; i++) { -+ b[i] = 0; -+ for (j = 31; j >= 0; j--, p++) -+ b[i] |= (uint32_t)(*p & 1) << j; -+ } -+ -+ key = &__encrypt_key; -+ if (edflag) { -+ key = &decrypt_key; -+ for (i = 0; i < 16; i++) { -+ decrypt_key.l[i] = __encrypt_key.l[15-i]; -+ decrypt_key.r[i] = __encrypt_key.r[15-i]; -+ } -+ } -+ -+ __do_des(b[0], b[1], b, b + 1, 1, 0, key); -+ -+ p = block; -+ for (i = 0; i < 2; i++) -+ for (j = 31; j >= 0; j--) -+ *p++ = b[i]>>j & 1; -+} -diff -Nur musl-0.9.15/src/dirent/readdir.c musl-git/src/dirent/readdir.c ---- musl-0.9.15/src/dirent/readdir.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/dirent/readdir.c 2014-03-07 14:03:57.000000000 +0100 -@@ -1,5 +1,7 @@ - #include -+#include - #include "__dirent.h" -+#include "syscall.h" - #include "libc.h" - - int __getdents(int, struct dirent *, size_t); -@@ -9,8 +11,11 @@ - struct dirent *de; - - if (dir->buf_pos >= dir->buf_end) { -- int len = __getdents(dir->fd, (void *)dir->buf, sizeof dir->buf); -- if (len <= 0) return 0; -+ int len = __syscall(SYS_getdents, dir->fd, dir->buf, sizeof dir->buf); -+ if (len <= 0) { -+ if (len < 0 && len != -ENOENT) errno = -len; -+ return 0; -+ } - dir->buf_end = len; - dir->buf_pos = 0; - } -diff -Nur musl-0.9.15/src/errno/strerror.c musl-git/src/errno/strerror.c ---- musl-0.9.15/src/errno/strerror.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/errno/strerror.c 2014-03-07 14:03:57.000000000 +0100 -@@ -1,7 +1,7 @@ - #include - #include - --#define E(a,b) a, -+#define E(a,b) ((unsigned char)a), - static const unsigned char errid[] = { - #include "__strerror.h" - }; -@@ -16,6 +16,12 @@ - { - const char *s; - int i; -+ /* mips has one error code outside of the 8-bit range due to a -+ * historical typo, so we just remap it. */ -+ if (EDQUOT==1133) { -+ if (e==109) e=-1; -+ else if (e==EDQUOT) e=109; -+ } - for (i=0; errid[i] && errid[i] != e; i++); - for (s=errmsg; i; s++, i--) for (; *s; s++); - return (char *)s; -diff -Nur musl-0.9.15/src/fcntl/fcntl.c musl-git/src/fcntl/fcntl.c ---- musl-0.9.15/src/fcntl/fcntl.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/fcntl/fcntl.c 2014-03-07 14:03:57.000000000 +0100 -@@ -13,11 +13,11 @@ - arg = va_arg(ap, long); - va_end(ap); - if (cmd == F_SETFL) arg |= O_LARGEFILE; -- if (cmd == F_SETLKW) return syscall_cp(SYS_fcntl, fd, cmd, arg); -+ if (cmd == F_SETLKW) return syscall_cp(SYS_fcntl, fd, cmd, (void *)arg); - if (cmd == F_GETOWN) { - struct f_owner_ex ex; - int ret = __syscall(SYS_fcntl, fd, F_GETOWN_EX, &ex); -- if (ret == -EINVAL) return __syscall(SYS_fcntl, fd, cmd, arg); -+ if (ret == -EINVAL) return __syscall(SYS_fcntl, fd, cmd, (void *)arg); - if (ret) return __syscall_ret(ret); - return ex.type == F_OWNER_PGRP ? -ex.pid : ex.pid; - } -@@ -37,5 +37,14 @@ - if (ret >= 0) __syscall(SYS_fcntl, ret, F_SETFD, FD_CLOEXEC); - return __syscall_ret(ret); - } -- return syscall(SYS_fcntl, fd, cmd, arg); -+ switch (cmd) { -+ case F_SETLK: -+ case F_SETLKW: -+ case F_GETLK: -+ case F_GETOWN_EX: -+ case F_SETOWN_EX: -+ return syscall(SYS_fcntl, fd, cmd, (void *)arg); -+ default: -+ return syscall(SYS_fcntl, fd, cmd, arg); -+ } - } -diff -Nur musl-0.9.15/src/fcntl/posix_fadvise.c musl-git/src/fcntl/posix_fadvise.c ---- musl-0.9.15/src/fcntl/posix_fadvise.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/fcntl/posix_fadvise.c 2014-03-07 14:03:57.000000000 +0100 -@@ -1,8 +1,11 @@ - #include - #include "syscall.h" -+#include "libc.h" - - int posix_fadvise(int fd, off_t base, off_t len, int advice) - { - return -(__syscall)(SYS_fadvise, fd, __SYSCALL_LL_O(base), - __SYSCALL_LL_E(len), advice); - } -+ -+LFS64(posix_fadvise); -diff -Nur musl-0.9.15/src/fcntl/posix_fallocate.c musl-git/src/fcntl/posix_fallocate.c ---- musl-0.9.15/src/fcntl/posix_fallocate.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/fcntl/posix_fallocate.c 2014-03-07 14:03:57.000000000 +0100 -@@ -1,8 +1,11 @@ - #include - #include "syscall.h" -+#include "libc.h" - - int posix_fallocate(int fd, off_t base, off_t len) - { - return -__syscall(SYS_fallocate, fd, 0, __SYSCALL_LL_E(base), - __SYSCALL_LL_E(len)); - } -+ -+LFS64(posix_fallocate); -diff -Nur musl-0.9.15/src/fenv/i386/fenv.s musl-git/src/fenv/i386/fenv.s ---- musl-0.9.15/src/fenv/i386/fenv.s 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/fenv/i386/fenv.s 2014-03-07 14:03:57.000000000 +0100 -@@ -126,7 +126,7 @@ - push %eax - push %eax - push %eax -- push %eax -+ pushl $0xffff - push %eax - pushl $0x37f - fldenv (%esp) -diff -Nur musl-0.9.15/src/fenv/mipsel-sf/fenv.sub musl-git/src/fenv/mipsel-sf/fenv.sub ---- musl-0.9.15/src/fenv/mipsel-sf/fenv.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/fenv/mipsel-sf/fenv.sub 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1 @@ -+../fenv.c -diff -Nur musl-0.9.15/src/fenv/mips-sf/fenv.sub musl-git/src/fenv/mips-sf/fenv.sub ---- musl-0.9.15/src/fenv/mips-sf/fenv.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/fenv/mips-sf/fenv.sub 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1 @@ -+../fenv.c -diff -Nur musl-0.9.15/src/fenv/sh/fenv.s musl-git/src/fenv/sh/fenv.s ---- musl-0.9.15/src/fenv/sh/fenv.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/fenv/sh/fenv.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,74 @@ -+.global fegetround -+.type fegetround, @function -+fegetround: -+ sts fpscr, r0 -+ rts -+ and #3, r0 -+ -+.global __fesetround -+.type __fesetround, @function -+__fesetround: -+ sts fpscr, r0 -+ or r4, r0 -+ lds r0, fpscr -+ rts -+ mov #0, r0 -+ -+.global fetestexcept -+.type fetestexcept, @function -+fetestexcept: -+ sts fpscr, r0 -+ and r4, r0 -+ rts -+ and #0x7c, r0 -+ -+.global feclearexcept -+.type feclearexcept, @function -+feclearexcept: -+ mov r4, r0 -+ and #0x7c, r0 -+ not r0, r4 -+ sts fpscr, r0 -+ and r4, r0 -+ lds r0, fpscr -+ rts -+ mov #0, r0 -+ -+.global feraiseexcept -+.type feraiseexcept, @function -+feraiseexcept: -+ mov r4, r0 -+ and #0x7c, r0 -+ sts fpscr, r4 -+ or r4, r0 -+ lds r0, fpscr -+ rts -+ mov #0, r0 -+ -+.global fegetenv -+.type fegetenv, @function -+fegetenv: -+ sts fpscr, r0 -+ mov.l r0, @r4 -+ rts -+ mov #0, r0 -+ -+.global fesetenv -+.type fesetenv, @function -+fesetenv: -+ mov r4, r0 -+ cmp/eq #-1, r0 -+ bf 1f -+ -+ ! the default environment is complicated by the fact that we need to -+ ! preserve the current precision bit, which we do not know a priori -+ sts fpscr, r0 -+ mov #8, r1 -+ swap.w r1, r1 -+ bra 2f -+ and r1, r0 -+ -+1: mov.l @r4, r0 ! non-default environment -+2: lds r0, fpscr -+ rts -+ mov #0, r0 -diff -Nur musl-0.9.15/src/fenv/sheb-nofpu/fenv.sub musl-git/src/fenv/sheb-nofpu/fenv.sub ---- musl-0.9.15/src/fenv/sheb-nofpu/fenv.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/fenv/sheb-nofpu/fenv.sub 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1 @@ -+../fenv.c -diff -Nur musl-0.9.15/src/fenv/sh-nofpu/fenv.sub musl-git/src/fenv/sh-nofpu/fenv.sub ---- musl-0.9.15/src/fenv/sh-nofpu/fenv.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/fenv/sh-nofpu/fenv.sub 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1 @@ -+../fenv.c -diff -Nur musl-0.9.15/src/fenv/x32/fenv.s musl-git/src/fenv/x32/fenv.s ---- musl-0.9.15/src/fenv/x32/fenv.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/fenv/x32/fenv.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,97 @@ -+.global feclearexcept -+.type feclearexcept,@function -+feclearexcept: -+ # maintain exceptions in the sse mxcsr, clear x87 exceptions -+ mov %edi,%ecx -+ and $0x3f,%ecx -+ fnstsw %ax -+ test %eax,%ecx -+ jz 1f -+ fnclex -+1: stmxcsr -8(%esp) -+ and $0x3f,%eax -+ or %eax,-8(%esp) -+ test %ecx,-8(%esp) -+ jz 1f -+ not %ecx -+ and %ecx,-8(%esp) -+ ldmxcsr -8(%esp) -+1: xor %eax,%eax -+ ret -+ -+.global feraiseexcept -+.type feraiseexcept,@function -+feraiseexcept: -+ and $0x3f,%edi -+ stmxcsr -8(%esp) -+ or %edi,-8(%esp) -+ ldmxcsr -8(%esp) -+ xor %eax,%eax -+ ret -+ -+.global __fesetround -+.type __fesetround,@function -+__fesetround: -+ push %rax -+ xor %eax,%eax -+ mov %edi,%ecx -+ fnstcw (%esp) -+ andb $0xf3,1(%esp) -+ or %ch,1(%esp) -+ fldcw (%esp) -+ stmxcsr (%esp) -+ shl $3,%ch -+ andb $0x9f,1(%esp) -+ or %ch,1(%esp) -+ ldmxcsr (%esp) -+ pop %rcx -+ ret -+ -+.global fegetround -+.type fegetround,@function -+fegetround: -+ push %rax -+ stmxcsr (%esp) -+ pop %rax -+ shr $3,%eax -+ and $0xc00,%eax -+ ret -+ -+.global fegetenv -+.type fegetenv,@function -+fegetenv: -+ xor %eax,%eax -+ fnstenv (%edi) -+ stmxcsr 28(%edi) -+ ret -+ -+.global fesetenv -+.type fesetenv,@function -+fesetenv: -+ xor %eax,%eax -+ inc %edi -+ jz 1f -+ fldenv -1(%edi) -+ ldmxcsr 27(%edi) -+ ret -+1: push %rax -+ push %rax -+ pushq $0xffff -+ pushq $0x37f -+ fldenv (%esp) -+ pushq $0x1f80 -+ ldmxcsr (%esp) -+ add $40,%esp -+ ret -+ -+.global fetestexcept -+.type fetestexcept,@function -+fetestexcept: -+ and $0x3f,%edi -+ push %rax -+ stmxcsr (%esp) -+ pop %rsi -+ fnstsw %ax -+ or %esi,%eax -+ and %edi,%eax -+ ret -diff -Nur musl-0.9.15/src/fenv/x86_64/fenv.s musl-git/src/fenv/x86_64/fenv.s ---- musl-0.9.15/src/fenv/x86_64/fenv.s 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/fenv/x86_64/fenv.s 2014-03-07 14:03:57.000000000 +0100 -@@ -76,7 +76,7 @@ - ret - 1: push %rax - push %rax -- push %rax -+ pushq $0xffff - pushq $0x37f - fldenv (%rsp) - pushq $0x1f80 -diff -Nur musl-0.9.15/src/internal/sh/syscall.s musl-git/src/internal/sh/syscall.s ---- musl-0.9.15/src/internal/sh/syscall.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/internal/sh/syscall.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,22 @@ -+.global __syscall -+.type __syscall, @function -+__syscall: -+ ! The kernel syscall entry point documents that the trap number indicates -+ ! the number of arguments being passed, but it then ignores that information. -+ ! Since we do not actually know how many arguments are being passed, we will -+ ! say there are six, since that is the maximum we support here. -+ mov r4, r3 -+ mov r5, r4 -+ mov r6, r5 -+ mov r7, r6 -+ mov.l @r15, r7 -+ mov.l @(4,r15), r0 -+ mov.l @(8,r15), r1 -+ trapa #22 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ rts -+ nop -diff -Nur musl-0.9.15/src/internal/stdio_impl.h musl-git/src/internal/stdio_impl.h ---- musl-0.9.15/src/internal/stdio_impl.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/internal/stdio_impl.h 2014-03-07 14:03:57.000000000 +0100 -@@ -17,6 +17,7 @@ - #define F_EOF 16 - #define F_ERR 32 - #define F_SVB 64 -+#define F_APP 128 - - struct _IO_FILE { - unsigned flags; -diff -Nur musl-0.9.15/src/internal/syscall.h musl-git/src/internal/syscall.h ---- musl-0.9.15/src/internal/syscall.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/internal/syscall.h 2014-03-07 14:03:57.000000000 +0100 -@@ -1,22 +1,28 @@ - #ifndef _INTERNAL_SYSCALL_H - #define _INTERNAL_SYSCALL_H - --#if defined(__PIC__) && (100*__GNUC__+__GNUC_MINOR__ >= 303) --__attribute__((visibility("protected"))) --#endif --long __syscall_ret(unsigned long), __syscall(long, ...), -- __syscall_cp(long, long, long, long, long, long, long); -- - #include - #include "syscall_arch.h" - --#define __syscall1(n,a) __syscall1(n,(long)(a)) --#define __syscall2(n,a,b) __syscall2(n,(long)(a),(long)(b)) --#define __syscall3(n,a,b,c) __syscall3(n,(long)(a),(long)(b),(long)(c)) --#define __syscall4(n,a,b,c,d) __syscall4(n,(long)(a),(long)(b),(long)(c),(long)(d)) --#define __syscall5(n,a,b,c,d,e) __syscall5(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e)) --#define __syscall6(n,a,b,c,d,e,f) __syscall6(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e),(long)(f)) --#define __syscall7(n,a,b,c,d,e,f,g) (__syscall)(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e),(long)(f),(long)g) -+#ifndef __scc -+#define __scc(X) ((long) (X)) -+typedef long syscall_arg_t; -+#endif -+ -+#if defined(__PIC__) && (100*__GNUC__+__GNUC_MINOR__ >= 303) -+__attribute__((visibility("protected"))) -+#endif -+long __syscall_ret(unsigned long), __syscall(syscall_arg_t, ...), -+ __syscall_cp(syscall_arg_t, syscall_arg_t, syscall_arg_t, syscall_arg_t, -+ syscall_arg_t, syscall_arg_t, syscall_arg_t); -+ -+#define __syscall1(n,a) __syscall1(n,__scc(a)) -+#define __syscall2(n,a,b) __syscall2(n,__scc(a),__scc(b)) -+#define __syscall3(n,a,b,c) __syscall3(n,__scc(a),__scc(b),__scc(c)) -+#define __syscall4(n,a,b,c,d) __syscall4(n,__scc(a),__scc(b),__scc(c),__scc(d)) -+#define __syscall5(n,a,b,c,d,e) __syscall5(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e)) -+#define __syscall6(n,a,b,c,d,e,f) __syscall6(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f)) -+#define __syscall7(n,a,b,c,d,e,f,g) (__syscall)(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f),__scc(g)) - - #define __SYSCALL_NARGS_X(a,b,c,d,e,f,g,h,n,...) n - #define __SYSCALL_NARGS(...) __SYSCALL_NARGS_X(__VA_ARGS__,7,6,5,4,3,2,1,0,) -@@ -31,12 +37,12 @@ - #define socketcall_cp __socketcall_cp - - #define __syscall_cp0(n) (__syscall_cp)(n,0,0,0,0,0,0) --#define __syscall_cp1(n,a) (__syscall_cp)(n,(long)(a),0,0,0,0,0) --#define __syscall_cp2(n,a,b) (__syscall_cp)(n,(long)(a),(long)(b),0,0,0,0) --#define __syscall_cp3(n,a,b,c) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),0,0,0) --#define __syscall_cp4(n,a,b,c,d) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),(long)(d),0,0) --#define __syscall_cp5(n,a,b,c,d,e) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e),0) --#define __syscall_cp6(n,a,b,c,d,e,f) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e),(long)(f)) -+#define __syscall_cp1(n,a) (__syscall_cp)(n,__scc(a),0,0,0,0,0) -+#define __syscall_cp2(n,a,b) (__syscall_cp)(n,__scc(a),__scc(b),0,0,0,0) -+#define __syscall_cp3(n,a,b,c) (__syscall_cp)(n,__scc(a),__scc(b),__scc(c),0,0,0) -+#define __syscall_cp4(n,a,b,c,d) (__syscall_cp)(n,__scc(a),__scc(b),__scc(c),__scc(d),0,0) -+#define __syscall_cp5(n,a,b,c,d,e) (__syscall_cp)(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),0) -+#define __syscall_cp6(n,a,b,c,d,e,f) (__syscall_cp)(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f)) - - #define __syscall_cp(...) __SYSCALL_DISP(__syscall_cp,__VA_ARGS__) - #define syscall_cp(...) __syscall_ret(__syscall_cp(__VA_ARGS__)) -diff -Nur musl-0.9.15/src/internal/x32/syscall.s musl-git/src/internal/x32/syscall.s ---- musl-0.9.15/src/internal/x32/syscall.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/internal/x32/syscall.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,12 @@ -+.global __syscall -+.type __syscall,@function -+__syscall: -+ movq %rdi,%rax -+ movq %rsi,%rdi -+ movq %rdx,%rsi -+ movq %rcx,%rdx -+ movq %r8,%r10 -+ movq %r9,%r8 -+ movq 8(%rsp),%r9 -+ syscall -+ ret -diff -Nur musl-0.9.15/src/ipc/semctl.c musl-git/src/ipc/semctl.c ---- musl-0.9.15/src/ipc/semctl.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/ipc/semctl.c 2014-03-07 14:03:57.000000000 +0100 -@@ -3,16 +3,22 @@ - #include "syscall.h" - #include "ipc.h" - -+union semun { -+ int val; -+ struct semid_ds *buf; -+ unsigned short *array; -+}; -+ - int semctl(int id, int num, int cmd, ...) - { -- long arg; -+ union semun arg; - va_list ap; - va_start(ap, cmd); -- arg = va_arg(ap, long); -+ arg = va_arg(ap, union semun); - va_end(ap); - #ifdef SYS_semctl -- return syscall(SYS_semctl, id, num, cmd | IPC_64, arg); -+ return syscall(SYS_semctl, id, num, cmd | IPC_64, arg.buf); - #else -- return syscall(SYS_ipc, IPCOP_semctl, id, num, cmd | IPC_64, &arg); -+ return syscall(SYS_ipc, IPCOP_semctl, id, num, cmd | IPC_64, &arg.buf); - #endif - } -diff -Nur musl-0.9.15/src/ldso/dladdr.c musl-git/src/ldso/dladdr.c ---- musl-0.9.15/src/ldso/dladdr.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/ldso/dladdr.c 2014-03-07 14:03:57.000000000 +0100 -@@ -1,9 +1,9 @@ - #define _GNU_SOURCE - #include - --int __dladdr(void *, Dl_info *); -+int __dladdr(const void *, Dl_info *); - --int dladdr(void *addr, Dl_info *info) -+int dladdr(const void *addr, Dl_info *info) - { - return __dladdr(addr, info); - } -diff -Nur musl-0.9.15/src/ldso/dynlink.c musl-git/src/ldso/dynlink.c ---- musl-0.9.15/src/ldso/dynlink.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/ldso/dynlink.c 2014-03-07 14:03:57.000000000 +0100 -@@ -253,7 +253,8 @@ - name = strings + sym->st_name; - ctx = IS_COPY(type) ? head->next : head; - def = find_sym(ctx, name, IS_PLT(type)); -- if (!def.sym && sym->st_info>>4 != STB_WEAK) { -+ if (!def.sym && (sym->st_shndx != SHN_UNDEF -+ || sym->st_info>>4 != STB_WEAK)) { - snprintf(errbuf, sizeof errbuf, - "Error relocating %s: %s: symbol not found", - dso->name, name); -@@ -1331,7 +1332,7 @@ - return 0; - } - --int __dladdr(void *addr, Dl_info *info) -+int __dladdr(const void *addr, Dl_info *info) - { - struct dso *p; - Sym *sym; -@@ -1441,7 +1442,7 @@ - { - return 0; - } --int __dladdr (void *addr, Dl_info *info) -+int __dladdr (const void *addr, Dl_info *info) - { - return 0; - } -diff -Nur musl-0.9.15/src/ldso/sh/dlsym.s musl-git/src/ldso/sh/dlsym.s ---- musl-0.9.15/src/ldso/sh/dlsym.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/ldso/sh/dlsym.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,10 @@ -+.text -+.global dlsym -+.type dlsym, @function -+dlsym: -+ mov.l L1, r0 -+ braf r0 -+1: mov.l @r15, r6 -+ -+.align 2 -+L1: .long __dlsym@PLT-(1b-.) -diff -Nur musl-0.9.15/src/ldso/sh/start.s musl-git/src/ldso/sh/start.s ---- musl-0.9.15/src/ldso/sh/start.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/ldso/sh/start.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,26 @@ -+.text -+.global _start -+.type _start, @function -+_start: -+ mov.l @r15, r4 -+ mov r15, r5 -+ mov.l L1, r0 -+ bsrf r0 -+ add #4, r5 -+ -+2: mov r0, r2 -+ mov.l @r15+, r1 -+1: mov.l @r15+, r0 -+ cmp/eq #-1, r0 -+ bt/s 1b -+ add #-1, r1 -+ -+ add #1, r1 -+ mov.l r0, @-r15 -+ mov.l r1, @-r15 -+ mov #0, r4 -+ jmp @r2 -+ nop -+ -+.align 2 -+L1: .long __dynlink@PLT-(2b-.) -diff -Nur musl-0.9.15/src/ldso/x32/dlsym.s musl-git/src/ldso/x32/dlsym.s ---- musl-0.9.15/src/ldso/x32/dlsym.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/ldso/x32/dlsym.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,6 @@ -+.text -+.global dlsym -+.type dlsym,@function -+dlsym: -+ mov (%rsp),%rdx -+ jmp __dlsym -diff -Nur musl-0.9.15/src/ldso/x32/start.s musl-git/src/ldso/x32/start.s ---- musl-0.9.15/src/ldso/x32/start.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/ldso/x32/start.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,24 @@ -+.text -+.global _start -+_start: -+ mov (%rsp),%rdi /* move argc into 1st argument slot */ -+ lea 4(%rsp),%rsi /* move argv into 2nd argument slot */ -+ call __dynlink -+ /* in case the dynlinker was called directly, it sets the "consumed" -+ argv values to -1. so we must loop over the array as long as -1 -+ is in the top argv slot, decrement argc, and then set the stackpointer -+ to the new argc as well as argc's new value. -+ as the x32 abi has longs in the argv array, we cannot use push/pop.*/ -+ movl (%rsp),%edi /* copy argc into edi */ -+ xor %rdx,%rdx /* we use rdx as an offset to the current argv member */ -+1: dec %edi -+ addl $4, %edx -+ movl (%rsp, %rdx), %esi -+ cmp $-1,%esi -+ jz 1b -+ inc %edi -+ subl $4, %edx -+ lea (%rsp, %rdx), %rsp /* set rsp to new argv[-1] */ -+ movl %edi, (%rsp) /* write new argc there */ -+ xor %edx,%edx -+ jmp *%rax -diff -Nur musl-0.9.15/src/linux/clone.c musl-git/src/linux/clone.c ---- musl-0.9.15/src/linux/clone.c 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/linux/clone.c 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,19 @@ -+#include -+#include -+#include "pthread_impl.h" -+#include "syscall.h" -+ -+int clone(int (*func)(void *), void *stack, int flags, void *arg, ...) -+{ -+ va_list ap; -+ pid_t *ptid, *ctid; -+ void *tls; -+ -+ va_start(ap, arg); -+ ptid = va_arg(ap, pid_t *); -+ tls = va_arg(ap, void *); -+ ctid = va_arg(ap, pid_t *); -+ va_end(ap); -+ -+ return __syscall_ret(__clone(func, stack, flags, arg, ptid, tls, ctid)); -+} -diff -Nur musl-0.9.15/src/linux/fallocate.c musl-git/src/linux/fallocate.c ---- musl-0.9.15/src/linux/fallocate.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/linux/fallocate.c 2014-03-07 14:03:57.000000000 +0100 -@@ -1,9 +1,13 @@ - #define _GNU_SOURCE - #include - #include "syscall.h" -+#include "libc.h" - - int fallocate(int fd, int mode, off_t base, off_t len) - { - return syscall(SYS_fallocate, fd, mode, __SYSCALL_LL_E(base), - __SYSCALL_LL_E(len)); - } -+ -+#undef fallocate64 -+LFS64(fallocate); -diff -Nur musl-0.9.15/src/linux/inotify.c musl-git/src/linux/inotify.c ---- musl-0.9.15/src/linux/inotify.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/linux/inotify.c 2014-03-07 14:03:57.000000000 +0100 -@@ -15,7 +15,7 @@ - return syscall(SYS_inotify_add_watch, fd, pathname, mask); - } - --int inotify_rm_watch(int fd, uint32_t wd) -+int inotify_rm_watch(int fd, int wd) - { - return syscall(SYS_inotify_rm_watch, fd, wd); - } -diff -Nur musl-0.9.15/src/linux/remap_file_pages.c musl-git/src/linux/remap_file_pages.c ---- musl-0.9.15/src/linux/remap_file_pages.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/linux/remap_file_pages.c 2014-03-07 14:03:57.000000000 +0100 -@@ -2,7 +2,7 @@ - #include - #include "syscall.h" - --int remap_file_pages(void *addr, size_t size, int prot, ssize_t pgoff, int flags) -+int remap_file_pages(void *addr, size_t size, int prot, size_t pgoff, int flags) - { - return syscall(SYS_remap_file_pages, addr, size, prot, pgoff, flags); - } -diff -Nur musl-0.9.15/src/linux/stime.c musl-git/src/linux/stime.c ---- musl-0.9.15/src/linux/stime.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/linux/stime.c 2014-03-07 14:03:57.000000000 +0100 -@@ -2,7 +2,7 @@ - #include - #include - --int stime(time_t *t) -+int stime(const time_t *t) - { - struct timeval tv = { .tv_sec = *t, .tv_usec = 0 }; - return settimeofday(&tv, (void *)0); -diff -Nur musl-0.9.15/src/linux/x32/sysinfo.s musl-git/src/linux/x32/sysinfo.s ---- musl-0.9.15/src/linux/x32/sysinfo.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/linux/x32/sysinfo.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,5 @@ -+.text -+.global sysinfo -+.type sysinfo,@function -+sysinfo: -+ jmp __x32_sysinfo -diff -Nur musl-0.9.15/src/locale/wcsxfrm.c musl-git/src/locale/wcsxfrm.c ---- musl-0.9.15/src/locale/wcsxfrm.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/locale/wcsxfrm.c 2014-03-07 14:03:57.000000000 +0100 -@@ -6,10 +6,12 @@ - size_t __wcsxfrm_l(wchar_t *restrict dest, const wchar_t *restrict src, size_t n, locale_t loc) - { - size_t l = wcslen(src); -- if (l >= n) { -+ if (l < n) { -+ wmemcpy(dest, src, l+1); -+ } else if (n) { - wmemcpy(dest, src, n-1); - dest[n-1] = 0; -- } else wcscpy(dest, src); -+ } - return l; - } - -diff -Nur musl-0.9.15/src/math/i386/remainderf.s musl-git/src/math/i386/remainderf.s ---- musl-0.9.15/src/math/i386/remainderf.s 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/math/i386/remainderf.s 2014-03-07 14:03:57.000000000 +0100 -@@ -1,6 +1,9 @@ - .global remainderf - .type remainderf,@function - remainderf: -+.weak dremf -+.type dremf,@function -+dremf: - flds 8(%esp) - flds 4(%esp) - 1: fprem1 -diff -Nur musl-0.9.15/src/math/i386/remainder.s musl-git/src/math/i386/remainder.s ---- musl-0.9.15/src/math/i386/remainder.s 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/math/i386/remainder.s 2014-03-07 14:03:57.000000000 +0100 -@@ -1,6 +1,9 @@ - .global remainder - .type remainder,@function - remainder: -+.weak drem -+.type drem,@function -+drem: - fldl 12(%esp) - fldl 4(%esp) - 1: fprem1 -diff -Nur musl-0.9.15/src/math/x32/acosl.s musl-git/src/math/x32/acosl.s ---- musl-0.9.15/src/math/x32/acosl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/acosl.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,16 @@ -+# see ../i386/acos.s -+ -+.global acosl -+.type acosl,@function -+acosl: -+ fldt 8(%esp) -+1: fld %st(0) -+ fld1 -+ fsub %st(0),%st(1) -+ fadd %st(2) -+ fmulp -+ fsqrt -+ fabs -+ fxch %st(1) -+ fpatan -+ ret -diff -Nur musl-0.9.15/src/math/x32/asinl.s musl-git/src/math/x32/asinl.s ---- musl-0.9.15/src/math/x32/asinl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/asinl.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,12 @@ -+.global asinl -+.type asinl,@function -+asinl: -+ fldt 8(%esp) -+1: fld %st(0) -+ fld1 -+ fsub %st(0),%st(1) -+ fadd %st(2) -+ fmulp -+ fsqrt -+ fpatan -+ ret -diff -Nur musl-0.9.15/src/math/x32/atan2l.s musl-git/src/math/x32/atan2l.s ---- musl-0.9.15/src/math/x32/atan2l.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/atan2l.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,7 @@ -+.global atan2l -+.type atan2l,@function -+atan2l: -+ fldt 8(%esp) -+ fldt 24(%esp) -+ fpatan -+ ret -diff -Nur musl-0.9.15/src/math/x32/atanl.s musl-git/src/math/x32/atanl.s ---- musl-0.9.15/src/math/x32/atanl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/atanl.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,7 @@ -+.global atanl -+.type atanl,@function -+atanl: -+ fldt 8(%esp) -+ fld1 -+ fpatan -+ ret -diff -Nur musl-0.9.15/src/math/x32/ceill.s musl-git/src/math/x32/ceill.s ---- musl-0.9.15/src/math/x32/ceill.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/ceill.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1 @@ -+# see floorl.s -diff -Nur musl-0.9.15/src/math/x32/exp2l.s musl-git/src/math/x32/exp2l.s ---- musl-0.9.15/src/math/x32/exp2l.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/exp2l.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,90 @@ -+.global expm1l -+.type expm1l,@function -+expm1l: -+ fldt 8(%esp) -+ fldl2e -+ fmulp -+ movl $0xc2820000,-4(%esp) -+ flds -4(%esp) -+ fucomp %st(1) -+ fnstsw %ax -+ sahf -+ fld1 -+ jb 1f -+ # x*log2e <= -65, return -1 without underflow -+ fstp %st(1) -+ fchs -+ ret -+1: fld %st(1) -+ fabs -+ fucom %st(1) -+ fnstsw %ax -+ fstp %st(0) -+ fstp %st(0) -+ sahf -+ ja 1f -+ f2xm1 -+ ret -+1: push %rax -+ call 1f -+ pop %rax -+ fld1 -+ fsubrp -+ ret -+ -+.global exp2l -+.type exp2l,@function -+exp2l: -+ fldt 8(%esp) -+1: fld %st(0) -+ sub $16,%esp -+ fstpt (%esp) -+ mov 8(%esp),%ax -+ and $0x7fff,%ax -+ cmp $0x3fff+13,%ax -+ jb 4f # |x| < 8192 -+ cmp $0x3fff+15,%ax -+ jae 3f # |x| >= 32768 -+ fsts (%esp) -+ cmpl $0xc67ff800,(%esp) -+ jb 2f # x > -16382 -+ movl $0x5f000000,(%esp) -+ flds (%esp) # 0x1p63 -+ fld %st(1) -+ fsub %st(1) -+ faddp -+ fucomp %st(1) -+ fnstsw -+ sahf -+ je 2f # x - 0x1p63 + 0x1p63 == x -+ movl $1,(%esp) -+ flds (%esp) # 0x1p-149 -+ fdiv %st(1) -+ fstps (%esp) # raise underflow -+2: fld1 -+ fld %st(1) -+ frndint -+ fxch %st(2) -+ fsub %st(2) # st(0)=x-rint(x), st(1)=1, st(2)=rint(x) -+ f2xm1 -+ faddp # 2^(x-rint(x)) -+1: fscale -+ fstp %st(1) -+ add $16,%esp -+ ret -+3: xor %eax,%eax -+4: cmp $0x3fff-64,%ax -+ fld1 -+ jb 1b # |x| < 0x1p-64 -+ fstpt (%esp) -+ fistl 8(%esp) -+ fildl 8(%esp) -+ fsubrp %st(1) -+ addl $0x3fff,8(%esp) -+ f2xm1 -+ fld1 -+ faddp # 2^(x-rint(x)) -+ fldt (%esp) # 2^rint(x) -+ fmulp -+ add $16,%esp -+ ret -diff -Nur musl-0.9.15/src/math/x32/expl.s musl-git/src/math/x32/expl.s ---- musl-0.9.15/src/math/x32/expl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/expl.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,101 @@ -+# exp(x) = 2^hi + 2^hi (2^lo - 1) -+# where hi+lo = log2e*x with 128bit precision -+# exact log2e*x calculation depends on nearest rounding mode -+# using the exact multiplication method of Dekker and Veltkamp -+ -+.global expl -+.type expl,@function -+expl: -+ fldt 8(%esp) -+ -+ # interesting case: 0x1p-32 <= |x| < 16384 -+ # check if (exponent|0x8000) is in [0xbfff-32, 0xbfff+13] -+ mov 16(%esp), %ax -+ or $0x8000, %ax -+ sub $0xbfdf, %ax -+ cmp $45, %ax -+ jbe 2f -+ test %ax, %ax -+ fld1 -+ js 1f -+ # if |x|>=0x1p14 or nan return 2^trunc(x) -+ fscale -+ fstp %st(1) -+ ret -+ # if |x|<0x1p-32 return 1+x -+1: faddp -+ ret -+ -+ # should be 0x1.71547652b82fe178p0L == 0x3fff b8aa3b29 5c17f0bc -+ # it will be wrong on non-nearest rounding mode -+2: fldl2e -+ sub $48, %esp -+ # hi = log2e_hi*x -+ # 2^hi = exp2l(hi) -+ fmul %st(1),%st -+ fld %st(0) -+ fstpt (%esp) -+ fstpt 16(%esp) -+ fstpt 32(%esp) -+ call exp2l -+ # if 2^hi == inf return 2^hi -+ fld %st(0) -+ fstpt (%esp) -+ cmpw $0x7fff, 8(%esp) -+ je 1f -+ fldt 32(%esp) -+ fldt 16(%esp) -+ # fpu stack: 2^hi x hi -+ # exact mult: x*log2e -+ fld %st(1) -+ # c = 0x1p32+1 -+ movq $0x41f0000000100000,%rax -+ pushq %rax -+ fldl (%esp) -+ # xh = x - c*x + c*x -+ # xl = x - xh -+ fmulp -+ fld %st(2) -+ fsub %st(1), %st -+ faddp -+ fld %st(2) -+ fsub %st(1), %st -+ # yh = log2e_hi - c*log2e_hi + c*log2e_hi -+ movq $0x3ff7154765200000,%rax -+ pushq %rax -+ fldl (%esp) -+ # fpu stack: 2^hi x hi xh xl yh -+ # lo = hi - xh*yh + xl*yh -+ fld %st(2) -+ fmul %st(1), %st -+ fsubp %st, %st(4) -+ fmul %st(1), %st -+ faddp %st, %st(3) -+ # yl = log2e_hi - yh -+ movq $0x3de705fc2f000000,%rax -+ pushq %rax -+ fldl (%esp) -+ # fpu stack: 2^hi x lo xh xl yl -+ # lo += xh*yl + xl*yl -+ fmul %st, %st(2) -+ fmulp %st, %st(1) -+ fxch %st(2) -+ faddp -+ faddp -+ # log2e_lo -+ movq $0xbfbe,%rax -+ pushq %rax -+ movq $0x82f0025f2dc582ee,%rax -+ pushq %rax -+ fldt (%esp) -+ add $40,%esp -+ # fpu stack: 2^hi x lo log2e_lo -+ # lo += log2e_lo*x -+ # return 2^hi + 2^hi (2^lo - 1) -+ fmulp %st, %st(2) -+ faddp -+ f2xm1 -+ fmul %st(1), %st -+ faddp -+1: add $48, %esp -+ ret -diff -Nur musl-0.9.15/src/math/x32/expm1l.s musl-git/src/math/x32/expm1l.s ---- musl-0.9.15/src/math/x32/expm1l.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/expm1l.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1 @@ -+# see exp2l.s -diff -Nur musl-0.9.15/src/math/x32/fabsf.s musl-git/src/math/x32/fabsf.s ---- musl-0.9.15/src/math/x32/fabsf.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/fabsf.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,7 @@ -+.global fabsf -+.type fabsf,@function -+fabsf: -+ mov $0x7fffffff,%eax -+ movq %rax,%xmm1 -+ andps %xmm1,%xmm0 -+ ret -diff -Nur musl-0.9.15/src/math/x32/fabsl.s musl-git/src/math/x32/fabsl.s ---- musl-0.9.15/src/math/x32/fabsl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/fabsl.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,6 @@ -+.global fabsl -+.type fabsl,@function -+fabsl: -+ fldt 8(%esp) -+ fabs -+ ret -diff -Nur musl-0.9.15/src/math/x32/fabs.s musl-git/src/math/x32/fabs.s ---- musl-0.9.15/src/math/x32/fabs.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/fabs.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,9 @@ -+.global fabs -+.type fabs,@function -+fabs: -+ xor %eax,%eax -+ dec %rax -+ shr %rax -+ movq %rax,%xmm1 -+ andpd %xmm1,%xmm0 -+ ret -diff -Nur musl-0.9.15/src/math/x32/floorl.s musl-git/src/math/x32/floorl.s ---- musl-0.9.15/src/math/x32/floorl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/floorl.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,27 @@ -+.global floorl -+.type floorl,@function -+floorl: -+ fldt 8(%esp) -+1: mov $0x7,%al -+1: fstcw 8(%esp) -+ mov 9(%esp),%ah -+ mov %al,9(%esp) -+ fldcw 8(%esp) -+ frndint -+ mov %ah,9(%esp) -+ fldcw 8(%esp) -+ ret -+ -+.global ceill -+.type ceill,@function -+ceill: -+ fldt 8(%esp) -+ mov $0xb,%al -+ jmp 1b -+ -+.global truncl -+.type truncl,@function -+truncl: -+ fldt 8(%esp) -+ mov $0xf,%al -+ jmp 1b -diff -Nur musl-0.9.15/src/math/x32/fmodl.s musl-git/src/math/x32/fmodl.s ---- musl-0.9.15/src/math/x32/fmodl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/fmodl.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,11 @@ -+.global fmodl -+.type fmodl,@function -+fmodl: -+ fldt 24(%esp) -+ fldt 8(%esp) -+1: fprem -+ fstsw %ax -+ sahf -+ jp 1b -+ fstp %st(1) -+ ret -diff -Nur musl-0.9.15/src/math/x32/llrintf.s musl-git/src/math/x32/llrintf.s ---- musl-0.9.15/src/math/x32/llrintf.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/llrintf.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,5 @@ -+.global llrintf -+.type llrintf,@function -+llrintf: -+ cvtss2si %xmm0,%rax -+ ret -diff -Nur musl-0.9.15/src/math/x32/llrintl.s musl-git/src/math/x32/llrintl.s ---- musl-0.9.15/src/math/x32/llrintl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/llrintl.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,7 @@ -+.global llrintl -+.type llrintl,@function -+llrintl: -+ fldt 8(%esp) -+ fistpll 8(%esp) -+ mov 8(%esp),%rax -+ ret -diff -Nur musl-0.9.15/src/math/x32/llrint.s musl-git/src/math/x32/llrint.s ---- musl-0.9.15/src/math/x32/llrint.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/llrint.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,5 @@ -+.global llrint -+.type llrint,@function -+llrint: -+ cvtsd2si %xmm0,%rax -+ ret -diff -Nur musl-0.9.15/src/math/x32/log10l.s musl-git/src/math/x32/log10l.s ---- musl-0.9.15/src/math/x32/log10l.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/log10l.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,7 @@ -+.global log10l -+.type log10l,@function -+log10l: -+ fldlg2 -+ fldt 8(%esp) -+ fyl2x -+ ret -diff -Nur musl-0.9.15/src/math/x32/log1pl.s musl-git/src/math/x32/log1pl.s ---- musl-0.9.15/src/math/x32/log1pl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/log1pl.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,15 @@ -+.global log1pl -+.type log1pl,@function -+log1pl: -+ mov 14(%esp),%eax -+ fldln2 -+ and $0x7fffffff,%eax -+ fldt 8(%esp) -+ cmp $0x3ffd9400,%eax -+ ja 1f -+ fyl2xp1 -+ ret -+1: fld1 -+ faddp -+ fyl2x -+ ret -diff -Nur musl-0.9.15/src/math/x32/log2l.s musl-git/src/math/x32/log2l.s ---- musl-0.9.15/src/math/x32/log2l.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/log2l.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,7 @@ -+.global log2l -+.type log2l,@function -+log2l: -+ fld1 -+ fldt 8(%esp) -+ fyl2x -+ ret -diff -Nur musl-0.9.15/src/math/x32/logl.s musl-git/src/math/x32/logl.s ---- musl-0.9.15/src/math/x32/logl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/logl.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,7 @@ -+.global logl -+.type logl,@function -+logl: -+ fldln2 -+ fldt 8(%esp) -+ fyl2x -+ ret -diff -Nur musl-0.9.15/src/math/x32/lrintf.s musl-git/src/math/x32/lrintf.s ---- musl-0.9.15/src/math/x32/lrintf.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/lrintf.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,5 @@ -+.global lrintf -+.type lrintf,@function -+lrintf: -+ cvtss2si %xmm0,%rax -+ ret -diff -Nur musl-0.9.15/src/math/x32/lrintl.s musl-git/src/math/x32/lrintl.s ---- musl-0.9.15/src/math/x32/lrintl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/lrintl.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,7 @@ -+.global lrintl -+.type lrintl,@function -+lrintl: -+ fldt 8(%esp) -+ fistpll 8(%esp) -+ mov 8(%esp),%rax -+ ret -diff -Nur musl-0.9.15/src/math/x32/lrint.s musl-git/src/math/x32/lrint.s ---- musl-0.9.15/src/math/x32/lrint.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/lrint.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,5 @@ -+.global lrint -+.type lrint,@function -+lrint: -+ cvtsd2si %xmm0,%rax -+ ret -diff -Nur musl-0.9.15/src/math/x32/remainderl.s musl-git/src/math/x32/remainderl.s ---- musl-0.9.15/src/math/x32/remainderl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/remainderl.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,11 @@ -+.global remainderl -+.type remainderl,@function -+remainderl: -+ fldt 24(%esp) -+ fldt 8(%esp) -+1: fprem1 -+ fstsw %ax -+ sahf -+ jp 1b -+ fstp %st(1) -+ ret -diff -Nur musl-0.9.15/src/math/x32/rintl.s musl-git/src/math/x32/rintl.s ---- musl-0.9.15/src/math/x32/rintl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/rintl.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,6 @@ -+.global rintl -+.type rintl,@function -+rintl: -+ fldt 8(%esp) -+ frndint -+ ret -diff -Nur musl-0.9.15/src/math/x32/sqrtf.s musl-git/src/math/x32/sqrtf.s ---- musl-0.9.15/src/math/x32/sqrtf.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/sqrtf.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,4 @@ -+.global sqrtf -+.type sqrtf,@function -+sqrtf: sqrtss %xmm0, %xmm0 -+ ret -diff -Nur musl-0.9.15/src/math/x32/sqrtl.s musl-git/src/math/x32/sqrtl.s ---- musl-0.9.15/src/math/x32/sqrtl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/sqrtl.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,5 @@ -+.global sqrtl -+.type sqrtl,@function -+sqrtl: fldt 8(%esp) -+ fsqrt -+ ret -diff -Nur musl-0.9.15/src/math/x32/sqrt.s musl-git/src/math/x32/sqrt.s ---- musl-0.9.15/src/math/x32/sqrt.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/sqrt.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,4 @@ -+.global sqrt -+.type sqrt,@function -+sqrt: sqrtsd %xmm0, %xmm0 -+ ret -diff -Nur musl-0.9.15/src/math/x32/truncl.s musl-git/src/math/x32/truncl.s ---- musl-0.9.15/src/math/x32/truncl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/truncl.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1 @@ -+# see floorl.s -diff -Nur musl-0.9.15/src/misc/nftw.c musl-git/src/misc/nftw.c ---- musl-0.9.15/src/misc/nftw.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/misc/nftw.c 2014-03-07 14:03:57.000000000 +0100 -@@ -46,8 +46,7 @@ - type = FTW_F; - } - -- if ((flags & FTW_MOUNT) && h -- && (st.st_dev != h->dev || st.st_ino != h->ino)) -+ if ((flags & FTW_MOUNT) && h && st.st_dev != h->dev) - return 0; - - new.chain = h; -diff -Nur musl-0.9.15/src/network/accept4.c musl-git/src/network/accept4.c ---- musl-0.9.15/src/network/accept4.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/network/accept4.c 2014-03-07 14:03:57.000000000 +0100 -@@ -1,9 +1,20 @@ - #define _GNU_SOURCE - #include -+#include -+#include - #include "syscall.h" - #include "libc.h" - - int accept4(int fd, struct sockaddr *restrict addr, socklen_t *restrict len, int flg) - { -- return socketcall_cp(accept4, fd, addr, len, flg, 0, 0); -+ if (!flg) return accept(fd, addr, len); -+ int ret = socketcall_cp(accept4, fd, addr, len, flg, 0, 0); -+ if (ret>=0 || (errno != ENOSYS && errno != EINVAL)) return ret; -+ ret = accept(fd, addr, len); -+ if (ret<0) return ret; -+ if (flg & SOCK_CLOEXEC) -+ __syscall(SYS_fcntl, ret, F_SETFD, FD_CLOEXEC); -+ if (flg & SOCK_NONBLOCK) -+ __syscall(SYS_fcntl, ret, F_SETFL, O_NONBLOCK); -+ return ret; - } -diff -Nur musl-0.9.15/src/network/inet_legacy.c musl-git/src/network/inet_legacy.c ---- musl-0.9.15/src/network/inet_legacy.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/network/inet_legacy.c 2014-03-07 14:03:57.000000000 +0100 -@@ -16,9 +16,8 @@ - return 1; - } - --struct in_addr inet_makeaddr(int net, int host) -+struct in_addr inet_makeaddr(in_addr_t n, in_addr_t h) - { -- uint32_t n = net, h = host; - if (n < 256) h |= n<<24; - else if (n < 65536) h |= n<<16; - else h |= n<<8; -diff -Nur musl-0.9.15/src/network/proto.c musl-git/src/network/proto.c ---- musl-0.9.15/src/network/proto.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/network/proto.c 2014-03-07 14:03:57.000000000 +0100 -@@ -4,7 +4,7 @@ - /* do we really need all these?? */ - - static int idx; --static const unsigned char protos[][6] = { -+static const unsigned char protos[][8] = { - "\000ip", - "\001icmp", - "\002igmp", -@@ -13,7 +13,9 @@ - "\014pup", - "\021udp", - "\026idp", -- "\377raw" -+ "\051ipv6", -+ "\072icmpv6", -+ "\377raw", - "\0\0" - }; - -diff -Nur musl-0.9.15/src/prng/random.c musl-git/src/prng/random.c ---- musl-0.9.15/src/prng/random.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/prng/random.c 2014-03-07 14:03:57.000000000 +0100 -@@ -1,10 +1,3 @@ --/* -- * random.c - Copyright © 2011 Szabolcs Nagy -- * Permission to use, copy, modify, and/or distribute this code -- * for any purpose with or without fee is hereby granted. -- * There is no warranty. --*/ -- - #include - #include - #include "libc.h" -@@ -12,11 +5,7 @@ - /* - this code uses the same lagged fibonacci generator as the - original bsd random implementation except for the seeding -- --different seeds produce different sequences with long period --(other libcs seed the state with a park-miller generator --when seed=0 some fail to produce good random sequence --others produce the same sequence as another seed) -+which was broken in the original - */ - - static uint32_t init[] = { -@@ -98,6 +87,7 @@ - n = 63; - x = (uint32_t*)state + 1; - __srandom(seed); -+ savestate(); - UNLOCK(lock); - return old; - } -diff -Nur musl-0.9.15/src/process/posix_spawn.c musl-git/src/process/posix_spawn.c ---- musl-0.9.15/src/process/posix_spawn.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/process/posix_spawn.c 2014-03-07 14:03:57.000000000 +0100 -@@ -166,7 +166,7 @@ - - close(args.p[0]); - -- if (!ec) *res = pid; -+ if (!ec && res) *res = pid; - - pthread_sigmask(SIG_SETMASK, &args.oldmask, 0); - pthread_setcancelstate(cs, 0); -diff -Nur musl-0.9.15/src/process/x32/vfork.s musl-git/src/process/x32/vfork.s ---- musl-0.9.15/src/process/x32/vfork.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/process/x32/vfork.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,12 @@ -+.global __vfork -+.weak vfork -+.type __vfork,@function -+.type vfork,@function -+__vfork: -+vfork: -+ pop %rdx -+ mov $0x4000003a,%eax /* SYS_vfork */ -+ syscall -+ push %rdx -+ mov %rax,%rdi -+ jmp __syscall_ret -diff -Nur musl-0.9.15/src/setjmp/mipsel-sf/longjmp.sub musl-git/src/setjmp/mipsel-sf/longjmp.sub ---- musl-0.9.15/src/setjmp/mipsel-sf/longjmp.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/mipsel-sf/longjmp.sub 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1 @@ -+../mips-sf/longjmp.s -diff -Nur musl-0.9.15/src/setjmp/mipsel-sf/setjmp.sub musl-git/src/setjmp/mipsel-sf/setjmp.sub ---- musl-0.9.15/src/setjmp/mipsel-sf/setjmp.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/mipsel-sf/setjmp.sub 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1 @@ -+../mips-sf/setjmp.s -diff -Nur musl-0.9.15/src/setjmp/mips-sf/longjmp.s musl-git/src/setjmp/mips-sf/longjmp.s ---- musl-0.9.15/src/setjmp/mips-sf/longjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/mips-sf/longjmp.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,25 @@ -+.set noreorder -+ -+.global _longjmp -+.global longjmp -+.type _longjmp,@function -+.type longjmp,@function -+_longjmp: -+longjmp: -+ move $2, $5 -+ bne $2, $0, 1f -+ nop -+ addu $2, $2, 1 -+1: lw $ra, 0($4) -+ lw $sp, 4($4) -+ lw $16, 8($4) -+ lw $17, 12($4) -+ lw $18, 16($4) -+ lw $19, 20($4) -+ lw $20, 24($4) -+ lw $21, 28($4) -+ lw $22, 32($4) -+ lw $23, 36($4) -+ lw $30, 40($4) -+ jr $ra -+ lw $28, 44($4) -diff -Nur musl-0.9.15/src/setjmp/mips-sf/longjmp.sub musl-git/src/setjmp/mips-sf/longjmp.sub ---- musl-0.9.15/src/setjmp/mips-sf/longjmp.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/mips-sf/longjmp.sub 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1 @@ -+longjmp.s -diff -Nur musl-0.9.15/src/setjmp/mips-sf/setjmp.s musl-git/src/setjmp/mips-sf/setjmp.s ---- musl-0.9.15/src/setjmp/mips-sf/setjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/mips-sf/setjmp.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,25 @@ -+.set noreorder -+ -+.global __setjmp -+.global _setjmp -+.global setjmp -+.type __setjmp,@function -+.type _setjmp,@function -+.type setjmp,@function -+__setjmp: -+_setjmp: -+setjmp: -+ sw $ra, 0($4) -+ sw $sp, 4($4) -+ sw $16, 8($4) -+ sw $17, 12($4) -+ sw $18, 16($4) -+ sw $19, 20($4) -+ sw $20, 24($4) -+ sw $21, 28($4) -+ sw $22, 32($4) -+ sw $23, 36($4) -+ sw $30, 40($4) -+ sw $28, 44($4) -+ jr $ra -+ li $2, 0 -diff -Nur musl-0.9.15/src/setjmp/mips-sf/setjmp.sub musl-git/src/setjmp/mips-sf/setjmp.sub ---- musl-0.9.15/src/setjmp/mips-sf/setjmp.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/mips-sf/setjmp.sub 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1 @@ -+setjmp.s -diff -Nur musl-0.9.15/src/setjmp/sh/longjmp.s musl-git/src/setjmp/sh/longjmp.s ---- musl-0.9.15/src/setjmp/sh/longjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/sh/longjmp.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,26 @@ -+.global _longjmp -+.global longjmp -+.type _longjmp, @function -+.type longjmp, @function -+_longjmp: -+longjmp: -+ mov.l @r4+, r8 -+ mov.l @r4+, r9 -+ mov.l @r4+, r10 -+ mov.l @r4+, r11 -+ mov.l @r4+, r12 -+ mov.l @r4+, r13 -+ mov.l @r4+, r14 -+ mov.l @r4+, r15 -+ lds.l @r4+, pr -+ fmov.s @r4+, fr12 -+ fmov.s @r4+, fr13 -+ fmov.s @r4+, fr14 -+ fmov.s @r4+, fr15 -+ -+ tst r5, r5 -+ movt r0 -+ add r5, r0 -+ -+ rts -+ nop -diff -Nur musl-0.9.15/src/setjmp/sh/setjmp.s musl-git/src/setjmp/sh/setjmp.s ---- musl-0.9.15/src/setjmp/sh/setjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/sh/setjmp.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,25 @@ -+.global __setjmp -+.global _setjmp -+.global setjmp -+.type __setjmp, @function -+.type _setjmp, @function -+.type setjmp, @function -+__setjmp: -+_setjmp: -+setjmp: -+ add #52, r4 -+ fmov.s fr15, @-r4 -+ fmov.s fr14, @-r4 -+ fmov.s fr13, @-r4 -+ fmov.s fr12, @-r4 -+ sts.l pr, @-r4 -+ mov.l r15 @-r4 -+ mov.l r14, @-r4 -+ mov.l r13, @-r4 -+ mov.l r12, @-r4 -+ mov.l r11, @-r4 -+ mov.l r10, @-r4 -+ mov.l r9, @-r4 -+ mov.l r8, @-r4 -+ rts -+ mov #0, r0 -diff -Nur musl-0.9.15/src/setjmp/sheb-nofpu/longjmp.sub musl-git/src/setjmp/sheb-nofpu/longjmp.sub ---- musl-0.9.15/src/setjmp/sheb-nofpu/longjmp.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/sheb-nofpu/longjmp.sub 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1 @@ -+../sh-nofpu/longjmp.s -diff -Nur musl-0.9.15/src/setjmp/sheb-nofpu/setjmp.sub musl-git/src/setjmp/sheb-nofpu/setjmp.sub ---- musl-0.9.15/src/setjmp/sheb-nofpu/setjmp.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/sheb-nofpu/setjmp.sub 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1 @@ -+../sh-nofpu/setjmp.s -diff -Nur musl-0.9.15/src/setjmp/sh-nofpu/longjmp.s musl-git/src/setjmp/sh-nofpu/longjmp.s ---- musl-0.9.15/src/setjmp/sh-nofpu/longjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/sh-nofpu/longjmp.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,22 @@ -+.global _longjmp -+.global longjmp -+.type _longjmp, @function -+.type longjmp, @function -+_longjmp: -+longjmp: -+ mov.l @r4+, r8 -+ mov.l @r4+, r9 -+ mov.l @r4+, r10 -+ mov.l @r4+, r11 -+ mov.l @r4+, r12 -+ mov.l @r4+, r13 -+ mov.l @r4+, r14 -+ mov.l @r4+, r15 -+ lds.l @r4+, pr -+ -+ tst r5, r5 -+ movt r0 -+ add r5, r0 -+ -+ rts -+ nop -diff -Nur musl-0.9.15/src/setjmp/sh-nofpu/longjmp.sub musl-git/src/setjmp/sh-nofpu/longjmp.sub ---- musl-0.9.15/src/setjmp/sh-nofpu/longjmp.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/sh-nofpu/longjmp.sub 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1 @@ -+longjmp.s -diff -Nur musl-0.9.15/src/setjmp/sh-nofpu/setjmp.s musl-git/src/setjmp/sh-nofpu/setjmp.s ---- musl-0.9.15/src/setjmp/sh-nofpu/setjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/sh-nofpu/setjmp.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,21 @@ -+.global __setjmp -+.global _setjmp -+.global setjmp -+.type __setjmp, @function -+.type _setjmp, @function -+.type setjmp, @function -+__setjmp: -+_setjmp: -+setjmp: -+ add #36, r4 -+ sts.l pr, @-r4 -+ mov.l r15 @-r4 -+ mov.l r14, @-r4 -+ mov.l r13, @-r4 -+ mov.l r12, @-r4 -+ mov.l r11, @-r4 -+ mov.l r10, @-r4 -+ mov.l r9, @-r4 -+ mov.l r8, @-r4 -+ rts -+ mov #0, r0 -diff -Nur musl-0.9.15/src/setjmp/sh-nofpu/setjmp.sub musl-git/src/setjmp/sh-nofpu/setjmp.sub ---- musl-0.9.15/src/setjmp/sh-nofpu/setjmp.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/sh-nofpu/setjmp.sub 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1 @@ -+setjmp.s -diff -Nur musl-0.9.15/src/setjmp/x32/longjmp.s musl-git/src/setjmp/x32/longjmp.s ---- musl-0.9.15/src/setjmp/x32/longjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/x32/longjmp.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,22 @@ -+/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */ -+.global _longjmp -+.global longjmp -+.type _longjmp,@function -+.type longjmp,@function -+_longjmp: -+longjmp: -+ mov %rsi,%rax /* val will be longjmp return */ -+ test %rax,%rax -+ jnz 1f -+ inc %rax /* if val==0, val=1 per longjmp semantics */ -+1: -+ mov (%rdi),%rbx /* rdi is the jmp_buf, restore regs from it */ -+ mov 8(%rdi),%rbp -+ mov 16(%rdi),%r12 -+ mov 24(%rdi),%r13 -+ mov 32(%rdi),%r14 -+ mov 40(%rdi),%r15 -+ mov 48(%rdi),%rdx /* this ends up being the stack pointer */ -+ mov %rdx,%rsp -+ mov 56(%rdi),%rdx /* this is the instruction pointer */ -+ jmp *%rdx /* goto saved address without altering rsp */ -diff -Nur musl-0.9.15/src/setjmp/x32/setjmp.s musl-git/src/setjmp/x32/setjmp.s ---- musl-0.9.15/src/setjmp/x32/setjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/x32/setjmp.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,22 @@ -+/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */ -+.global __setjmp -+.global _setjmp -+.global setjmp -+.type __setjmp,@function -+.type _setjmp,@function -+.type setjmp,@function -+__setjmp: -+_setjmp: -+setjmp: -+ mov %rbx,(%rdi) /* rdi is jmp_buf, move registers onto it */ -+ mov %rbp,8(%rdi) -+ mov %r12,16(%rdi) -+ mov %r13,24(%rdi) -+ mov %r14,32(%rdi) -+ mov %r15,40(%rdi) -+ lea 8(%rsp),%rdx /* this is our rsp WITHOUT current ret addr */ -+ mov %rdx,48(%rdi) -+ mov (%rsp),%rdx /* save return addr ptr for new rip */ -+ mov %rdx,56(%rdi) -+ xor %rax,%rax /* always return 0 */ -+ ret -diff -Nur musl-0.9.15/src/signal/sh/restore.s musl-git/src/signal/sh/restore.s ---- musl-0.9.15/src/signal/sh/restore.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/signal/sh/restore.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,24 @@ -+.global __restore -+.type __restore, @function -+__restore: -+ mov #119, r3 !__NR_sigreturn -+ trapa #16 -+ -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ -+.global __restore_rt -+.type __restore_rt, @function -+__restore_rt: -+ mov #100, r3 !__NR_rt_sigreturn -+ add #73, r3 -+ trapa #16 -+ -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -diff -Nur musl-0.9.15/src/signal/sh/sigsetjmp.s musl-git/src/signal/sh/sigsetjmp.s ---- musl-0.9.15/src/signal/sh/sigsetjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/signal/sh/sigsetjmp.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,27 @@ -+.global sigsetjmp -+.type sigsetjmp, @function -+sigsetjmp: -+ mov.l r5, @(36,r4) -+ tst r5, r5 -+ bf 2f -+ -+ sts.l pr, @-r15 -+ mov.l r4, @-r15 -+ mov r4, r6 -+ add #40, r6 -+ mov #0, r5 -+ mov #2, r4 -+ mov.l L1, r0 -+ bsrf r0 -+ nop -+1: mov.l @r15+, r4 -+ lds.l @r15+, pr -+ -+2: mov.l L2, r0 -+ braf r0 -+ nop -+3: -+ -+.align 2 -+L1: .long pthread_sigmask@PLT-(1b-.) -+L2: .long setjmp@PLT-(3b-.) -diff -Nur musl-0.9.15/src/signal/sigandset.c musl-git/src/signal/sigandset.c ---- musl-0.9.15/src/signal/sigandset.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/signal/sigandset.c 2014-03-07 14:03:57.000000000 +0100 -@@ -3,7 +3,7 @@ - - #define SST_SIZE (_NSIG/8/sizeof(long)) - --int sigandset(sigset_t *dest, sigset_t *left, sigset_t *right) -+int sigandset(sigset_t *dest, const sigset_t *left, const sigset_t *right) - { - unsigned long i = 0, *d = (void*) dest, *l = (void*) left, *r = (void*) right; - for(; i < SST_SIZE; i++) d[i] = l[i] & r[i]; -diff -Nur musl-0.9.15/src/signal/sigorset.c musl-git/src/signal/sigorset.c ---- musl-0.9.15/src/signal/sigorset.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/signal/sigorset.c 2014-03-07 14:03:57.000000000 +0100 -@@ -3,7 +3,7 @@ - - #define SST_SIZE (_NSIG/8/sizeof(long)) - --int sigorset(sigset_t *dest, sigset_t *left, sigset_t *right) -+int sigorset(sigset_t *dest, const sigset_t *left, const sigset_t *right) - { - unsigned long i = 0, *d = (void*) dest, *l = (void*) left, *r = (void*) right; - for(; i < SST_SIZE; i++) d[i] = l[i] | r[i]; -diff -Nur musl-0.9.15/src/signal/x32/restore.s musl-git/src/signal/x32/restore.s ---- musl-0.9.15/src/signal/x32/restore.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/signal/x32/restore.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,8 @@ -+.global __restore_rt -+.global __restore -+.type __restore_rt,@function -+.type __restore,@function -+__restore_rt: -+__restore: -+ movl $0x40000201, %eax /* SYS_rt_sigreturn */ -+ syscall -diff -Nur musl-0.9.15/src/signal/x32/sigsetjmp.s musl-git/src/signal/x32/sigsetjmp.s ---- musl-0.9.15/src/signal/x32/sigsetjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/signal/x32/sigsetjmp.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,14 @@ -+/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */ -+.global sigsetjmp -+.type sigsetjmp,@function -+sigsetjmp: -+ andl %esi,%esi -+ movq %rsi,64(%rdi) -+ jz 1f -+ pushq %rdi -+ leaq 72(%rdi),%rdx -+ xorl %esi,%esi -+ movl $2,%edi -+ call sigprocmask -+ popq %rdi -+1: jmp setjmp -diff -Nur musl-0.9.15/src/stdio/__fdopen.c musl-git/src/stdio/__fdopen.c ---- musl-0.9.15/src/stdio/__fdopen.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/stdio/__fdopen.c 2014-03-07 14:03:57.000000000 +0100 -@@ -32,7 +32,9 @@ - /* Set append mode on fd if opened for append */ - if (*mode == 'a') { - int flags = __syscall(SYS_fcntl, fd, F_GETFL); -- __syscall(SYS_fcntl, fd, F_SETFL, flags | O_APPEND); -+ if (!(flags & O_APPEND)) -+ __syscall(SYS_fcntl, fd, F_SETFL, flags | O_APPEND); -+ f->flags |= F_APP; - } - - f->fd = fd; -diff -Nur musl-0.9.15/src/stdio/ftell.c musl-git/src/stdio/ftell.c ---- musl-0.9.15/src/stdio/ftell.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/stdio/ftell.c 2014-03-07 14:03:57.000000000 +0100 -@@ -4,7 +4,9 @@ - - off_t __ftello_unlocked(FILE *f) - { -- off_t pos = f->seek(f, 0, SEEK_CUR); -+ off_t pos = f->seek(f, 0, -+ (f->flags & F_APP) && f->wpos > f->wbase -+ ? SEEK_END : SEEK_CUR); - if (pos < 0) return pos; - - /* Adjust for data in buffer. */ -diff -Nur musl-0.9.15/src/stdio/vfscanf.c musl-git/src/stdio/vfscanf.c ---- musl-0.9.15/src/stdio/vfscanf.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/stdio/vfscanf.c 2014-03-07 14:03:57.000000000 +0100 -@@ -328,3 +328,5 @@ - FUNLOCK(f); - return matches; - } -+ -+weak_alias(vfscanf,__isoc99_vfscanf); -diff -Nur musl-0.9.15/src/thread/arm/clone.s musl-git/src/thread/arm/clone.s ---- musl-0.9.15/src/thread/arm/clone.s 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/thread/arm/clone.s 2014-03-07 14:03:57.000000000 +0100 -@@ -1,10 +1,7 @@ - .text - .global __clone --.weak clone - .type __clone,%function --.type clone,%function - __clone: --clone: - stmfd sp!,{r4,r5,r6,r7} - mov r7,#120 - mov r6,r3 -diff -Nur musl-0.9.15/src/thread/cancel_dummy.c musl-git/src/thread/cancel_dummy.c ---- musl-0.9.15/src/thread/cancel_dummy.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/thread/cancel_dummy.c 2014-03-07 14:03:57.000000000 +0100 -@@ -1,6 +1,9 @@ - #include "pthread_impl.h" -+#include "syscall.h" - --static long sccp(long nr, long u, long v, long w, long x, long y, long z) -+static long sccp(syscall_arg_t nr, -+ syscall_arg_t u, syscall_arg_t v, syscall_arg_t w, -+ syscall_arg_t x, syscall_arg_t y, syscall_arg_t z) - { - return (__syscall)(nr, u, v, w, x, y, z); - } -diff -Nur musl-0.9.15/src/thread/cancel_impl.c musl-git/src/thread/cancel_impl.c ---- musl-0.9.15/src/thread/cancel_impl.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/thread/cancel_impl.c 2014-03-07 14:03:57.000000000 +0100 -@@ -1,4 +1,5 @@ - #include "pthread_impl.h" -+#include "syscall.h" - - void __cancel() - { -@@ -8,9 +9,13 @@ - pthread_exit(PTHREAD_CANCELED); - } - --long __syscall_cp_asm(volatile void *, long, long, long, long, long, long, long); -+long __syscall_cp_asm(volatile void *, syscall_arg_t, -+ syscall_arg_t, syscall_arg_t, syscall_arg_t, -+ syscall_arg_t, syscall_arg_t, syscall_arg_t); - --long (__syscall_cp)(long nr, long u, long v, long w, long x, long y, long z) -+long (__syscall_cp)(syscall_arg_t nr, -+ syscall_arg_t u, syscall_arg_t v, syscall_arg_t w, -+ syscall_arg_t x, syscall_arg_t y, syscall_arg_t z) - { - pthread_t self; - long r; -diff -Nur musl-0.9.15/src/thread/clone.c musl-git/src/thread/clone.c ---- musl-0.9.15/src/thread/clone.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/thread/clone.c 2014-03-07 14:03:57.000000000 +0100 -@@ -1,10 +1,7 @@ - #include --#include "libc.h" -+#include "pthread_impl.h" - - int __clone(int (*func)(void *), void *stack, int flags, void *arg, ...) - { -- errno = ENOSYS; -- return -1; -+ return -ENOSYS; - } -- --weak_alias(__clone, clone); -diff -Nur musl-0.9.15/src/thread/i386/clone.s musl-git/src/thread/i386/clone.s ---- musl-0.9.15/src/thread/i386/clone.s 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/thread/i386/clone.s 2014-03-07 14:03:57.000000000 +0100 -@@ -1,10 +1,7 @@ - .text - .global __clone --.weak clone - .type __clone,@function --.type clone,@function - __clone: --clone: - push %ebp - mov %esp,%ebp - push %ebx -diff -Nur musl-0.9.15/src/thread/microblaze/clone.s musl-git/src/thread/microblaze/clone.s ---- musl-0.9.15/src/thread/microblaze/clone.s 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/thread/microblaze/clone.s 2014-03-07 14:03:57.000000000 +0100 -@@ -1,14 +1,11 @@ - .global __clone --.weak clone - .type __clone,@function --.type clone,@function - - # r5, r6, r7, r8, r9, r10, stack - # fn, st, fl, ar, pt, tl, ct - # fl, st, __, pt, ct, tl - - __clone: --clone: - andi r6, r6, -16 - addi r6, r6, -16 - swi r5, r6, 0 -@@ -23,7 +20,7 @@ - beqi r3, 1f - rtsd r15, 8 - nop -- -+ - 1: lwi r3, r1, 0 - lwi r5, r1, 4 - brald r15, r3 -diff -Nur musl-0.9.15/src/thread/sh/clone.s musl-git/src/thread/sh/clone.s ---- musl-0.9.15/src/thread/sh/clone.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/thread/sh/clone.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,47 @@ -+.text -+.global __clone -+.type __clone, @function -+__clone: -+! incoming: fn stack flags arg ptid tls ctid -+! r4 r5 r6 r7 @r15 @(4,r15) @(8,r15) -+ -+ mov #-16, r0 -+ and r0, r5 -+ -+ mov r4, r1 ! r1 = fn -+ mov r7, r2 ! r2 = arg -+ -+ mov #120, r3 ! r3 = __NR_clone -+ mov r6, r4 ! r4 = flags -+ !mov r5, r5 ! r5 = stack -+ mov.l @r15, r6 ! r6 = ptid -+ mov.l @(8,r15), r7 ! r7 = ctid -+ mov.l @(4,r15), r0 ! r0 = tls -+ trapa #21 -+ -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ -+ cmp/eq #0, r0 -+ bt 1f -+ -+ ! we are the parent, return -+ rts -+ nop -+ -+1: ! we are the child, call fn(arg) -+ jsr @r1 -+ mov r2, r4 -+ -+ mov #1, r3 ! __NR_exit -+ mov r0, r4 -+ trapa #17 -+ -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -diff -Nur musl-0.9.15/src/thread/sh/__set_thread_area.s musl-git/src/thread/sh/__set_thread_area.s ---- musl-0.9.15/src/thread/sh/__set_thread_area.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/thread/sh/__set_thread_area.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,5 @@ -+.global __set_thread_area -+.type __set_thread_area, @function -+__set_thread_area: -+ rts -+ ldc r4, gbr -diff -Nur musl-0.9.15/src/thread/sh/syscall_cp.s musl-git/src/thread/sh/syscall_cp.s ---- musl-0.9.15/src/thread/sh/syscall_cp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/thread/sh/syscall_cp.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,39 @@ -+.text -+.global __syscall_cp_asm -+.type __syscall_cp_asm, @function -+__syscall_cp_asm: -+ -+.global __cp_begin -+__cp_begin: -+ mov.l @r4, r4 -+ tst r4, r4 -+ bt 2f -+ -+ mov.l L1, r0 -+ braf r0 -+ nop -+1: -+ -+.align 2 -+L1: .long __cancel@PLT-(1b-.) -+ -+2: mov r5, r3 -+ mov r6, r4 -+ mov r7, r5 -+ mov.l @r15, r6 -+ mov.l @(4,r15), r7 -+ mov.l @(8,r15), r0 -+ mov.l @(12,r15), r1 -+ trapa #22 -+ -+.global __cp_end -+__cp_end: -+ ! work around hardware bug -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ -+ rts -+ nop -diff -Nur musl-0.9.15/src/thread/sh/__unmapself.s musl-git/src/thread/sh/__unmapself.s ---- musl-0.9.15/src/thread/sh/__unmapself.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/thread/sh/__unmapself.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,22 @@ -+.text -+.global __unmapself -+.type __unmapself, @function -+__unmapself: -+ mov #91, r3 ! SYS_munmap -+ trapa #18 -+ -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ -+ mov #1, r3 ! SYS_exit -+ mov #0, r4 -+ trapa #17 -+ -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -diff -Nur musl-0.9.15/src/thread/__wait.c musl-git/src/thread/__wait.c ---- musl-0.9.15/src/thread/__wait.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/thread/__wait.c 2014-03-07 14:03:57.000000000 +0100 -@@ -10,6 +10,6 @@ - } - if (waiters) a_inc(waiters); - while (*addr==val) -- __syscall(SYS_futex, (long)addr, FUTEX_WAIT|priv, val, 0); -+ __syscall(SYS_futex, addr, FUTEX_WAIT|priv, val, 0); - if (waiters) a_dec(waiters); - } -diff -Nur musl-0.9.15/src/thread/x32/clone.s musl-git/src/thread/x32/clone.s ---- musl-0.9.15/src/thread/x32/clone.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/thread/x32/clone.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,25 @@ -+.text -+.global __clone -+.type __clone,@function -+__clone: -+ movl $0x40000038,%eax /* SYS_clone */ -+ mov %rdi,%r11 -+ mov %rdx,%rdi -+ mov %r8,%rdx -+ mov %r9,%r8 -+ mov 8(%rsp),%r10 -+ mov %r11,%r9 -+ and $-16,%rsi -+ sub $8,%rsi -+ mov %rcx,(%rsi) -+ syscall -+ test %eax,%eax -+ jnz 1f -+ xor %ebp,%ebp -+ pop %rdi -+ call *%r9 -+ mov %eax,%edi -+ movl $0x4000003c,%eax /* SYS_exit */ -+ syscall -+ hlt -+1: ret -diff -Nur musl-0.9.15/src/thread/x32/__set_thread_area.s musl-git/src/thread/x32/__set_thread_area.s ---- musl-0.9.15/src/thread/x32/__set_thread_area.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/thread/x32/__set_thread_area.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,10 @@ -+/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */ -+.text -+.global __set_thread_area -+.type __set_thread_area,@function -+__set_thread_area: -+ mov %rdi,%rsi /* shift for syscall */ -+ movl $0x1002,%edi /* SET_FS register */ -+ movl $0x4000009e,%eax /* set fs segment to */ -+ syscall /* arch_prctl(SET_FS, arg)*/ -+ ret -diff -Nur musl-0.9.15/src/thread/x32/syscall_cp.s musl-git/src/thread/x32/syscall_cp.s ---- musl-0.9.15/src/thread/x32/syscall_cp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/thread/x32/syscall_cp.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,23 @@ -+.text -+.global __syscall_cp_internal -+.type __syscall_cp_internal,@function -+__syscall_cp_internal: -+ -+.global __cp_begin -+__cp_begin: -+ mov (%rdi),%eax -+ test %eax,%eax -+ jnz __cancel -+ mov %rdi,%r11 -+ mov %rsi,%rax -+ mov %rdx,%rdi -+ mov %rcx,%rsi -+ mov %r8,%rdx -+ mov %r9,%r10 -+ mov 8(%rsp),%r8 -+ mov 16(%rsp),%r9 -+ mov %r11,8(%rsp) -+ syscall -+.global __cp_end -+__cp_end: -+ ret -diff -Nur musl-0.9.15/src/thread/x32/__unmapself.s musl-git/src/thread/x32/__unmapself.s ---- musl-0.9.15/src/thread/x32/__unmapself.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/thread/x32/__unmapself.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,10 @@ -+/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */ -+.text -+.global __unmapself -+.type __unmapself,@function -+__unmapself: -+ movl $0x4000000b,%eax /* SYS_munmap */ -+ syscall /* munmap(arg2,arg3) */ -+ xor %rdi,%rdi /* exit() args: always return success */ -+ movl $0x4000003c,%eax /* SYS_exit */ -+ syscall /* exit(0) */ -diff -Nur musl-0.9.15/src/thread/x86_64/clone.s musl-git/src/thread/x86_64/clone.s ---- musl-0.9.15/src/thread/x86_64/clone.s 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/thread/x86_64/clone.s 2014-03-07 14:03:57.000000000 +0100 -@@ -1,10 +1,7 @@ - .text - .global __clone --.weak clone - .type __clone,@function --.type clone,@function - __clone: --clone: - xor %eax,%eax - mov $56,%al - mov %rdi,%r11 -diff -Nur musl-0.9.15/src/time/timer_delete.c musl-git/src/time/timer_delete.c ---- musl-0.9.15/src/time/timer_delete.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/time/timer_delete.c 2014-03-07 14:03:57.000000000 +0100 -@@ -10,5 +10,5 @@ - __wake(&td->timer_id, 1, 1); - return 0; - } -- return __syscall(SYS_timer_delete, (long)t); -+ return __syscall(SYS_timer_delete, t); - } -diff -Nur musl-0.9.15/src/time/timer_getoverrun.c musl-git/src/time/timer_getoverrun.c ---- musl-0.9.15/src/time/timer_getoverrun.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/time/timer_getoverrun.c 2014-03-07 14:03:57.000000000 +0100 -@@ -8,5 +8,5 @@ - pthread_t td = (void *)((uintptr_t)t << 1); - t = (void *)(uintptr_t)(td->timer_id & INT_MAX); - } -- return syscall(SYS_timer_getoverrun, (long)t); -+ return syscall(SYS_timer_getoverrun, t); - } -diff -Nur musl-0.9.15/src/time/timer_gettime.c musl-git/src/time/timer_gettime.c ---- musl-0.9.15/src/time/timer_gettime.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/time/timer_gettime.c 2014-03-07 14:03:57.000000000 +0100 -@@ -8,5 +8,5 @@ - pthread_t td = (void *)((uintptr_t)t << 1); - t = (void *)(uintptr_t)(td->timer_id & INT_MAX); - } -- return syscall(SYS_timer_gettime, (long)t, val); -+ return syscall(SYS_timer_gettime, t, val); - } -diff -Nur musl-0.9.15/src/time/timer_settime.c musl-git/src/time/timer_settime.c ---- musl-0.9.15/src/time/timer_settime.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/time/timer_settime.c 2014-03-07 14:03:57.000000000 +0100 -@@ -8,5 +8,5 @@ - pthread_t td = (void *)((uintptr_t)t << 1); - t = (void *)(uintptr_t)(td->timer_id & INT_MAX); - } -- return syscall(SYS_timer_settime, (long)t, flags, val, old); -+ return syscall(SYS_timer_settime, t, flags, val, old); - } -diff -Nur musl-0.9.15/src/unistd/sh/pipe.s musl-git/src/unistd/sh/pipe.s ---- musl-0.9.15/src/unistd/sh/pipe.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/unistd/sh/pipe.s 2014-03-07 14:03:57.000000000 +0100 -@@ -0,0 +1,27 @@ -+.global pipe -+.type pipe, @function -+pipe: -+ mov #42, r3 -+ trapa #17 -+ -+ ! work around hardware bug -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ -+ cmp/pz r0 -+ bt 1f -+ -+ mov.l L1, r1 -+ braf r1 -+ mov r0, r4 -+ -+1: mov.l r0, @(0,r4) -+ mov.l r1, @(4,r4) -+ rts -+ mov #0, r0 -+ -+.align 2 -+L1: .long __syscall_ret@PLT-(1b-.) -diff -Nur musl-0.9.15/tools/install.sh musl-git/tools/install.sh ---- musl-0.9.15/tools/install.sh 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/tools/install.sh 2014-03-07 14:03:57.000000000 +0100 -@@ -51,6 +51,7 @@ - ln -s "$1" "$tmp" - else - cat < "$1" > "$tmp" -+chmod "$mode" "$tmp" - fi - - mv -f "$tmp" "$2" -@@ -60,6 +61,4 @@ - exit 1 - } - --test "$symlink" || chmod "$mode" "$2" -- - exit 0 diff --git a/toolchain/musl/patches/musl-git-20140310.patch b/toolchain/musl/patches/musl-git-20140310.patch new file mode 100644 index 000000000..29b58b843 --- /dev/null +++ b/toolchain/musl/patches/musl-git-20140310.patch @@ -0,0 +1,8432 @@ +diff -Nur musl-0.9.15/arch/arm/bits/shm.h musl-git/arch/arm/bits/shm.h +--- musl-0.9.15/arch/arm/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/arm/bits/shm.h 2014-03-10 16:52:06.000000000 +0100 +@@ -16,3 +16,14 @@ + unsigned long __pad1; + unsigned long __pad2; + }; ++ ++struct shminfo { ++ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; ++}; ++ ++struct shm_info { ++ int __used_ids; ++ unsigned long shm_tot, shm_rss, shm_swp; ++ unsigned long __swap_attempts, __swap_successes; ++}; ++ +diff -Nur musl-0.9.15/arch/arm/bits/termios.h musl-git/arch/arm/bits/termios.h +--- musl-0.9.15/arch/arm/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/arm/bits/termios.h 2014-03-10 16:52:06.000000000 +0100 +@@ -42,6 +42,7 @@ + #define IXANY 0004000 + #define IXOFF 0010000 + #define IMAXBEL 0020000 ++#define IUTF8 0040000 + + #define OPOST 0000001 + #define OLCUC 0000002 +@@ -75,9 +76,6 @@ + #define VT0 0000000 + #define VT1 0040000 + +-/* ?? */ +-#define XTABS 0014000 +- + #define B0 0000000 + #define B50 0000001 + #define B75 0000002 +@@ -125,8 +123,6 @@ + #define HUPCL 0002000 + #define CLOCAL 0004000 + +-#define CRTSCTS 020000000000 +- + #define ISIG 0000001 + #define ICANON 0000002 + #define ECHO 0000010 +@@ -137,14 +133,11 @@ + #define TOSTOP 0000400 + #define IEXTEN 0100000 + +-/* Extensions? */ +-#define CBAUDEX 0010000 + #define ECHOCTL 0001000 + #define ECHOPRT 0002000 + #define ECHOKE 0004000 + #define FLUSHO 0010000 + #define PENDIN 0040000 +-#define EXTPROC 0200000 + + #define TCOOFF 0 + #define TCOON 1 +@@ -158,3 +151,10 @@ + #define TCSANOW 0 + #define TCSADRAIN 1 + #define TCSAFLUSH 2 ++ ++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++#define CBAUDEX 0010000 ++#define CRTSCTS 020000000000 ++#define EXTPROC 0200000 ++#define XTABS 0014000 ++#endif +diff -Nur musl-0.9.15/arch/arm/syscall_arch.h musl-git/arch/arm/syscall_arch.h +--- musl-0.9.15/arch/arm/syscall_arch.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/arm/syscall_arch.h 2014-03-10 16:52:06.000000000 +0100 +@@ -3,6 +3,8 @@ + ((union { long long ll; long l[2]; }){ .ll = x }).l[1] + #define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x)) + ++long (__syscall)(long, ...); ++ + #ifndef __clang__ + + #define __asm_syscall(...) do { \ +diff -Nur musl-0.9.15/arch/i386/bits/shm.h musl-git/arch/i386/bits/shm.h +--- musl-0.9.15/arch/i386/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/i386/bits/shm.h 2014-03-10 16:52:06.000000000 +0100 +@@ -16,3 +16,14 @@ + unsigned long __pad1; + unsigned long __pad2; + }; ++ ++struct shminfo { ++ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; ++}; ++ ++struct shm_info { ++ int __used_ids; ++ unsigned long shm_tot, shm_rss, shm_swp; ++ unsigned long __swap_attempts, __swap_successes; ++}; ++ +diff -Nur musl-0.9.15/arch/i386/bits/termios.h musl-git/arch/i386/bits/termios.h +--- musl-0.9.15/arch/i386/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/i386/bits/termios.h 2014-03-10 16:52:06.000000000 +0100 +@@ -42,6 +42,7 @@ + #define IXANY 0004000 + #define IXOFF 0010000 + #define IMAXBEL 0020000 ++#define IUTF8 0040000 + + #define OPOST 0000001 + #define OLCUC 0000002 +@@ -75,9 +76,6 @@ + #define VT0 0000000 + #define VT1 0040000 + +-/* ?? */ +-#define XTABS 0014000 +- + #define B0 0000000 + #define B50 0000001 + #define B75 0000002 +@@ -125,8 +123,6 @@ + #define HUPCL 0002000 + #define CLOCAL 0004000 + +-#define CRTSCTS 020000000000 +- + #define ISIG 0000001 + #define ICANON 0000002 + #define ECHO 0000010 +@@ -137,14 +133,11 @@ + #define TOSTOP 0000400 + #define IEXTEN 0100000 + +-/* Extensions? */ +-#define CBAUDEX 0010000 + #define ECHOCTL 0001000 + #define ECHOPRT 0002000 + #define ECHOKE 0004000 + #define FLUSHO 0010000 + #define PENDIN 0040000 +-#define EXTPROC 0200000 + + #define TCOOFF 0 + #define TCOON 1 +@@ -158,3 +151,10 @@ + #define TCSANOW 0 + #define TCSADRAIN 1 + #define TCSAFLUSH 2 ++ ++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++#define CBAUDEX 0010000 ++#define CRTSCTS 020000000000 ++#define EXTPROC 0200000 ++#define XTABS 0014000 ++#endif +diff -Nur musl-0.9.15/arch/microblaze/bits/shm.h musl-git/arch/microblaze/bits/shm.h +--- musl-0.9.15/arch/microblaze/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/microblaze/bits/shm.h 2014-03-10 16:52:06.000000000 +0100 +@@ -16,3 +16,14 @@ + unsigned long __pad1; + unsigned long __pad2; + }; ++ ++struct shminfo { ++ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; ++}; ++ ++struct shm_info { ++ int __used_ids; ++ unsigned long shm_tot, shm_rss, shm_swp; ++ unsigned long __swap_attempts, __swap_successes; ++}; ++ +diff -Nur musl-0.9.15/arch/microblaze/bits/termios.h musl-git/arch/microblaze/bits/termios.h +--- musl-0.9.15/arch/microblaze/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/microblaze/bits/termios.h 2014-03-10 16:52:06.000000000 +0100 +@@ -42,6 +42,7 @@ + #define IXANY 0004000 + #define IXOFF 0010000 + #define IMAXBEL 0020000 ++#define IUTF8 0040000 + + #define OPOST 0000001 + #define OLCUC 0000002 +@@ -75,9 +76,6 @@ + #define VT0 0000000 + #define VT1 0040000 + +-/* ?? */ +-#define XTABS 0014000 +- + #define B0 0000000 + #define B50 0000001 + #define B75 0000002 +@@ -125,8 +123,6 @@ + #define HUPCL 0002000 + #define CLOCAL 0004000 + +-#define CRTSCTS 020000000000 +- + #define ISIG 0000001 + #define ICANON 0000002 + #define ECHO 0000010 +@@ -137,14 +133,11 @@ + #define TOSTOP 0000400 + #define IEXTEN 0100000 + +-/* Extensions? */ +-#define CBAUDEX 0010000 + #define ECHOCTL 0001000 + #define ECHOPRT 0002000 + #define ECHOKE 0004000 + #define FLUSHO 0010000 + #define PENDIN 0040000 +-#define EXTPROC 0200000 + + #define TCOOFF 0 + #define TCOON 1 +@@ -158,3 +151,10 @@ + #define TCSANOW 0 + #define TCSADRAIN 1 + #define TCSAFLUSH 2 ++ ++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++#define CBAUDEX 0010000 ++#define CRTSCTS 020000000000 ++#define EXTPROC 0200000 ++#define XTABS 0014000 ++#endif +diff -Nur musl-0.9.15/arch/microblaze/syscall_arch.h musl-git/arch/microblaze/syscall_arch.h +--- musl-0.9.15/arch/microblaze/syscall_arch.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/microblaze/syscall_arch.h 2014-03-10 16:52:06.000000000 +0100 +@@ -3,6 +3,8 @@ + ((union { long long ll; long l[2]; }){ .ll = x }).l[1] + #define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x)) + ++long (__syscall)(long, ...); ++ + #ifndef __clang__ + + static __inline long __syscall0(long n) +diff -Nur musl-0.9.15/arch/mips/bits/fenv.h musl-git/arch/mips/bits/fenv.h +--- musl-0.9.15/arch/mips/bits/fenv.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/mips/bits/fenv.h 2014-03-10 16:52:06.000000000 +0100 +@@ -1,3 +1,7 @@ ++#ifdef __mips_soft_float ++#define FE_ALL_EXCEPT 0 ++#define FE_TONEAREST 0 ++#else + #define FE_INEXACT 4 + #define FE_UNDERFLOW 8 + #define FE_OVERFLOW 16 +@@ -10,6 +14,7 @@ + #define FE_TOWARDZERO 1 + #define FE_UPWARD 2 + #define FE_DOWNWARD 3 ++#endif + + typedef unsigned short fexcept_t; + +diff -Nur musl-0.9.15/arch/mips/bits/shm.h musl-git/arch/mips/bits/shm.h +--- musl-0.9.15/arch/mips/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/mips/bits/shm.h 2014-03-10 16:52:06.000000000 +0100 +@@ -13,3 +13,14 @@ + unsigned long __pad1; + unsigned long __pad2; + }; ++ ++struct shminfo { ++ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; ++}; ++ ++struct shm_info { ++ int __used_ids; ++ unsigned long shm_tot, shm_rss, shm_swp; ++ unsigned long __swap_attempts, __swap_successes; ++}; ++ +diff -Nur musl-0.9.15/arch/mips/bits/termios.h musl-git/arch/mips/bits/termios.h +--- musl-0.9.15/arch/mips/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/mips/bits/termios.h 2014-03-10 16:52:06.000000000 +0100 +@@ -77,9 +77,6 @@ + #define VT0 0000000 + #define VT1 0040000 + +-/* ?? */ +-#define XTABS 0014000 +- + #define B0 0000000 + #define B50 0000001 + #define B75 0000002 +@@ -129,12 +126,6 @@ + #define PARODD 0001000 + #define HUPCL 0002000 + #define CLOCAL 0004000 +-#define CBAUDEX 0010000 +- +-#define CIBAUD 002003600000 +-#define CMSPAR 010000000000 +-#define CRTSCTS 020000000000 +-#define IBSHIFT 16 + + #define ISIG 0000001 + #define ICANON 0000002 +@@ -152,9 +143,6 @@ + #define PENDIN 0040000 + #define TOSTOP 0100000 + #define ITOSTOP 0100000 +-#define EXTPROC 0200000 +- +-#define TIOCSER_TEMT 1 + + #define TCOOFF 0 + #define TCOON 1 +@@ -168,3 +156,14 @@ + #define TCSANOW 0 + #define TCSADRAIN 1 + #define TCSAFLUSH 2 ++ ++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++#define CBAUDEX 0010000 ++#define CIBAUD 002003600000 ++#define IBSHIFT 16 ++#define CMSPAR 010000000000 ++#define CRTSCTS 020000000000 ++#define EXTPROC 0200000 ++#define XTABS 0014000 ++#define TIOCSER_TEMT 1 ++#endif +diff -Nur musl-0.9.15/arch/mips/reloc.h musl-git/arch/mips/reloc.h +--- musl-0.9.15/arch/mips/reloc.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/mips/reloc.h 2014-03-10 16:52:06.000000000 +0100 +@@ -8,7 +8,13 @@ + #define ENDIAN_SUFFIX "" + #endif + +-#define LDSO_ARCH "mips" ENDIAN_SUFFIX ++#ifdef __mips_soft_float ++#define FP_SUFFIX "-sf" ++#else ++#define FP_SUFFIX "" ++#endif ++ ++#define LDSO_ARCH "mips" ENDIAN_SUFFIX FP_SUFFIX + + #define IS_COPY(x) ((x)==R_MIPS_COPY) + #define IS_PLT(x) 1 +diff -Nur musl-0.9.15/arch/mips/syscall_arch.h musl-git/arch/mips/syscall_arch.h +--- musl-0.9.15/arch/mips/syscall_arch.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/mips/syscall_arch.h 2014-03-10 16:52:06.000000000 +0100 +@@ -3,6 +3,8 @@ + ((union { long long ll; long l[2]; }){ .ll = x }).l[1] + #define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x)) + ++long (__syscall)(long, ...); ++ + #ifndef __clang__ + + #define __asm_syscall(...) do { \ +diff -Nur musl-0.9.15/arch/powerpc/bits/shm.h musl-git/arch/powerpc/bits/shm.h +--- musl-0.9.15/arch/powerpc/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/powerpc/bits/shm.h 2014-03-10 16:52:06.000000000 +0100 +@@ -16,3 +16,14 @@ + unsigned long __pad1; + unsigned long __pad2; + }; ++ ++struct shminfo { ++ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; ++}; ++ ++struct shm_info { ++ int __used_ids; ++ unsigned long shm_tot, shm_rss, shm_swp; ++ unsigned long __swap_attempts, __swap_successes; ++}; ++ +diff -Nur musl-0.9.15/arch/powerpc/bits/termios.h musl-git/arch/powerpc/bits/termios.h +--- musl-0.9.15/arch/powerpc/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/powerpc/bits/termios.h 2014-03-10 16:52:06.000000000 +0100 +@@ -66,7 +66,6 @@ + #define TAB1 00002000 + #define TAB2 00004000 + #define TAB3 00006000 +-#define XTABS 00006000 + #define CRDLY 00030000 + #define CR0 00000000 + #define CR1 00010000 +@@ -101,7 +100,6 @@ + #define B38400 0000017 + #define EXTA B19200 + #define EXTB B38400 +-#define CBAUDEX 0000000 + #define B57600 00020 + #define B115200 00021 + #define B230400 00022 +@@ -120,9 +118,6 @@ + #define B4000000 00036 + #define BOTHER 00037 + +-#define CIBAUD 077600000 +-#define IBSHIFT 16 +- + #define CSIZE 00001400 + #define CS5 00000000 + #define CS6 00000400 +@@ -136,8 +131,6 @@ + #define HUPCL 00040000 + + #define CLOCAL 00100000 +-#define CMSPAR 010000000000 +-#define CRTSCTS 020000000000 + + #define ISIG 0x00000080 + #define ICANON 0x00000100 +@@ -154,7 +147,6 @@ + #define FLUSHO 0x00800000 + #define PENDIN 0x20000000 + #define IEXTEN 0x00000400 +-#define EXTPROC 0x10000000 + + #define TCOOFF 0 + #define TCOON 1 +@@ -168,3 +160,13 @@ + #define TCSANOW 0 + #define TCSADRAIN 1 + #define TCSAFLUSH 2 ++ ++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++#define CBAUDEX 0000000 ++#define CIBAUD 077600000 ++#define IBSHIFT 16 ++#define CMSPAR 010000000000 ++#define CRTSCTS 020000000000 ++#define EXTPROC 0x10000000 ++#define XTABS 00006000 ++#endif +diff -Nur musl-0.9.15/arch/sh/atomic.h musl-git/arch/sh/atomic.h +--- musl-0.9.15/arch/sh/atomic.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/atomic.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,87 @@ ++#ifndef _INTERNAL_ATOMIC_H ++#define _INTERNAL_ATOMIC_H ++ ++#include ++ ++static inline int a_ctz_l(unsigned long x) ++{ ++ static const char debruijn32[32] = { ++ 0, 1, 23, 2, 29, 24, 19, 3, 30, 27, 25, 11, 20, 8, 4, 13, ++ 31, 22, 28, 18, 26, 10, 7, 12, 21, 17, 9, 6, 16, 5, 15, 14 ++ }; ++ return debruijn32[(x&-x)*0x076be629 >> 27]; ++} ++ ++static inline int a_ctz_64(uint64_t x) ++{ ++ uint32_t y = x; ++ if (!y) { ++ y = x>>32; ++ return 32 + a_ctz_l(y); ++ } ++ return a_ctz_l(y); ++} ++ ++int __sh_cas(volatile int *, int, int); ++int __sh_swap(volatile int *, int); ++int __sh_fetch_add(volatile int *, int); ++void __sh_store(volatile int *, int); ++void __sh_and(volatile int *, int); ++void __sh_or(volatile int *, int); ++ ++#define a_cas(p,t,s) __sh_cas(p,t,s) ++#define a_swap(x,v) __sh_swap(x,v) ++#define a_fetch_add(x,v) __sh_fetch_add(x, v) ++#define a_store(x,v) __sh_store(x, v) ++#define a_and(x,v) __sh_and(x, v) ++#define a_or(x,v) __sh_or(x, v) ++ ++static inline void *a_cas_p(volatile void *p, void *t, void *s) ++{ ++ return (void *)a_cas(p, (int)t, (int)s); ++} ++ ++static inline long a_cas_l(volatile void *p, long t, long s) ++{ ++ return a_cas(p, t, s); ++} ++ ++static inline void a_inc(volatile int *x) ++{ ++ a_fetch_add(x, 1); ++} ++ ++static inline void a_dec(volatile int *x) ++{ ++ a_fetch_add(x, -1); ++} ++ ++static inline void a_spin() ++{ ++} ++ ++static inline void a_crash() ++{ ++ *(volatile char *)0=0; ++} ++ ++static inline void a_or_l(volatile void *p, long v) ++{ ++ a_or(p, v); ++} ++ ++static inline void a_and_64(volatile uint64_t *p, uint64_t v) ++{ ++ union { uint64_t v; uint32_t r[2]; } u = { v }; ++ a_and((int *)p, u.r[0]); ++ a_and((int *)p+1, u.r[1]); ++} ++ ++static inline void a_or_64(volatile uint64_t *p, uint64_t v) ++{ ++ union { uint64_t v; uint32_t r[2]; } u = { v }; ++ a_or((int *)p, u.r[0]); ++ a_or((int *)p+1, u.r[1]); ++} ++ ++#endif +diff -Nur musl-0.9.15/arch/sh/bits/alltypes.h.in musl-git/arch/sh/bits/alltypes.h.in +--- musl-0.9.15/arch/sh/bits/alltypes.h.in 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/alltypes.h.in 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,23 @@ ++#define _Addr int ++#define _Int64 long long ++#define _Reg int ++ ++TYPEDEF __builtin_va_list va_list; ++TYPEDEF __builtin_va_list __isoc_va_list; ++ ++#ifndef __cplusplus ++TYPEDEF long wchar_t; ++#endif ++TYPEDEF unsigned wint_t; ++ ++TYPEDEF float float_t; ++TYPEDEF double double_t; ++ ++TYPEDEF long time_t; ++TYPEDEF long suseconds_t; ++ ++TYPEDEF struct { union { int __i[9]; unsigned __s[9]; } __u; } pthread_attr_t; ++TYPEDEF struct { union { int __i[6]; void *__p[6]; } __u; } pthread_mutex_t; ++TYPEDEF struct { union { int __i[12]; void *__p[12]; } __u; } pthread_cond_t; ++TYPEDEF struct { union { int __i[8]; void *__p[8]; } __u; } pthread_rwlock_t; ++TYPEDEF struct { union { int __i[5]; void *__p[5]; } __u; } pthread_barrier_t; +diff -Nur musl-0.9.15/arch/sh/bits/endian.h musl-git/arch/sh/bits/endian.h +--- musl-0.9.15/arch/sh/bits/endian.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/endian.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,5 @@ ++#if __BIG_ENDIAN__ ++#define __BYTE_ORDER __BIG_ENDIAN ++#else ++#define __BYTE_ORDER __LITTLE_ENDIAN ++#endif +diff -Nur musl-0.9.15/arch/sh/bits/errno.h musl-git/arch/sh/bits/errno.h +--- musl-0.9.15/arch/sh/bits/errno.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/errno.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,134 @@ ++#define EPERM 1 ++#define ENOENT 2 ++#define ESRCH 3 ++#define EINTR 4 ++#define EIO 5 ++#define ENXIO 6 ++#define E2BIG 7 ++#define ENOEXEC 8 ++#define EBADF 9 ++#define ECHILD 10 ++#define EAGAIN 11 ++#define ENOMEM 12 ++#define EACCES 13 ++#define EFAULT 14 ++#define ENOTBLK 15 ++#define EBUSY 16 ++#define EEXIST 17 ++#define EXDEV 18 ++#define ENODEV 19 ++#define ENOTDIR 20 ++#define EISDIR 21 ++#define EINVAL 22 ++#define ENFILE 23 ++#define EMFILE 24 ++#define ENOTTY 25 ++#define ETXTBSY 26 ++#define EFBIG 27 ++#define ENOSPC 28 ++#define ESPIPE 29 ++#define EROFS 30 ++#define EMLINK 31 ++#define EPIPE 32 ++#define EDOM 33 ++#define ERANGE 34 ++#define EDEADLK 35 ++#define ENAMETOOLONG 36 ++#define ENOLCK 37 ++#define ENOSYS 38 ++#define ENOTEMPTY 39 ++#define ELOOP 40 ++#define EWOULDBLOCK EAGAIN ++#define ENOMSG 42 ++#define EIDRM 43 ++#define ECHRNG 44 ++#define EL2NSYNC 45 ++#define EL3HLT 46 ++#define EL3RST 47 ++#define ELNRNG 48 ++#define EUNATCH 49 ++#define ENOCSI 50 ++#define EL2HLT 51 ++#define EBADE 52 ++#define EBADR 53 ++#define EXFULL 54 ++#define ENOANO 55 ++#define EBADRQC 56 ++#define EBADSLT 57 ++#define EDEADLOCK EDEADLK ++#define EBFONT 59 ++#define ENOSTR 60 ++#define ENODATA 61 ++#define ETIME 62 ++#define ENOSR 63 ++#define ENONET 64 ++#define ENOPKG 65 ++#define EREMOTE 66 ++#define ENOLINK 67 ++#define EADV 68 ++#define ESRMNT 69 ++#define ECOMM 70 ++#define EPROTO 71 ++#define EMULTIHOP 72 ++#define EDOTDOT 73 ++#define EBADMSG 74 ++#define EOVERFLOW 75 ++#define ENOTUNIQ 76 ++#define EBADFD 77 ++#define EREMCHG 78 ++#define ELIBACC 79 ++#define ELIBBAD 80 ++#define ELIBSCN 81 ++#define ELIBMAX 82 ++#define ELIBEXEC 83 ++#define EILSEQ 84 ++#define ERESTART 85 ++#define ESTRPIPE 86 ++#define EUSERS 87 ++#define ENOTSOCK 88 ++#define EDESTADDRREQ 89 ++#define EMSGSIZE 90 ++#define EPROTOTYPE 91 ++#define ENOPROTOOPT 92 ++#define EPROTONOSUPPORT 93 ++#define ESOCKTNOSUPPORT 94 ++#define EOPNOTSUPP 95 ++#define ENOTSUP EOPNOTSUPP ++#define EPFNOSUPPORT 96 ++#define EAFNOSUPPORT 97 ++#define EADDRINUSE 98 ++#define EADDRNOTAVAIL 99 ++#define ENETDOWN 100 ++#define ENETUNREACH 101 ++#define ENETRESET 102 ++#define ECONNABORTED 103 ++#define ECONNRESET 104 ++#define ENOBUFS 105 ++#define EISCONN 106 ++#define ENOTCONN 107 ++#define ESHUTDOWN 108 ++#define ETOOMANYREFS 109 ++#define ETIMEDOUT 110 ++#define ECONNREFUSED 111 ++#define EHOSTDOWN 112 ++#define EHOSTUNREACH 113 ++#define EALREADY 114 ++#define EINPROGRESS 115 ++#define ESTALE 116 ++#define EUCLEAN 117 ++#define ENOTNAM 118 ++#define ENAVAIL 119 ++#define EISNAM 120 ++#define EREMOTEIO 121 ++#define EDQUOT 122 ++#define ENOMEDIUM 123 ++#define EMEDIUMTYPE 124 ++#define ECANCELED 125 ++#define ENOKEY 126 ++#define EKEYEXPIRED 127 ++#define EKEYREVOKED 128 ++#define EKEYREJECTED 129 ++#define EOWNERDEAD 130 ++#define ENOTRECOVERABLE 131 ++#define ERFKILL 132 ++#define EHWPOISON 133 +diff -Nur musl-0.9.15/arch/sh/bits/fcntl.h musl-git/arch/sh/bits/fcntl.h +--- musl-0.9.15/arch/sh/bits/fcntl.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/fcntl.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,39 @@ ++#define O_CREAT 0100 ++#define O_EXCL 0200 ++#define O_NOCTTY 0400 ++#define O_TRUNC 01000 ++#define O_APPEND 02000 ++#define O_NONBLOCK 04000 ++#define O_DSYNC 010000 ++#define O_SYNC 04010000 ++#define O_RSYNC 04010000 ++#define O_DIRECTORY 0200000 ++#define O_NOFOLLOW 0400000 ++#define O_CLOEXEC 02000000 ++ ++#define O_ASYNC 020000 ++#define O_DIRECT 040000 ++#define O_LARGEFILE 0100000 ++#define O_NOATIME 01000000 ++#define O_TMPFILE 020200000 ++#define O_NDELAY O_NONBLOCK ++ ++#define F_DUPFD 0 ++#define F_GETFD 1 ++#define F_SETFD 2 ++#define F_GETFL 3 ++#define F_SETFL 4 ++ ++#define F_SETOWN 8 ++#define F_GETOWN 9 ++#define F_SETSIG 10 ++#define F_GETSIG 11 ++ ++#define F_GETLK 12 ++#define F_SETLK 13 ++#define F_SETLKW 14 ++ ++#define F_SETOWN_EX 15 ++#define F_GETOWN_EX 16 ++ ++#define F_GETOWNER_UIDS 17 +diff -Nur musl-0.9.15/arch/sh/bits/fenv.h musl-git/arch/sh/bits/fenv.h +--- musl-0.9.15/arch/sh/bits/fenv.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/fenv.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,26 @@ ++#ifndef __SH_FPU_ANY__ ++ ++#define FE_ALL_EXCEPT 0 ++#define FE_TONEAREST 0 ++ ++#else ++ ++#define FE_TONEAREST 0 ++#define FE_TOWARDZERO 1 ++ ++#define FE_INEXACT 0x04 ++#define FE_UNDERFLOW 0x08 ++#define FE_OVERFLOW 0x10 ++#define FE_DIVBYZERO 0x20 ++#define FE_INVALID 0x40 ++#define FE_ALL_EXCEPT 0x7c ++ ++#endif ++ ++typedef unsigned long fexcept_t; ++ ++typedef struct { ++ unsigned long __cw; ++} fenv_t; ++ ++#define FE_DFL_ENV ((const fenv_t *) -1) +diff -Nur musl-0.9.15/arch/sh/bits/float.h musl-git/arch/sh/bits/float.h +--- musl-0.9.15/arch/sh/bits/float.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/float.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,17 @@ ++#define FLT_ROUNDS 1 ++#define FLT_EVAL_METHOD 0 ++ ++#define LDBL_TRUE_MIN 4.94065645841246544177e-324L ++#define LDBL_MIN 2.22507385850720138309e-308L ++#define LDBL_MAX 1.79769313486231570815e+308L ++#define LDBL_EPSILON 2.22044604925031308085e-16L ++ ++#define LDBL_MANT_DIG 53 ++#define LDBL_MIN_EXP (-1021) ++#define LDBL_MAX_EXP 1024 ++ ++#define LDBL_DIG 15 ++#define LDBL_MIN_10_EXP (-307) ++#define LDBL_MAX_10_EXP 308 ++ ++#define DECIMAL_DIG 17 +diff -Nur musl-0.9.15/arch/sh/bits/ioctl.h musl-git/arch/sh/bits/ioctl.h +--- musl-0.9.15/arch/sh/bits/ioctl.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/ioctl.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,205 @@ ++#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) ) ++#define _IOC_NONE 0U ++#define _IOC_WRITE 1U ++#define _IOC_READ 2U ++ ++#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0) ++#define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c)) ++#define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c)) ++#define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c)) ++ ++#define FIOCLEX _IO('f', 1) ++#define FIONCLEX _IO('f', 2) ++#define FIOASYNC _IOW('f', 125, int) ++#define FIONBIO _IOW('f', 126, int) ++#define FIONREAD _IOR('f', 127, int) ++#define TIOCINQ FIONREAD ++#define FIOQSIZE _IOR('f', 128, char[8]) ++ ++#define TCGETA _IOR('t', 23, char[18]) ++#define TCSETA _IOW('t', 24, char[18]) ++#define TCSETAW _IOW('t', 25, char[18]) ++#define TCSETAF _IOW('t', 28, char[18]) ++ ++#define TCSBRK _IO('t', 29) ++#define TCXONC _IO('t', 30) ++#define TCFLSH _IO('t', 31) ++ ++#define TIOCSWINSZ _IOW('t', 103, char[8]) ++#define TIOCGWINSZ _IOR('t', 104, char[8]) ++#define TIOCSTART _IO('t', 110) ++#define TIOCSTOP _IO('t', 111) ++#define TIOCOUTQ _IOR('t', 115, int) ++ ++#define TIOCSPGRP _IOW('t', 118, int) ++#define TIOCGPGRP _IOR('t', 119, int) ++ ++#define TIOCEXCL _IO('T', 12) ++#define TIOCNXCL _IO('T', 13) ++#define TIOCSCTTY _IO('T', 14) ++ ++#define TIOCSTI _IOW('T', 18, char) ++#define TIOCMGET _IOR('T', 21, unsigned int) ++#define TIOCMBIS _IOW('T', 22, unsigned int) ++#define TIOCMBIC _IOW('T', 23, unsigned int) ++#define TIOCMSET _IOW('T', 24, unsigned int) ++#define TIOCM_LE 0x001 ++#define TIOCM_DTR 0x002 ++#define TIOCM_RTS 0x004 ++#define TIOCM_ST 0x008 ++#define TIOCM_SR 0x010 ++#define TIOCM_CTS 0x020 ++#define TIOCM_CAR 0x040 ++#define TIOCM_RNG 0x080 ++#define TIOCM_DSR 0x100 ++#define TIOCM_CD TIOCM_CAR ++#define TIOCM_RI TIOCM_RNG ++#define TIOCM_OUT1 0x2000 ++#define TIOCM_OUT2 0x4000 ++#define TIOCM_LOOP 0x8000 ++ ++#define TIOCGSOFTCAR _IOR('T', 25, unsigned int) ++#define TIOCSSOFTCAR _IOW('T', 26, unsigned int) ++#define TIOCLINUX _IOW('T', 28, char) ++#define TIOCCONS _IO('T', 29) ++#define TIOCGSERIAL _IOR('T', 30, char[60]) ++#define TIOCSSERIAL _IOW('T', 31, char[60]) ++#define TIOCPKT _IOW('T', 32, int) ++#define TIOCPKT_DATA 0 ++#define TIOCPKT_FLUSHREAD 1 ++#define TIOCPKT_FLUSHWRITE 2 ++#define TIOCPKT_STOP 4 ++#define TIOCPKT_START 8 ++#define TIOCPKT_NOSTOP 16 ++#define TIOCPKT_DOSTOP 32 ++#define TIOCPKT_IOCTL 64 ++ ++#define TIOCNOTTY _IO('T', 34) ++#define TIOCSETD _IOW('T', 35, int) ++#define TIOCGETD _IOR('T', 36, int) ++#define TCSBRKP _IOW('T', 37, int) ++#define TIOCSBRK _IO('T', 39) ++#define TIOCCBRK _IO('T', 40) ++#define TIOCGSID _IOR('T', 41, int) ++#define TCGETS _IOR('T', 42, char[44]) ++#define TCSETS _IOW('T', 43, char[44]) ++#define TCSETSW _IOW('T', 44, char[44]) ++#define TCSETSF _IOW('T', 45, char[44]) ++#define TIOCGPTN _IOR('T', 48, unsigned int) ++#define TIOCSPTLCK _IOW('T', 49, int) ++#define TIOCGDEV _IOR('T', 50, unsigned int) ++#define TIOCSIG _IOW('T', 54, int) ++#define TIOCVHANGUP _IO('T', 55) ++#define TIOCGPKT _IOR('T', 56, int) ++#define TIOCGPTLCK _IOR('T', 57, int) ++#define TIOCGEXCL _IOR('T', 64, int) ++ ++#define TIOCSERCONFIG _IO('T', 83) ++#define TIOCSERGWILD _IOR('T', 84, int) ++#define TIOCSERSWILD _IOW('T', 85, int) ++#define TIOCGLCKTRMIOS _IO('T', 86) ++#define TIOCSLCKTRMIOS _IO('T', 87) ++#define TIOCSERGSTRUCT _IOR('T', 88, char[216]) ++#define TIOCSERGETLSR _IOR('T', 89, unsigned int) ++#define TIOCSER_TEMT 0x01 ++#define TIOCSERGETMULTI _IOR('T', 90, char[168]) ++#define TIOCSERSETMULTI _IOW('T', 91, char[168]) ++ ++#define TIOCMIWAIT _IO('T', 92) ++#define TIOCGICOUNT _IO('T', 93) ++ ++struct winsize { ++ unsigned short ws_row; ++ unsigned short ws_col; ++ unsigned short ws_xpixel; ++ unsigned short ws_ypixel; ++}; ++ ++#define TIOCM_MODEM_BITS TIOCM_OUT2 ++ ++#define N_TTY 0 ++#define N_SLIP 1 ++#define N_MOUSE 2 ++#define N_PPP 3 ++#define N_STRIP 4 ++#define N_AX25 5 ++#define N_X25 6 ++#define N_6PACK 7 ++#define N_MASC 8 ++#define N_R3964 9 ++#define N_PROFIBUS_FDL 10 ++#define N_IRDA 11 ++#define N_SMSBLOCK 12 ++#define N_HDLC 13 ++#define N_SYNC_PPP 14 ++#define N_HCI 15 ++ ++#define FIOGETOWN _IOR('f', 123, int) ++#define FIOSETOWN _IOW('f', 124, int) ++ ++#define SIOCATMARK _IOR('s', 7, int) ++#define SIOCSPGRP _IOW('s', 8, int) ++#define SIOCGPGRP _IOW('s', 9, int) ++#define SIOCGSTAMP _IOR('s', 100, char[8]) ++ ++#define SIOCADDRT 0x890B ++#define SIOCDELRT 0x890C ++#define SIOCRTMSG 0x890D ++ ++#define SIOCGIFNAME 0x8910 ++#define SIOCSIFLINK 0x8911 ++#define SIOCGIFCONF 0x8912 ++#define SIOCGIFFLAGS 0x8913 ++#define SIOCSIFFLAGS 0x8914 ++#define SIOCGIFADDR 0x8915 ++#define SIOCSIFADDR 0x8916 ++#define SIOCGIFDSTADDR 0x8917 ++#define SIOCSIFDSTADDR 0x8918 ++#define SIOCGIFBRDADDR 0x8919 ++#define SIOCSIFBRDADDR 0x891a ++#define SIOCGIFNETMASK 0x891b ++#define SIOCSIFNETMASK 0x891c ++#define SIOCGIFMETRIC 0x891d ++#define SIOCSIFMETRIC 0x891e ++#define SIOCGIFMEM 0x891f ++#define SIOCSIFMEM 0x8920 ++#define SIOCGIFMTU 0x8921 ++#define SIOCSIFMTU 0x8922 ++#define SIOCSIFHWADDR 0x8924 ++#define SIOCGIFENCAP 0x8925 ++#define SIOCSIFENCAP 0x8926 ++#define SIOCGIFHWADDR 0x8927 ++#define SIOCGIFSLAVE 0x8929 ++#define SIOCSIFSLAVE 0x8930 ++#define SIOCADDMULTI 0x8931 ++#define SIOCDELMULTI 0x8932 ++#define SIOCGIFINDEX 0x8933 ++#define SIOGIFINDEX SIOCGIFINDEX ++#define SIOCSIFPFLAGS 0x8934 ++#define SIOCGIFPFLAGS 0x8935 ++#define SIOCDIFADDR 0x8936 ++#define SIOCSIFHWBROADCAST 0x8937 ++#define SIOCGIFCOUNT 0x8938 ++ ++#define SIOCGIFBR 0x8940 ++#define SIOCSIFBR 0x8941 ++ ++#define SIOCGIFTXQLEN 0x8942 ++#define SIOCSIFTXQLEN 0x8943 ++ ++#define SIOCDARP 0x8953 ++#define SIOCGARP 0x8954 ++#define SIOCSARP 0x8955 ++ ++#define SIOCDRARP 0x8960 ++#define SIOCGRARP 0x8961 ++#define SIOCSRARP 0x8962 ++ ++#define SIOCGIFMAP 0x8970 ++#define SIOCSIFMAP 0x8971 ++ ++#define SIOCADDDLCI 0x8980 ++#define SIOCDELDLCI 0x8981 ++ ++#define SIOCDEVPRIVATE 0x89F0 ++#define SIOCPROTOPRIVATE 0x89E0 +diff -Nur musl-0.9.15/arch/sh/bits/ipc.h musl-git/arch/sh/bits/ipc.h +--- musl-0.9.15/arch/sh/bits/ipc.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/ipc.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,14 @@ ++struct ipc_perm ++{ ++ key_t __ipc_perm_key; ++ uid_t uid; ++ gid_t gid; ++ uid_t cuid; ++ gid_t cgid; ++ mode_t mode; ++ int __ipc_perm_seq; ++ long __pad1; ++ long __pad2; ++}; ++ ++#define IPC_64 0x100 +diff -Nur musl-0.9.15/arch/sh/bits/limits.h musl-git/arch/sh/bits/limits.h +--- musl-0.9.15/arch/sh/bits/limits.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/limits.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,8 @@ ++#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 ++ ++#define LONG_MAX 0x7fffffffL ++#define LLONG_MAX 0x7fffffffffffffffLL +diff -Nur musl-0.9.15/arch/sh/bits/mman.h musl-git/arch/sh/bits/mman.h +--- musl-0.9.15/arch/sh/bits/mman.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/mman.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,62 @@ ++#define MAP_FAILED ((void *) -1) ++ ++#define PROT_NONE 0 ++#define PROT_READ 1 ++#define PROT_WRITE 2 ++#define PROT_EXEC 4 ++#define PROT_GROWSDOWN 0x01000000 ++#define PROT_GROWSUP 0x02000000 ++ ++#define MAP_SHARED 0x01 ++#define MAP_PRIVATE 0x02 ++#define MAP_FIXED 0x10 ++ ++#define MAP_TYPE 0x0f ++#define MAP_FILE 0x00 ++#define MAP_ANON 0x20 ++#define MAP_ANONYMOUS MAP_ANON ++#define MAP_32BIT 0x40 ++#define MAP_NORESERVE 0x4000 ++#define MAP_GROWSDOWN 0x0100 ++#define MAP_DENYWRITE 0x0800 ++#define MAP_EXECUTABLE 0x1000 ++#define MAP_LOCKED 0x2000 ++#define MAP_POPULATE 0x8000 ++#define MAP_NONBLOCK 0x10000 ++#define MAP_STACK 0x20000 ++#define MAP_HUGETLB 0x40000 ++ ++#define POSIX_MADV_NORMAL 0 ++#define POSIX_MADV_RANDOM 1 ++#define POSIX_MADV_SEQUENTIAL 2 ++#define POSIX_MADV_WILLNEED 3 ++#define POSIX_MADV_DONTNEED 4 ++ ++#define MS_ASYNC 1 ++#define MS_INVALIDATE 2 ++#define MS_SYNC 4 ++ ++#define MCL_CURRENT 1 ++#define MCL_FUTURE 2 ++ ++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++#define MADV_NORMAL 0 ++#define MADV_RANDOM 1 ++#define MADV_SEQUENTIAL 2 ++#define MADV_WILLNEED 3 ++#define MADV_DONTNEED 4 ++#define MADV_REMOVE 9 ++#define MADV_DONTFORK 10 ++#define MADV_DOFORK 11 ++#define MADV_MERGEABLE 12 ++#define MADV_UNMERGEABLE 13 ++#define MADV_HUGEPAGE 14 ++#define MADV_NOHUGEPAGE 15 ++#define MADV_DONTDUMP 16 ++#define MADV_DODUMP 17 ++#define MADV_HWPOISON 100 ++#define MADV_SOFT_OFFLINE 101 ++ ++#define MREMAP_MAYMOVE 1 ++#define MREMAP_FIXED 2 ++#endif +diff -Nur musl-0.9.15/arch/sh/bits/msg.h musl-git/arch/sh/bits/msg.h +--- musl-0.9.15/arch/sh/bits/msg.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/msg.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,16 @@ ++struct msqid_ds ++{ ++ struct ipc_perm msg_perm; ++ time_t msg_stime; ++ int __unused1; ++ time_t msg_rtime; ++ int __unused2; ++ time_t msg_ctime; ++ int __unused3; ++ unsigned long msg_cbytes; ++ msgqnum_t msg_qnum; ++ msglen_t msg_qbytes; ++ pid_t msg_lspid; ++ pid_t msg_lrpid; ++ unsigned long __unused[2]; ++}; +diff -Nur musl-0.9.15/arch/sh/bits/posix.h musl-git/arch/sh/bits/posix.h +--- musl-0.9.15/arch/sh/bits/posix.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/posix.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,2 @@ ++#define _POSIX_V6_ILP32_OFFBIG 1 ++#define _POSIX_V7_ILP32_OFFBIG 1 +diff -Nur musl-0.9.15/arch/sh/bits/setjmp.h musl-git/arch/sh/bits/setjmp.h +--- musl-0.9.15/arch/sh/bits/setjmp.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/setjmp.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1 @@ ++typedef unsigned long __jmp_buf[13]; +diff -Nur musl-0.9.15/arch/sh/bits/shm.h musl-git/arch/sh/bits/shm.h +--- musl-0.9.15/arch/sh/bits/shm.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/shm.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,28 @@ ++#define SHMLBA 16384 ++ ++struct shmid_ds ++{ ++ 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; ++ unsigned long __pad1; ++ unsigned long __pad2; ++}; ++ ++struct shminfo { ++ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; ++}; ++ ++struct shm_info { ++ int __used_ids; ++ unsigned long shm_tot, shm_rss, shm_swp; ++ unsigned long __swap_attempts, __swap_successes; ++}; +diff -Nur musl-0.9.15/arch/sh/bits/signal.h musl-git/arch/sh/bits/signal.h +--- musl-0.9.15/arch/sh/bits/signal.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/signal.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,76 @@ ++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ ++ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++ ++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++typedef int greg_t, gregset_t[16]; ++typedef int freg_t, fpregset_t[16]; ++typedef struct sigcontext { ++ unsigned long oldmask; ++ unsigned long sc_regs[16]; ++ unsigned long sc_pc, sc_pr, sc_sr; ++ unsigned long sc_gbr, sc_mach, sc_macl; ++ unsigned long sc_fpregs[16]; ++ unsigned long sc_xfpregs[16]; ++ unsigned int sc_fpscr, sc_fpul, sc_ownedfp; ++} mcontext_t; ++#else ++typedef struct { ++ unsigned long __regs[58]; ++} mcontext_t; ++#endif ++ ++typedef struct __ucontext { ++ unsigned long uc_flags; ++ struct __ucontext *uc_link; ++ stack_t uc_stack; ++ mcontext_t uc_mcontext; ++ sigset_t uc_sigmask; ++} ucontext_t; ++ ++#define SA_NOCLDSTOP 1 ++#define SA_NOCLDWAIT 2 ++#define SA_SIGINFO 4 ++#define SA_ONSTACK 0x08000000 ++#define SA_RESTART 0x10000000 ++#define SA_NODEFER 0x40000000 ++#define SA_RESETHAND 0x80000000 ++#define SA_RESTORER 0x04000000 ++ ++#endif ++ ++#define SIGHUP 1 ++#define SIGINT 2 ++#define SIGQUIT 3 ++#define SIGILL 4 ++#define SIGTRAP 5 ++#define SIGABRT 6 ++#define SIGIOT SIGABRT ++#define SIGBUS 7 ++#define SIGFPE 8 ++#define SIGKILL 9 ++#define SIGUSR1 10 ++#define SIGSEGV 11 ++#define SIGUSR2 12 ++#define SIGPIPE 13 ++#define SIGALRM 14 ++#define SIGTERM 15 ++#define SIGSTKFLT 16 ++#define SIGCHLD 17 ++#define SIGCONT 18 ++#define SIGSTOP 19 ++#define SIGTSTP 20 ++#define SIGTTIN 21 ++#define SIGTTOU 22 ++#define SIGURG 23 ++#define SIGXCPU 24 ++#define SIGXFSZ 25 ++#define SIGVTALRM 26 ++#define SIGPROF 27 ++#define SIGWINCH 28 ++#define SIGIO 29 ++#define SIGPOLL 29 ++#define SIGPWR 30 ++#define SIGSYS 31 ++#define SIGUNUSED SIGSYS ++ ++#define _NSIG 65 +diff -Nur musl-0.9.15/arch/sh/bits/socket.h musl-git/arch/sh/bits/socket.h +--- musl-0.9.15/arch/sh/bits/socket.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/socket.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,17 @@ ++struct msghdr ++{ ++ void *msg_name; ++ socklen_t msg_namelen; ++ struct iovec *msg_iov; ++ int msg_iovlen; ++ void *msg_control; ++ socklen_t msg_controllen; ++ int msg_flags; ++}; ++ ++struct cmsghdr ++{ ++ socklen_t cmsg_len; ++ int cmsg_level; ++ int cmsg_type; ++}; +diff -Nur musl-0.9.15/arch/sh/bits/statfs.h musl-git/arch/sh/bits/statfs.h +--- musl-0.9.15/arch/sh/bits/statfs.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/statfs.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,7 @@ ++struct statfs { ++ unsigned long f_type, f_bsize; ++ fsblkcnt_t f_blocks, f_bfree, f_bavail; ++ fsfilcnt_t f_files, f_ffree; ++ fsid_t f_fsid; ++ unsigned long f_namelen, f_frsize, f_flags, f_spare[4]; ++}; +diff -Nur musl-0.9.15/arch/sh/bits/stat.h musl-git/arch/sh/bits/stat.h +--- musl-0.9.15/arch/sh/bits/stat.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/stat.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,22 @@ ++/* copied from kernel definition, but with padding replaced ++ * by the corresponding correctly-sized userspace types. */ ++ ++struct stat ++{ ++ dev_t st_dev; ++ int __st_dev_padding; ++ long __st_ino_truncated; ++ mode_t st_mode; ++ nlink_t st_nlink; ++ uid_t st_uid; ++ gid_t st_gid; ++ dev_t st_rdev; ++ int __st_rdev_padding; ++ off_t st_size; ++ blksize_t st_blksize; ++ blkcnt_t st_blocks; ++ struct timespec st_atim; ++ struct timespec st_mtim; ++ struct timespec st_ctim; ++ ino_t st_ino; ++}; +diff -Nur musl-0.9.15/arch/sh/bits/stdarg.h musl-git/arch/sh/bits/stdarg.h +--- musl-0.9.15/arch/sh/bits/stdarg.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/stdarg.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,4 @@ ++#define va_start(v,l) __builtin_va_start(v,l) ++#define va_end(v) __builtin_va_end(v) ++#define va_arg(v,l) __builtin_va_arg(v,l) ++#define va_copy(d,s) __builtin_va_copy(d,s) +diff -Nur musl-0.9.15/arch/sh/bits/stdint.h musl-git/arch/sh/bits/stdint.h +--- musl-0.9.15/arch/sh/bits/stdint.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/stdint.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,20 @@ ++typedef int32_t int_fast16_t; ++typedef int32_t int_fast32_t; ++typedef uint32_t uint_fast16_t; ++typedef uint32_t uint_fast32_t; ++ ++#define INT_FAST16_MIN INT32_MIN ++#define INT_FAST32_MIN INT32_MIN ++ ++#define INT_FAST16_MAX INT32_MAX ++#define INT_FAST32_MAX INT32_MAX ++ ++#define UINT_FAST16_MAX UINT32_MAX ++#define UINT_FAST32_MAX UINT32_MAX ++ ++#define INTPTR_MIN INT32_MIN ++#define INTPTR_MAX INT32_MAX ++#define UINTPTR_MAX UINT32_MAX ++#define PTRDIFF_MIN INT32_MIN ++#define PTRDIFF_MAX INT32_MAX ++#define SIZE_MAX UINT32_MAX +diff -Nur musl-0.9.15/arch/sh/bits/syscall.h musl-git/arch/sh/bits/syscall.h +--- musl-0.9.15/arch/sh/bits/syscall.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/syscall.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,684 @@ ++#define __NR_restart_syscall 0 ++#define __NR_exit 1 ++#define __NR_fork 2 ++#define __NR_read 3 ++#define __NR_write 4 ++#define __NR_open 5 ++#define __NR_close 6 ++#define __NR_waitpid 7 ++#define __NR_creat 8 ++#define __NR_link 9 ++#define __NR_unlink 10 ++#define __NR_execve 11 ++#define __NR_chdir 12 ++#define __NR_time 13 ++#define __NR_mknod 14 ++#define __NR_chmod 15 ++#define __NR_lchown 16 ++#define __NR_oldstat 18 ++#define __NR_lseek 19 ++#define __NR_getpid 20 ++#define __NR_mount 21 ++#define __NR_umount 22 ++#define __NR_setuid 23 ++#define __NR_getuid 24 ++#define __NR_stime 25 ++#define __NR_ptrace 26 ++#define __NR_alarm 27 ++#define __NR_oldfstat 28 ++#define __NR_pause 29 ++#define __NR_utime 30 ++#define __NR_access 33 ++#define __NR_nice 34 ++#define __NR_sync 36 ++#define __NR_kill 37 ++#define __NR_rename 38 ++#define __NR_mkdir 39 ++#define __NR_rmdir 40 ++#define __NR_dup 41 ++#define __NR_pipe 42 ++#define __NR_times 43 ++#define __NR_brk 45 ++#define __NR_setgid 46 ++#define __NR_getgid 47 ++#define __NR_signal 48 ++#define __NR_geteuid 49 ++#define __NR_getegid 50 ++#define __NR_acct 51 ++#define __NR_umount2 52 ++#define __NR_ioctl 54 ++#define __NR_fcntl 55 ++#define __NR_setpgid 57 ++#define __NR_umask 60 ++#define __NR_chroot 61 ++#define __NR_ustat 62 ++#define __NR_dup2 63 ++#define __NR_getppid 64 ++#define __NR_getpgrp 65 ++#define __NR_setsid 66 ++#define __NR_sigaction 67 ++#define __NR_sgetmask 68 ++#define __NR_ssetmask 69 ++#define __NR_setreuid 70 ++#define __NR_setregid 71 ++#define __NR_sigsuspend 72 ++#define __NR_sigpending 73 ++#define __NR_sethostname 74 ++#define __NR_setrlimit 75 ++#define __NR_getrlimit 76 ++#define __NR_getrusage 77 ++#define __NR_gettimeofday 78 ++#define __NR_settimeofday 79 ++#define __NR_getgroups 80 ++#define __NR_setgroups 81 ++#define __NR_symlink 83 ++#define __NR_oldlstat 84 ++#define __NR_readlink 85 ++#define __NR_uselib 86 ++#define __NR_swapon 87 ++#define __NR_reboot 88 ++#define __NR_readdir 89 ++#define __NR_mmap 90 ++#define __NR_munmap 91 ++#define __NR_truncate 92 ++#define __NR_ftruncate 93 ++#define __NR_fchmod 94 ++#define __NR_fchown 95 ++#define __NR_getpriority 96 ++#define __NR_setpriority 97 ++#define __NR_statfs 99 ++#define __NR_fstatfs 100 ++#define __NR_socketcall 102 ++#define __NR_syslog 103 ++#define __NR_setitimer 104 ++#define __NR_getitimer 105 ++#define __NR_stat 106 ++#define __NR_lstat 107 ++#define __NR_fstat 108 ++#define __NR_olduname 109 ++#define __NR_vhangup 111 ++#define __NR_wait4 114 ++#define __NR_swapoff 115 ++#define __NR_sysinfo 116 ++#define __NR_ipc 117 ++#define __NR_fsync 118 ++#define __NR_sigreturn 119 ++#define __NR_clone 120 ++#define __NR_setdomainname 121 ++#define __NR_uname 122 ++#define __NR_cacheflush 123 ++#define __NR_adjtimex 124 ++#define __NR_mprotect 125 ++#define __NR_sigprocmask 126 ++#define __NR_init_module 128 ++#define __NR_delete_module 129 ++#define __NR_quotactl 131 ++#define __NR_getpgid 132 ++#define __NR_fchdir 133 ++#define __NR_bdflush 134 ++#define __NR_sysfs 135 ++#define __NR_personality 136 ++#define __NR_setfsuid 138 ++#define __NR_setfsgid 139 ++#define __NR__llseek 140 ++#define __NR_getdents 141 ++#define __NR__newselect 142 ++#define __NR_flock 143 ++#define __NR_msync 144 ++#define __NR_readv 145 ++#define __NR_writev 146 ++#define __NR_getsid 147 ++#define __NR_fdatasync 148 ++#define __NR__sysctl 149 ++#define __NR_mlock 150 ++#define __NR_munlock 151 ++#define __NR_mlockall 152 ++#define __NR_munlockall 153 ++#define __NR_sched_setparam 154 ++#define __NR_sched_getparam 155 ++#define __NR_sched_setscheduler 156 ++#define __NR_sched_getscheduler 157 ++#define __NR_sched_yield 158 ++#define __NR_sched_get_priority_max 159 ++#define __NR_sched_get_priority_min 160 ++#define __NR_sched_rr_get_interval 161 ++#define __NR_nanosleep 162 ++#define __NR_mremap 163 ++#define __NR_setresuid 164 ++#define __NR_getresuid 165 ++#define __NR_poll 168 ++#define __NR_nfsservctl 169 ++#define __NR_setresgid 170 ++#define __NR_getresgid 171 ++#define __NR_prctl 172 ++#define __NR_rt_sigreturn 173 ++#define __NR_rt_sigaction 174 ++#define __NR_rt_sigprocmask 175 ++#define __NR_rt_sigpending 176 ++#define __NR_rt_sigtimedwait 177 ++#define __NR_rt_sigqueueinfo 178 ++#define __NR_rt_sigsuspend 179 ++#define __NR_pread64 180 ++#define __NR_pwrite64 181 ++#define __NR_chown 182 ++#define __NR_getcwd 183 ++#define __NR_capget 184 ++#define __NR_capset 185 ++#define __NR_sigaltstack 186 ++#define __NR_sendfile 187 ++#define __NR_vfork 190 ++#define __NR_ugetrlimit 191 ++#define __NR_mmap2 192 ++#define __NR_truncate64 193 ++#define __NR_ftruncate64 194 ++#define __NR_stat64 195 ++#define __NR_lstat64 196 ++#define __NR_fstat64 197 ++#define __NR_lchown32 198 ++#define __NR_getuid32 199 ++#define __NR_getgid32 200 ++#define __NR_geteuid32 201 ++#define __NR_getegid32 202 ++#define __NR_setreuid32 203 ++#define __NR_setregid32 204 ++#define __NR_getgroups32 205 ++#define __NR_setgroups32 206 ++#define __NR_fchown32 207 ++#define __NR_setresuid32 208 ++#define __NR_getresuid32 209 ++#define __NR_setresgid32 210 ++#define __NR_getresgid32 211 ++#define __NR_chown32 212 ++#define __NR_setuid32 213 ++#define __NR_setgid32 214 ++#define __NR_setfsuid32 215 ++#define __NR_setfsgid32 216 ++#define __NR_pivot_root 217 ++#define __NR_mincore 218 ++#define __NR_madvise 219 ++#define __NR_getdents64 220 ++#define __NR_fcntl64 221 ++#define __NR_gettid 224 ++#define __NR_readahead 225 ++#define __NR_setxattr 226 ++#define __NR_lsetxattr 227 ++#define __NR_fsetxattr 228 ++#define __NR_getxattr 229 ++#define __NR_lgetxattr 230 ++#define __NR_fgetxattr 231 ++#define __NR_listxattr 232 ++#define __NR_llistxattr 233 ++#define __NR_flistxattr 234 ++#define __NR_removexattr 235 ++#define __NR_lremovexattr 236 ++#define __NR_fremovexattr 237 ++#define __NR_tkill 238 ++#define __NR_sendfile64 239 ++#define __NR_futex 240 ++#define __NR_sched_setaffinity 241 ++#define __NR_sched_getaffinity 242 ++#define __NR_io_setup 245 ++#define __NR_io_destroy 246 ++#define __NR_io_getevents 247 ++#define __NR_io_submit 248 ++#define __NR_io_cancel 249 ++#define __NR_fadvise64 250 ++#define __NR_exit_group 252 ++#define __NR_lookup_dcookie 253 ++#define __NR_epoll_create 254 ++#define __NR_epoll_ctl 255 ++#define __NR_epoll_wait 256 ++#define __NR_remap_file_pages 257 ++#define __NR_set_tid_address 258 ++#define __NR_timer_create 259 ++#define __NR_timer_settime 260 ++#define __NR_timer_gettime 261 ++#define __NR_timer_getoverrun 262 ++#define __NR_timer_delete 263 ++#define __NR_clock_settime 264 ++#define __NR_clock_gettime 265 ++#define __NR_clock_getres 266 ++#define __NR_clock_nanosleep 267 ++#define __NR_statfs64 268 ++#define __NR_fstatfs64 269 ++#define __NR_tgkill 270 ++#define __NR_utimes 271 ++#define __NR_fadvise64_64 272 ++#define __NR_mbind 274 ++#define __NR_get_mempolicy 275 ++#define __NR_set_mempolicy 276 ++#define __NR_mq_open 277 ++#define __NR_mq_unlink 278 ++#define __NR_mq_timedsend 279 ++#define __NR_mq_timedreceive 280 ++#define __NR_mq_notify 281 ++#define __NR_mq_getsetattr 282 ++#define __NR_kexec_load 283 ++#define __NR_waitid 284 ++#define __NR_add_key 285 ++#define __NR_request_key 286 ++#define __NR_keyctl 287 ++#define __NR_ioprio_set 288 ++#define __NR_ioprio_get 289 ++#define __NR_inotify_init 290 ++#define __NR_inotify_add_watch 291 ++#define __NR_inotify_rm_watch 292 ++#define __NR_migrate_pages 294 ++#define __NR_openat 295 ++#define __NR_mkdirat 296 ++#define __NR_mknodat 297 ++#define __NR_fchownat 298 ++#define __NR_futimesat 299 ++#define __NR_fstatat64 300 ++#define __NR_unlinkat 301 ++#define __NR_renameat 302 ++#define __NR_linkat 303 ++#define __NR_symlinkat 304 ++#define __NR_readlinkat 305 ++#define __NR_fchmodat 306 ++#define __NR_faccessat 307 ++#define __NR_pselect6 308 ++#define __NR_ppoll 309 ++#define __NR_unshare 310 ++#define __NR_set_robust_list 311 ++#define __NR_get_robust_list 312 ++#define __NR_splice 313 ++#define __NR_sync_file_range 314 ++#define __NR_tee 315 ++#define __NR_vmsplice 316 ++#define __NR_move_pages 317 ++#define __NR_getcpu 318 ++#define __NR_epoll_pwait 319 ++#define __NR_utimensat 320 ++#define __NR_signalfd 321 ++#define __NR_timerfd_create 322 ++#define __NR_eventfd 323 ++#define __NR_fallocate 324 ++#define __NR_timerfd_settime 325 ++#define __NR_timerfd_gettime 326 ++#define __NR_signalfd4 327 ++#define __NR_eventfd2 328 ++#define __NR_epoll_create1 329 ++#define __NR_dup3 330 ++#define __NR_pipe2 331 ++#define __NR_inotify_init1 332 ++#define __NR_preadv 333 ++#define __NR_pwritev 334 ++#define __NR_rt_tgsigqueueinfo 335 ++#define __NR_perf_event_open 336 ++#define __NR_fanotify_init 337 ++#define __NR_fanotify_mark 338 ++#define __NR_prlimit64 339 ++#define __NR_socket 340 ++#define __NR_bind 341 ++#define __NR_connect 342 ++#define __NR_listen 343 ++#define __NR_accept 344 ++#define __NR_getsockname 345 ++#define __NR_getpeername 346 ++#define __NR_socketpair 347 ++#define __NR_send 348 ++#define __NR_sendto 349 ++#define __NR_recv 350 ++#define __NR_recvfrom 351 ++#define __NR_shutdown 352 ++#define __NR_setsockopt 353 ++#define __NR_getsockopt 354 ++#define __NR_sendmsg 355 ++#define __NR_recvmsg 356 ++#define __NR_recvmmsg 357 ++#define __NR_accept4 358 ++#define __NR_name_to_handle_at 359 ++#define __NR_open_by_handle_at 360 ++#define __NR_clock_adjtime 361 ++#define __NR_syncfs 362 ++#define __NR_sendmmsg 363 ++#define __NR_setns 364 ++#define __NR_process_vm_readv 365 ++#define __NR_process_vm_writev 366 ++#define __NR_kcmp 367 ++#define __NR_finit_module 368 ++ ++ ++/* Repeated with SYS_ prefix */ ++ ++#define SYS_restart_syscall 0 ++#define SYS_exit 1 ++#define SYS_fork 2 ++#define SYS_read 3 ++#define SYS_write 4 ++#define SYS_open 5 ++#define SYS_close 6 ++#define SYS_waitpid 7 ++#define SYS_creat 8 ++#define SYS_link 9 ++#define SYS_unlink 10 ++#define SYS_execve 11 ++#define SYS_chdir 12 ++#define SYS_time 13 ++#define SYS_mknod 14 ++#define SYS_chmod 15 ++#define SYS_lchown 16 ++#define SYS_oldstat 18 ++#define SYS_lseek 19 ++#define SYS_getpid 20 ++#define SYS_mount 21 ++#define SYS_umount 22 ++#define SYS_setuid 23 ++#define SYS_getuid 24 ++#define SYS_stime 25 ++#define SYS_ptrace 26 ++#define SYS_alarm 27 ++#define SYS_oldfstat 28 ++#define SYS_pause 29 ++#define SYS_utime 30 ++#define SYS_access 33 ++#define SYS_nice 34 ++#define SYS_sync 36 ++#define SYS_kill 37 ++#define SYS_rename 38 ++#define SYS_mkdir 39 ++#define SYS_rmdir 40 ++#define SYS_dup 41 ++#define SYS_pipe 42 ++#define SYS_times 43 ++#define SYS_brk 45 ++#define SYS_setgid 46 ++#define SYS_getgid 47 ++#define SYS_signal 48 ++#define SYS_geteuid 49 ++#define SYS_getegid 50 ++#define SYS_acct 51 ++#define SYS_umount2 52 ++#define SYS_ioctl 54 ++#define SYS_fcntl 55 ++#define SYS_setpgid 57 ++#define SYS_umask 60 ++#define SYS_chroot 61 ++#define SYS_ustat 62 ++#define SYS_dup2 63 ++#define SYS_getppid 64 ++#define SYS_getpgrp 65 ++#define SYS_setsid 66 ++#define SYS_sigaction 67 ++#define SYS_sgetmask 68 ++#define SYS_ssetmask 69 ++#define SYS_setreuid 70 ++#define SYS_setregid 71 ++#define SYS_sigsuspend 72 ++#define SYS_sigpending 73 ++#define SYS_sethostname 74 ++#define SYS_setrlimit 75 ++#define SYS_getrlimit 76 ++#define SYS_getrusage 77 ++#define SYS_gettimeofday 78 ++#define SYS_settimeofday 79 ++#define SYS_getgroups 80 ++#define SYS_setgroups 81 ++#define SYS_symlink 83 ++#define SYS_oldlstat 84 ++#define SYS_readlink 85 ++#define SYS_uselib 86 ++#define SYS_swapon 87 ++#define SYS_reboot 88 ++#define SYS_readdir 89 ++#define SYS_mmap 90 ++#define SYS_munmap 91 ++#define SYS_truncate 92 ++#define SYS_ftruncate 93 ++#define SYS_fchmod 94 ++#define SYS_fchown 95 ++#define SYS_getpriority 96 ++#define SYS_setpriority 97 ++#define SYS_statfs 99 ++#define SYS_fstatfs 100 ++#define SYS_socketcall 102 ++#define SYS_syslog 103 ++#define SYS_setitimer 104 ++#define SYS_getitimer 105 ++#define SYS_stat 106 ++#define SYS_lstat 107 ++#define SYS_fstat 108 ++#define SYS_olduname 109 ++#define SYS_vhangup 111 ++#define SYS_wait4 114 ++#define SYS_swapoff 115 ++#define SYS_sysinfo 116 ++#define SYS_ipc 117 ++#define SYS_fsync 118 ++#define SYS_sigreturn 119 ++#define SYS_clone 120 ++#define SYS_setdomainname 121 ++#define SYS_uname 122 ++#define SYS_cacheflush 123 ++#define SYS_adjtimex 124 ++#define SYS_mprotect 125 ++#define SYS_sigprocmask 126 ++#define SYS_init_module 128 ++#define SYS_delete_module 129 ++#define SYS_quotactl 131 ++#define SYS_getpgid 132 ++#define SYS_fchdir 133 ++#define SYS_bdflush 134 ++#define SYS_sysfs 135 ++#define SYS_personality 136 ++#define SYS_setfsuid 138 ++#define SYS_setfsgid 139 ++#define SYS__llseek 140 ++#define SYS_getdents 141 ++#define SYS__newselect 142 ++#define SYS_flock 143 ++#define SYS_msync 144 ++#define SYS_readv 145 ++#define SYS_writev 146 ++#define SYS_getsid 147 ++#define SYS_fdatasync 148 ++#define SYS__sysctl 149 ++#define SYS_mlock 150 ++#define SYS_munlock 151 ++#define SYS_mlockall 152 ++#define SYS_munlockall 153 ++#define SYS_sched_setparam 154 ++#define SYS_sched_getparam 155 ++#define SYS_sched_setscheduler 156 ++#define SYS_sched_getscheduler 157 ++#define SYS_sched_yield 158 ++#define SYS_sched_get_priority_max 159 ++#define SYS_sched_get_priority_min 160 ++#define SYS_sched_rr_get_interval 161 ++#define SYS_nanosleep 162 ++#define SYS_mremap 163 ++#define SYS_setresuid 164 ++#define SYS_getresuid 165 ++#define SYS_poll 168 ++#define SYS_nfsservctl 169 ++#define SYS_setresgid 170 ++#define SYS_getresgid 171 ++#define SYS_prctl 172 ++#define SYS_rt_sigreturn 173 ++#define SYS_rt_sigaction 174 ++#define SYS_rt_sigprocmask 175 ++#define SYS_rt_sigpending 176 ++#define SYS_rt_sigtimedwait 177 ++#define SYS_rt_sigqueueinfo 178 ++#define SYS_rt_sigsuspend 179 ++#define SYS_pread64 180 ++#define SYS_pwrite64 181 ++#define SYS_chown 182 ++#define SYS_getcwd 183 ++#define SYS_capget 184 ++#define SYS_capset 185 ++#define SYS_sigaltstack 186 ++#define SYS_sendfile 187 ++#define SYS_vfork 190 ++#define SYS_ugetrlimit 191 ++#define SYS_mmap2 192 ++#define SYS_truncate64 193 ++#define SYS_ftruncate64 194 ++#define SYS_stat64 195 ++#define SYS_lstat64 196 ++#define SYS_fstat64 197 ++#define SYS_lchown32 198 ++#define SYS_getuid32 199 ++#define SYS_getgid32 200 ++#define SYS_geteuid32 201 ++#define SYS_getegid32 202 ++#define SYS_setreuid32 203 ++#define SYS_setregid32 204 ++#define SYS_getgroups32 205 ++#define SYS_setgroups32 206 ++#define SYS_fchown32 207 ++#define SYS_setresuid32 208 ++#define SYS_getresuid32 209 ++#define SYS_setresgid32 210 ++#define SYS_getresgid32 211 ++#define SYS_chown32 212 ++#define SYS_setuid32 213 ++#define SYS_setgid32 214 ++#define SYS_setfsuid32 215 ++#define SYS_setfsgid32 216 ++#define SYS_pivot_root 217 ++#define SYS_mincore 218 ++#define SYS_madvise 219 ++#define SYS_getdents64 220 ++#define SYS_fcntl64 221 ++#define SYS_gettid 224 ++#define SYS_readahead 225 ++#define SYS_setxattr 226 ++#define SYS_lsetxattr 227 ++#define SYS_fsetxattr 228 ++#define SYS_getxattr 229 ++#define SYS_lgetxattr 230 ++#define SYS_fgetxattr 231 ++#define SYS_listxattr 232 ++#define SYS_llistxattr 233 ++#define SYS_flistxattr 234 ++#define SYS_removexattr 235 ++#define SYS_lremovexattr 236 ++#define SYS_fremovexattr 237 ++#define SYS_tkill 238 ++#define SYS_sendfile64 239 ++#define SYS_futex 240 ++#define SYS_sched_setaffinity 241 ++#define SYS_sched_getaffinity 242 ++#define SYS_io_setup 245 ++#define SYS_io_destroy 246 ++#define SYS_io_getevents 247 ++#define SYS_io_submit 248 ++#define SYS_io_cancel 249 ++#define SYS_fadvise64 250 ++#define SYS_exit_group 252 ++#define SYS_lookup_dcookie 253 ++#define SYS_epoll_create 254 ++#define SYS_epoll_ctl 255 ++#define SYS_epoll_wait 256 ++#define SYS_remap_file_pages 257 ++#define SYS_set_tid_address 258 ++#define SYS_timer_create 259 ++#define SYS_timer_settime 260 ++#define SYS_timer_gettime 261 ++#define SYS_timer_getoverrun 262 ++#define SYS_timer_delete 263 ++#define SYS_clock_settime 264 ++#define SYS_clock_gettime 265 ++#define SYS_clock_getres 266 ++#define SYS_clock_nanosleep 267 ++#define SYS_statfs64 268 ++#define SYS_fstatfs64 269 ++#define SYS_tgkill 270 ++#define SYS_utimes 271 ++#define SYS_fadvise64_64 272 ++#define SYS_mbind 274 ++#define SYS_get_mempolicy 275 ++#define SYS_set_mempolicy 276 ++#define SYS_mq_open 277 ++#define SYS_mq_unlink 278 ++#define SYS_mq_timedsend 279 ++#define SYS_mq_timedreceive 280 ++#define SYS_mq_notify 281 ++#define SYS_mq_getsetattr 282 ++#define SYS_kexec_load 283 ++#define SYS_waitid 284 ++#define SYS_add_key 285 ++#define SYS_request_key 286 ++#define SYS_keyctl 287 ++#define SYS_ioprio_set 288 ++#define SYS_ioprio_get 289 ++#define SYS_inotify_init 290 ++#define SYS_inotify_add_watch 291 ++#define SYS_inotify_rm_watch 292 ++#define SYS_migrate_pages 294 ++#define SYS_openat 295 ++#define SYS_mkdirat 296 ++#define SYS_mknodat 297 ++#define SYS_fchownat 298 ++#define SYS_futimesat 299 ++#define SYS_fstatat64 300 ++#define SYS_unlinkat 301 ++#define SYS_renameat 302 ++#define SYS_linkat 303 ++#define SYS_symlinkat 304 ++#define SYS_readlinkat 305 ++#define SYS_fchmodat 306 ++#define SYS_faccessat 307 ++#define SYS_pselect6 308 ++#define SYS_ppoll 309 ++#define SYS_unshare 310 ++#define SYS_set_robust_list 311 ++#define SYS_get_robust_list 312 ++#define SYS_splice 313 ++#define SYS_sync_file_range 314 ++#define SYS_tee 315 ++#define SYS_vmsplice 316 ++#define SYS_move_pages 317 ++#define SYS_getcpu 318 ++#define SYS_epoll_pwait 319 ++#define SYS_utimensat 320 ++#define SYS_signalfd 321 ++#define SYS_timerfd_create 322 ++#define SYS_eventfd 323 ++#define SYS_fallocate 324 ++#define SYS_timerfd_settime 325 ++#define SYS_timerfd_gettime 326 ++#define SYS_signalfd4 327 ++#define SYS_eventfd2 328 ++#define SYS_epoll_create1 329 ++#define SYS_dup3 330 ++#define SYS_pipe2 331 ++#define SYS_inotify_init1 332 ++#define SYS_preadv 333 ++#define SYS_pwritev 334 ++#define SYS_rt_tgsigqueueinfo 335 ++#define SYS_perf_event_open 336 ++#define SYS_fanotify_init 337 ++#define SYS_fanotify_mark 338 ++#define SYS_prlimit64 339 ++#define SYS_socket 340 ++#define SYS_bind 341 ++#define SYS_connect 342 ++#define SYS_listen 343 ++#define SYS_accept 344 ++#define SYS_getsockname 345 ++#define SYS_getpeername 346 ++#define SYS_socketpair 347 ++#define SYS_send 348 ++#define SYS_sendto 349 ++#define SYS_recv 350 ++#define SYS_recvfrom 351 ++#define SYS_shutdown 352 ++#define SYS_setsockopt 353 ++#define SYS_getsockopt 354 ++#define SYS_sendmsg 355 ++#define SYS_recvmsg 356 ++#define SYS_recvmmsg 357 ++#define SYS_accept4 358 ++#define SYS_name_to_handle_at 359 ++#define SYS_open_by_handle_at 360 ++#define SYS_clock_adjtime 361 ++#define SYS_syncfs 362 ++#define SYS_sendmmsg 363 ++#define SYS_setns 364 ++#define SYS_process_vm_readv 365 ++#define SYS_process_vm_writev 366 ++#define SYS_kcmp 367 ++#define SYS_finit_module 368 +diff -Nur musl-0.9.15/arch/sh/bits/termios.h musl-git/arch/sh/bits/termios.h +--- musl-0.9.15/arch/sh/bits/termios.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/termios.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,160 @@ ++struct termios ++{ ++ tcflag_t c_iflag; ++ tcflag_t c_oflag; ++ tcflag_t c_cflag; ++ tcflag_t c_lflag; ++ cc_t c_line; ++ cc_t c_cc[NCCS]; ++ speed_t __c_ispeed; ++ speed_t __c_ospeed; ++}; ++ ++#define VINTR 0 ++#define VQUIT 1 ++#define VERASE 2 ++#define VKILL 3 ++#define VEOF 4 ++#define VTIME 5 ++#define VMIN 6 ++#define VSWTC 7 ++#define VSTART 8 ++#define VSTOP 9 ++#define VSUSP 10 ++#define VEOL 11 ++#define VREPRINT 12 ++#define VDISCARD 13 ++#define VWERASE 14 ++#define VLNEXT 15 ++#define VEOL2 16 ++ ++#define IGNBRK 0000001 ++#define BRKINT 0000002 ++#define IGNPAR 0000004 ++#define PARMRK 0000010 ++#define INPCK 0000020 ++#define ISTRIP 0000040 ++#define INLCR 0000100 ++#define IGNCR 0000200 ++#define ICRNL 0000400 ++#define IUCLC 0001000 ++#define IXON 0002000 ++#define IXANY 0004000 ++#define IXOFF 0010000 ++#define IMAXBEL 0020000 ++#define IUTF8 0040000 ++ ++#define OPOST 0000001 ++#define OLCUC 0000002 ++#define ONLCR 0000004 ++#define OCRNL 0000010 ++#define ONOCR 0000020 ++#define ONLRET 0000040 ++#define OFILL 0000100 ++#define OFDEL 0000200 ++#define NLDLY 0000400 ++#define NL0 0000000 ++#define NL1 0000400 ++#define CRDLY 0003000 ++#define CR0 0000000 ++#define CR1 0001000 ++#define CR2 0002000 ++#define CR3 0003000 ++#define TABDLY 0014000 ++#define TAB0 0000000 ++#define TAB1 0004000 ++#define TAB2 0010000 ++#define TAB3 0014000 ++#define BSDLY 0020000 ++#define BS0 0000000 ++#define BS1 0020000 ++#define FFDLY 0100000 ++#define FF0 0000000 ++#define FF1 0100000 ++ ++#define VTDLY 0040000 ++#define VT0 0000000 ++#define VT1 0040000 ++ ++#define B0 0000000 ++#define B50 0000001 ++#define B75 0000002 ++#define B110 0000003 ++#define B134 0000004 ++#define B150 0000005 ++#define B200 0000006 ++#define B300 0000007 ++#define B600 0000010 ++#define B1200 0000011 ++#define B1800 0000012 ++#define B2400 0000013 ++#define B4800 0000014 ++#define B9600 0000015 ++#define B19200 0000016 ++#define B38400 0000017 ++ ++#define B57600 0010001 ++#define B115200 0010002 ++#define B230400 0010003 ++#define B460800 0010004 ++#define B500000 0010005 ++#define B576000 0010006 ++#define B921600 0010007 ++#define B1000000 0010010 ++#define B1152000 0010011 ++#define B1500000 0010012 ++#define B2000000 0010013 ++#define B2500000 0010014 ++#define B3000000 0010015 ++#define B3500000 0010016 ++#define B4000000 0010017 ++ ++#define CBAUD 0010017 ++ ++#define CSIZE 0000060 ++#define CS5 0000000 ++#define CS6 0000020 ++#define CS7 0000040 ++#define CS8 0000060 ++#define CSTOPB 0000100 ++#define CREAD 0000200 ++#define PARENB 0000400 ++#define PARODD 0001000 ++#define HUPCL 0002000 ++#define CLOCAL 0004000 ++ ++#define ISIG 0000001 ++#define ICANON 0000002 ++#define ECHO 0000010 ++#define ECHOE 0000020 ++#define ECHOK 0000040 ++#define ECHONL 0000100 ++#define NOFLSH 0000200 ++#define TOSTOP 0000400 ++#define IEXTEN 0100000 ++ ++#define ECHOCTL 0001000 ++#define ECHOPRT 0002000 ++#define ECHOKE 0004000 ++#define FLUSHO 0010000 ++#define PENDIN 0040000 ++ ++#define TCOOFF 0 ++#define TCOON 1 ++#define TCIOFF 2 ++#define TCION 3 ++ ++#define TCIFLUSH 0 ++#define TCOFLUSH 1 ++#define TCIOFLUSH 2 ++ ++#define TCSANOW 0 ++#define TCSADRAIN 1 ++#define TCSAFLUSH 2 ++ ++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++#define CBAUDEX 0010000 ++#define CRTSCTS 020000000000 ++#define EXTPROC 0200000 ++#define XTABS 0014000 ++#endif +diff -Nur musl-0.9.15/arch/sh/bits/user.h musl-git/arch/sh/bits/user.h +--- musl-0.9.15/arch/sh/bits/user.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/bits/user.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,75 @@ ++#undef __WORDSIZE ++#define __WORDSIZE 32 ++ ++#define REG_REG0 0 ++#define REG_REG15 15 ++#define REG_PC 16 ++#define REG_PR 17 ++#define REG_SR 18 ++#define REG_GBR 19 ++#define REG_MACH 20 ++#define REG_MACL 21 ++#define REG_SYSCALL 22 ++#define REG_FPREG0 23 ++#define REG_FPREG15 38 ++#define REG_XFREG0 39 ++#define REG_XFREG15 54 ++#define REG_FPSCR 55 ++#define REG_FPUL 56 ++ ++struct pt_regs { ++ unsigned long regs[16]; ++ unsigned long pc; ++ unsigned long pr; ++ unsigned long sr; ++ unsigned long gbr; ++ unsigned long mach; ++ unsigned long macl; ++ long tra; ++}; ++ ++struct pt_dspregs { ++ unsigned long a1; ++ unsigned long a0g; ++ unsigned long a1g; ++ unsigned long m0; ++ unsigned long m1; ++ unsigned long a0; ++ unsigned long x0; ++ unsigned long x1; ++ unsigned long y0; ++ unsigned long y1; ++ unsigned long dsr; ++ unsigned long rs; ++ unsigned long re; ++ unsigned long mod; ++}; ++ ++struct user_fpu_struct { ++ unsigned long fp_regs[16]; ++ unsigned long xfp_regs[16]; ++ unsigned long fpscr; ++ unsigned long fpul; ++}; ++ ++#define ELF_NGREG 23 ++typedef unsigned long elf_greg_t; ++typedef elf_greg_t elf_gregset_t[ELF_NGREG]; ++typedef struct user_fpu_struct elf_fpregset_t; ++ ++struct user { ++ struct pt_regs regs; ++ struct user_fpu_struct fpu; ++ int u_fpvalid; ++ unsigned long u_tsize; ++ unsigned long u_dsize; ++ unsigned long u_ssize; ++ unsigned long start_code; ++ unsigned long start_data; ++ unsigned long start_stack; ++ long int signal; ++ unsigned long u_ar0; ++ struct user_fpu_struct *u_fpstate; ++ unsigned long magic; ++ char u_comm[32]; ++}; +diff -Nur musl-0.9.15/arch/sh/crt_arch.h musl-git/arch/sh/crt_arch.h +--- musl-0.9.15/arch/sh/crt_arch.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/crt_arch.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,9 @@ ++__asm__("\ ++.global _start \n\ ++_start: \n\ ++ mov r15, r4 \n\ ++ mov #-16, r0 \n\ ++ and r0, r15 \n\ ++ bsr __cstart \n\ ++ nop \n\ ++"); +diff -Nur musl-0.9.15/arch/sh/pthread_arch.h musl-git/arch/sh/pthread_arch.h +--- musl-0.9.15/arch/sh/pthread_arch.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/pthread_arch.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,11 @@ ++static inline struct pthread *__pthread_self() ++{ ++ char *self; ++ __asm__ __volatile__ ("stc gbr,%0" : "=r" (self) ); ++ return (struct pthread *) (self + 8 - sizeof(struct pthread)); ++} ++ ++#define TLS_ABOVE_TP ++#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) - 8) ++ ++#define CANCEL_REG_IP 17 +diff -Nur musl-0.9.15/arch/sh/reloc.h musl-git/arch/sh/reloc.h +--- musl-0.9.15/arch/sh/reloc.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/reloc.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,47 @@ ++#if __BYTE_ORDER == __BIG_ENDIAN ++#define ENDIAN_SUFFIX "eb" ++#else ++#define ENDIAN_SUFFIX "" ++#endif ++ ++#define LDSO_ARCH "sh" ENDIAN_SUFFIX ++ ++#define IS_COPY(x) ((x) == R_SH_COPY) ++#define IS_PLT(x) ((x) == R_SH_JMP_SLOT) ++ ++static inline void do_single_reloc( ++ struct dso *self, unsigned char *base_addr, ++ size_t *reloc_addr, int type, size_t addend, ++ Sym *sym, size_t sym_size, ++ struct symdef def, size_t sym_val) ++{ ++ switch(type) { ++ case R_SH_GLOB_DAT: ++ case R_SH_JMP_SLOT: ++ *reloc_addr = sym_val; ++ break; ++ case R_SH_RELATIVE: ++ *reloc_addr = (size_t)base_addr + addend; ++ break; ++ case R_SH_DIR32: ++ *reloc_addr = sym_val + addend; ++ break; ++ case R_SH_REL32: ++ *reloc_addr = sym_val + addend - (size_t)reloc_addr + (size_t)base_addr; ++ break; ++ case R_SH_COPY: ++ memcpy(reloc_addr, (void *)sym_val, sym_size); ++ break; ++ case R_SH_TLS_DTPMOD32: ++ *reloc_addr += def.dso ? def.dso->tls_id : self->tls_id; ++ break; ++ case R_SH_TLS_DTPOFF32: ++ *reloc_addr += def.sym->st_value; ++ break; ++ case R_SH_TLS_TPOFF32: ++ *reloc_addr += def.sym ++ ? def.sym->st_value + def.dso->tls_offset + 8 ++ : self->tls_offset + 8; ++ break; ++ } ++} +diff -Nur musl-0.9.15/arch/sh/src/atomic.c musl-git/arch/sh/src/atomic.c +--- musl-0.9.15/arch/sh/src/atomic.c 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/src/atomic.c 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,146 @@ ++#include "libc.h" ++ ++#define LLSC_CLOBBERS "r0", "t", "memory" ++#define LLSC_START(mem) \ ++ "0: movli.l @" mem ", r0\n" ++#define LLSC_END(mem) \ ++ "1: movco.l r0, @" mem "\n" \ ++ " bf 0b\n" \ ++ " synco\n" ++ ++/* gusa is a hack in the kernel which lets you create a sequence of instructions ++ * which will be restarted if the process is preempted in the middle of the ++ * sequence. It will do for implementing atomics on non-smp systems. ABI is: ++ * r0 = address of first instruction after the atomic sequence ++ * r1 = original stack pointer ++ * r15 = -1 * length of atomic sequence in bytes ++ */ ++#define GUSA_CLOBBERS "r0", "r1", "memory" ++#define GUSA_START(mem,old,nop) \ ++ " .align 2\n" \ ++ " mova 1f, r0\n" \ ++ nop \ ++ " mov r15, r1\n" \ ++ " mov #(0f-1f), r15\n" \ ++ "0: mov.l @" mem ", " old "\n" ++/* the target of mova must be 4 byte aligned, so we may need a nop */ ++#define GUSA_START_ODD(mem,old) GUSA_START(mem,old,"") ++#define GUSA_START_EVEN(mem,old) GUSA_START(mem,old,"\tnop\n") ++#define GUSA_END(mem,new) \ ++ " mov.l " new ", @" mem "\n" \ ++ "1: mov r1, r15\n" ++ ++#define CPU_HAS_LLSC 0x0040 ++ ++int __sh_cas(volatile int *p, int t, int s) ++{ ++ int old; ++ if (__hwcap & CPU_HAS_LLSC) { ++ __asm__ __volatile__( ++ LLSC_START("%1") ++ " mov r0, %0\n" ++ " cmp/eq %0, %2\n" ++ " bf 1f\n" ++ " mov %3, r0\n" ++ LLSC_END("%1") ++ : "=&r"(old) : "r"(p), "r"(t), "r"(s) : LLSC_CLOBBERS); ++ } else { ++ __asm__ __volatile__( ++ GUSA_START_EVEN("%1", "%0") ++ " cmp/eq %0, %2\n" ++ " bf 1f\n" ++ GUSA_END("%1", "%3") ++ : "=&r"(old) : "r"(p), "r"(t), "r"(s) : GUSA_CLOBBERS, "t"); ++ } ++ return old; ++} ++ ++int __sh_swap(volatile int *x, int v) ++{ ++ int old; ++ if (__hwcap & CPU_HAS_LLSC) { ++ __asm__ __volatile__( ++ LLSC_START("%1") ++ " mov r0, %0\n" ++ " mov %2, r0\n" ++ LLSC_END("%1") ++ : "=&r"(old) : "r"(x), "r"(v) : LLSC_CLOBBERS); ++ } else { ++ __asm__ __volatile__( ++ GUSA_START_EVEN("%1", "%0") ++ GUSA_END("%1", "%2") ++ : "=&r"(old) : "r"(x), "r"(v) : GUSA_CLOBBERS); ++ } ++ return old; ++} ++ ++int __sh_fetch_add(volatile int *x, int v) ++{ ++ int old, dummy; ++ if (__hwcap & CPU_HAS_LLSC) { ++ __asm__ __volatile__( ++ LLSC_START("%1") ++ " mov r0, %0\n" ++ " add %2, r0\n" ++ LLSC_END("%1") ++ : "=&r"(old) : "r"(x), "r"(v) : LLSC_CLOBBERS); ++ } else { ++ __asm__ __volatile__( ++ GUSA_START_EVEN("%2", "%0") ++ " mov %0, %1\n" ++ " add %3, %1\n" ++ GUSA_END("%2", "%1") ++ : "=&r"(old), "=&r"(dummy) : "r"(x), "r"(v) : GUSA_CLOBBERS); ++ } ++ return old; ++} ++ ++void __sh_store(volatile int *p, int x) ++{ ++ if (__hwcap & CPU_HAS_LLSC) { ++ __asm__ __volatile__( ++ " mov.l %1, @%0\n" ++ " synco\n" ++ : : "r"(p), "r"(x) : "memory"); ++ } else { ++ __asm__ __volatile__( ++ " mov.l %1, @%0\n" ++ : : "r"(p), "r"(x) : "memory"); ++ } ++} ++ ++void __sh_and(volatile int *x, int v) ++{ ++ int dummy; ++ if (__hwcap & CPU_HAS_LLSC) { ++ __asm__ __volatile__( ++ LLSC_START("%0") ++ " and %1, r0\n" ++ LLSC_END("%0") ++ : : "r"(x), "r"(v) : LLSC_CLOBBERS); ++ } else { ++ __asm__ __volatile__( ++ GUSA_START_ODD("%1", "%0") ++ " and %2, %0\n" ++ GUSA_END("%1", "%0") ++ : "=&r"(dummy) : "r"(x), "r"(v) : GUSA_CLOBBERS); ++ } ++} ++ ++void __sh_or(volatile int *x, int v) ++{ ++ int dummy; ++ if (__hwcap & CPU_HAS_LLSC) { ++ __asm__ __volatile__( ++ LLSC_START("%0") ++ " or %1, r0\n" ++ LLSC_END("%0") ++ : : "r"(x), "r"(v) : LLSC_CLOBBERS); ++ } else { ++ __asm__ __volatile__( ++ GUSA_START_ODD("%1", "%0") ++ " or %2, %0\n" ++ GUSA_END("%1", "%0") ++ : "=&r"(dummy) : "r"(x), "r"(v) : GUSA_CLOBBERS); ++ } ++} +diff -Nur musl-0.9.15/arch/sh/src/__fpsrc_values.c musl-git/arch/sh/src/__fpsrc_values.c +--- musl-0.9.15/arch/sh/src/__fpsrc_values.c 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/src/__fpsrc_values.c 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,2 @@ ++/* used by gcc for switching the FPU between single and double precision */ ++const unsigned long __fpscr_values[2] = { 0, 0x80000 }; +diff -Nur musl-0.9.15/arch/sh/syscall_arch.h musl-git/arch/sh/syscall_arch.h +--- musl-0.9.15/arch/sh/syscall_arch.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/sh/syscall_arch.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,87 @@ ++#define __SYSCALL_LL_E(x) \ ++((union { long long ll; long l[2]; }){ .ll = x }).l[0], \ ++((union { long long ll; long l[2]; }){ .ll = x }).l[1] ++#define __SYSCALL_LL_O(x) __SYSCALL_LL_E((x)) ++ ++/* The extra OR instructions are to work around a hardware bug: ++ * http://documentation.renesas.com/doc/products/mpumcu/tu/tnsh7456ae.pdf ++ */ ++#define __asm_syscall(trapno, ...) do { \ ++ __asm__ __volatile__ ( \ ++ "trapa #" #trapno "\n" \ ++ "or r0, r0\n" \ ++ "or r0, r0\n" \ ++ "or r0, r0\n" \ ++ "or r0, r0\n" \ ++ "or r0, r0\n" \ ++ : "=r"(r0) : __VA_ARGS__ : "memory"); \ ++ return r0; \ ++ } while (0) ++ ++static inline long __syscall0(long n) ++{ ++ register long r3 __asm__("r3") = n; ++ register long r0 __asm__("r0"); ++ __asm_syscall(16, "r"(r3)); ++} ++ ++static inline long __syscall1(long n, long a) ++{ ++ register long r3 __asm__("r3") = n; ++ register long r4 __asm__("r4") = a; ++ register long r0 __asm__("r0"); ++ __asm_syscall(17, "r"(r3), "r"(r4)); ++} ++ ++static inline long __syscall2(long n, long a, long b) ++{ ++ register long r3 __asm__("r3") = n; ++ register long r4 __asm__("r4") = a; ++ register long r5 __asm__("r5") = b; ++ register long r0 __asm__("r0"); ++ __asm_syscall(18, "r"(r3), "r"(r4), "r"(r5)); ++} ++ ++static inline long __syscall3(long n, long a, long b, long c) ++{ ++ register long r3 __asm__("r3") = n; ++ register long r4 __asm__("r4") = a; ++ register long r5 __asm__("r5") = b; ++ register long r6 __asm__("r6") = c; ++ register long r0 __asm__("r0"); ++ __asm_syscall(19, "r"(r3), "r"(r4), "r"(r5), "r"(r6)); ++} ++ ++static inline long __syscall4(long n, long a, long b, long c, long d) ++{ ++ register long r3 __asm__("r3") = n; ++ register long r4 __asm__("r4") = a; ++ register long r5 __asm__("r5") = b; ++ register long r6 __asm__("r6") = c; ++ register long r7 __asm__("r7") = d; ++ register long r0 __asm__("r0"); ++ __asm_syscall(20, "r"(r3), "r"(r4), "r"(r5), "r"(r6), "r"(r7)); ++} ++ ++static inline long __syscall5(long n, long a, long b, long c, long d, long e) ++{ ++ register long r3 __asm__("r3") = n; ++ register long r4 __asm__("r4") = a; ++ register long r5 __asm__("r5") = b; ++ register long r6 __asm__("r6") = c; ++ register long r7 __asm__("r7") = d; ++ register long r0 __asm__("r0") = e; ++ __asm_syscall(21, "r"(r3), "r"(r4), "r"(r5), "r"(r6), "r"(r7), "0"(r0)); ++} ++ ++static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f) ++{ ++ register long r3 __asm__("r3") = n; ++ register long r4 __asm__("r4") = a; ++ register long r5 __asm__("r5") = b; ++ register long r6 __asm__("r6") = c; ++ register long r7 __asm__("r7") = d; ++ register long r0 __asm__("r0") = e; ++ register long r1 __asm__("r1") = f; ++ __asm_syscall(22, "r"(r3), "r"(r4), "r"(r5), "r"(r6), "r"(r7), "0"(r0), "r"(r1)); ++} +diff -Nur musl-0.9.15/arch/x32/atomic.h musl-git/arch/x32/atomic.h +--- musl-0.9.15/arch/x32/atomic.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/atomic.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,125 @@ ++#ifndef _INTERNAL_ATOMIC_H ++#define _INTERNAL_ATOMIC_H ++ ++#include ++ ++static inline int a_ctz_64(uint64_t x) ++{ ++ __asm__( "bsf %1,%0" : "=r"(x) : "r"(x) ); ++ return x; ++} ++ ++static inline int a_ctz_l(unsigned long x) ++{ ++ __asm__( "bsf %1,%0" : "=r"(x) : "r"(x) ); ++ return x; ++} ++ ++static inline void a_and_64(volatile uint64_t *p, uint64_t v) ++{ ++ __asm__( "lock ; and %1, %0" ++ : "=m"(*p) : "r"(v) : "memory" ); ++} ++ ++static inline void a_or_64(volatile uint64_t *p, uint64_t v) ++{ ++ __asm__( "lock ; or %1, %0" ++ : "=m"(*p) : "r"(v) : "memory" ); ++} ++ ++static inline void a_store_l(volatile void *p, long x) ++{ ++ __asm__( "mov %1, %0" : "=m"(*(long *)p) : "r"(x) : "memory" ); ++} ++ ++static inline void a_or_l(volatile void *p, long v) ++{ ++ __asm__( "lock ; or %1, %0" ++ : "=m"(*(long *)p) : "r"(v) : "memory" ); ++} ++ ++static inline void *a_cas_p(volatile void *p, void *t, void *s) ++{ ++ __asm__( "lock ; cmpxchg %3, %1" ++ : "=a"(t), "=m"(*(long *)p) : "a"(t), "r"(s) : "memory" ); ++ return t; ++} ++ ++static inline long a_cas_l(volatile void *p, long t, long s) ++{ ++ __asm__( "lock ; cmpxchg %3, %1" ++ : "=a"(t), "=m"(*(long *)p) : "a"(t), "r"(s) : "memory" ); ++ return t; ++} ++ ++static inline int a_cas(volatile int *p, int t, int s) ++{ ++ __asm__( "lock ; cmpxchg %3, %1" ++ : "=a"(t), "=m"(*p) : "a"(t), "r"(s) : "memory" ); ++ return t; ++} ++ ++static inline void *a_swap_p(void *volatile *x, void *v) ++{ ++ __asm__( "xchg %0, %1" : "=r"(v), "=m"(*(void **)x) : "0"(v) : "memory" ); ++ return v; ++} ++static inline long a_swap_l(volatile void *x, long v) ++{ ++ __asm__( "xchg %0, %1" : "=r"(v), "=m"(*(long *)x) : "0"(v) : "memory" ); ++ return v; ++} ++ ++static inline void a_or(volatile void *p, int v) ++{ ++ __asm__( "lock ; or %1, %0" ++ : "=m"(*(int *)p) : "r"(v) : "memory" ); ++} ++ ++static inline void a_and(volatile void *p, int v) ++{ ++ __asm__( "lock ; and %1, %0" ++ : "=m"(*(int *)p) : "r"(v) : "memory" ); ++} ++ ++static inline int a_swap(volatile int *x, int v) ++{ ++ __asm__( "xchg %0, %1" : "=r"(v), "=m"(*x) : "0"(v) : "memory" ); ++ return v; ++} ++ ++#define a_xchg a_swap ++ ++static inline int a_fetch_add(volatile int *x, int v) ++{ ++ __asm__( "lock ; xadd %0, %1" : "=r"(v), "=m"(*x) : "0"(v) : "memory" ); ++ return v; ++} ++ ++static inline void a_inc(volatile int *x) ++{ ++ __asm__( "lock ; incl %0" : "=m"(*x) : "m"(*x) : "memory" ); ++} ++ ++static inline void a_dec(volatile int *x) ++{ ++ __asm__( "lock ; decl %0" : "=m"(*x) : "m"(*x) : "memory" ); ++} ++ ++static inline void a_store(volatile int *p, int x) ++{ ++ __asm__( "mov %1, %0" : "=m"(*p) : "r"(x) : "memory" ); ++} ++ ++static inline void a_spin() ++{ ++ __asm__ __volatile__( "pause" : : : "memory" ); ++} ++ ++static inline void a_crash() ++{ ++ __asm__ __volatile__( "hlt" : : : "memory" ); ++} ++ ++ ++#endif +diff -Nur musl-0.9.15/arch/x32/bits/alltypes.h.in musl-git/arch/x32/bits/alltypes.h.in +--- musl-0.9.15/arch/x32/bits/alltypes.h.in 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/alltypes.h.in 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,28 @@ ++#define _Addr int ++#define _Int64 long long ++#define _Reg long long ++ ++TYPEDEF __builtin_va_list va_list; ++TYPEDEF __builtin_va_list __isoc_va_list; ++ ++#ifndef __cplusplus ++TYPEDEF long wchar_t; ++#endif ++TYPEDEF unsigned wint_t; ++ ++#if defined(__FLT_EVAL_METHOD__) && __FLT_EVAL_METHOD__ == 2 ++TYPEDEF long double float_t; ++TYPEDEF long double double_t; ++#else ++TYPEDEF float float_t; ++TYPEDEF double double_t; ++#endif ++ ++TYPEDEF long long time_t; ++TYPEDEF long long suseconds_t; ++ ++TYPEDEF struct { union { int __i[14]; unsigned long __s[7]; } __u; } pthread_attr_t; ++TYPEDEF struct { union { int __i[10]; void *__p[5]; } __u; } pthread_mutex_t; ++TYPEDEF struct { union { int __i[12]; void *__p[6]; } __u; } pthread_cond_t; ++TYPEDEF struct { union { int __i[14]; void *__p[7]; } __u; } pthread_rwlock_t; ++TYPEDEF struct { union { int __i[8]; void *__p[4]; } __u; } pthread_barrier_t; +diff -Nur musl-0.9.15/arch/x32/bits/endian.h musl-git/arch/x32/bits/endian.h +--- musl-0.9.15/arch/x32/bits/endian.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/endian.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1 @@ ++#define __BYTE_ORDER __LITTLE_ENDIAN +diff -Nur musl-0.9.15/arch/x32/bits/errno.h musl-git/arch/x32/bits/errno.h +--- musl-0.9.15/arch/x32/bits/errno.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/errno.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,134 @@ ++#define EPERM 1 ++#define ENOENT 2 ++#define ESRCH 3 ++#define EINTR 4 ++#define EIO 5 ++#define ENXIO 6 ++#define E2BIG 7 ++#define ENOEXEC 8 ++#define EBADF 9 ++#define ECHILD 10 ++#define EAGAIN 11 ++#define ENOMEM 12 ++#define EACCES 13 ++#define EFAULT 14 ++#define ENOTBLK 15 ++#define EBUSY 16 ++#define EEXIST 17 ++#define EXDEV 18 ++#define ENODEV 19 ++#define ENOTDIR 20 ++#define EISDIR 21 ++#define EINVAL 22 ++#define ENFILE 23 ++#define EMFILE 24 ++#define ENOTTY 25 ++#define ETXTBSY 26 ++#define EFBIG 27 ++#define ENOSPC 28 ++#define ESPIPE 29 ++#define EROFS 30 ++#define EMLINK 31 ++#define EPIPE 32 ++#define EDOM 33 ++#define ERANGE 34 ++#define EDEADLK 35 ++#define ENAMETOOLONG 36 ++#define ENOLCK 37 ++#define ENOSYS 38 ++#define ENOTEMPTY 39 ++#define ELOOP 40 ++#define EWOULDBLOCK EAGAIN ++#define ENOMSG 42 ++#define EIDRM 43 ++#define ECHRNG 44 ++#define EL2NSYNC 45 ++#define EL3HLT 46 ++#define EL3RST 47 ++#define ELNRNG 48 ++#define EUNATCH 49 ++#define ENOCSI 50 ++#define EL2HLT 51 ++#define EBADE 52 ++#define EBADR 53 ++#define EXFULL 54 ++#define ENOANO 55 ++#define EBADRQC 56 ++#define EBADSLT 57 ++#define EDEADLOCK EDEADLK ++#define EBFONT 59 ++#define ENOSTR 60 ++#define ENODATA 61 ++#define ETIME 62 ++#define ENOSR 63 ++#define ENONET 64 ++#define ENOPKG 65 ++#define EREMOTE 66 ++#define ENOLINK 67 ++#define EADV 68 ++#define ESRMNT 69 ++#define ECOMM 70 ++#define EPROTO 71 ++#define EMULTIHOP 72 ++#define EDOTDOT 73 ++#define EBADMSG 74 ++#define EOVERFLOW 75 ++#define ENOTUNIQ 76 ++#define EBADFD 77 ++#define EREMCHG 78 ++#define ELIBACC 79 ++#define ELIBBAD 80 ++#define ELIBSCN 81 ++#define ELIBMAX 82 ++#define ELIBEXEC 83 ++#define EILSEQ 84 ++#define ERESTART 85 ++#define ESTRPIPE 86 ++#define EUSERS 87 ++#define ENOTSOCK 88 ++#define EDESTADDRREQ 89 ++#define EMSGSIZE 90 ++#define EPROTOTYPE 91 ++#define ENOPROTOOPT 92 ++#define EPROTONOSUPPORT 93 ++#define ESOCKTNOSUPPORT 94 ++#define EOPNOTSUPP 95 ++#define ENOTSUP EOPNOTSUPP ++#define EPFNOSUPPORT 96 ++#define EAFNOSUPPORT 97 ++#define EADDRINUSE 98 ++#define EADDRNOTAVAIL 99 ++#define ENETDOWN 100 ++#define ENETUNREACH 101 ++#define ENETRESET 102 ++#define ECONNABORTED 103 ++#define ECONNRESET 104 ++#define ENOBUFS 105 ++#define EISCONN 106 ++#define ENOTCONN 107 ++#define ESHUTDOWN 108 ++#define ETOOMANYREFS 109 ++#define ETIMEDOUT 110 ++#define ECONNREFUSED 111 ++#define EHOSTDOWN 112 ++#define EHOSTUNREACH 113 ++#define EALREADY 114 ++#define EINPROGRESS 115 ++#define ESTALE 116 ++#define EUCLEAN 117 ++#define ENOTNAM 118 ++#define ENAVAIL 119 ++#define EISNAM 120 ++#define EREMOTEIO 121 ++#define EDQUOT 122 ++#define ENOMEDIUM 123 ++#define EMEDIUMTYPE 124 ++#define ECANCELED 125 ++#define ENOKEY 126 ++#define EKEYEXPIRED 127 ++#define EKEYREVOKED 128 ++#define EKEYREJECTED 129 ++#define EOWNERDEAD 130 ++#define ENOTRECOVERABLE 131 ++#define ERFKILL 132 ++#define EHWPOISON 133 +diff -Nur musl-0.9.15/arch/x32/bits/fcntl.h musl-git/arch/x32/bits/fcntl.h +--- musl-0.9.15/arch/x32/bits/fcntl.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/fcntl.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,39 @@ ++#define O_CREAT 0100 ++#define O_EXCL 0200 ++#define O_NOCTTY 0400 ++#define O_TRUNC 01000 ++#define O_APPEND 02000 ++#define O_NONBLOCK 04000 ++#define O_DSYNC 010000 ++#define O_SYNC 04010000 ++#define O_RSYNC 04010000 ++#define O_DIRECTORY 0200000 ++#define O_NOFOLLOW 0400000 ++#define O_CLOEXEC 02000000 ++ ++#define O_ASYNC 020000 ++#define O_DIRECT 040000 ++#define O_LARGEFILE 0 ++#define O_NOATIME 01000000 ++#define O_TMPFILE 020200000 ++#define O_NDELAY O_NONBLOCK ++ ++#define F_DUPFD 0 ++#define F_GETFD 1 ++#define F_SETFD 2 ++#define F_GETFL 3 ++#define F_SETFL 4 ++ ++#define F_SETOWN 8 ++#define F_GETOWN 9 ++#define F_SETSIG 10 ++#define F_GETSIG 11 ++ ++#define F_GETLK 5 ++#define F_SETLK 6 ++#define F_SETLKW 7 ++ ++#define F_SETOWN_EX 15 ++#define F_GETOWN_EX 16 ++ ++#define F_GETOWNER_UIDS 17 +diff -Nur musl-0.9.15/arch/x32/bits/fenv.h musl-git/arch/x32/bits/fenv.h +--- musl-0.9.15/arch/x32/bits/fenv.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/fenv.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,34 @@ ++#define FE_INVALID 1 ++#define __FE_DENORM 2 ++#define FE_DIVBYZERO 4 ++#define FE_OVERFLOW 8 ++#define FE_UNDERFLOW 16 ++#define FE_INEXACT 32 ++ ++#define FE_ALL_EXCEPT 63 ++ ++#define FE_TONEAREST 0 ++#define FE_DOWNWARD 0x400 ++#define FE_UPWARD 0x800 ++#define FE_TOWARDZERO 0xc00 ++ ++typedef unsigned short fexcept_t; ++ ++typedef struct { ++ unsigned short __control_word; ++ unsigned short __unused1; ++ unsigned short __status_word; ++ unsigned short __unused2; ++ unsigned short __tags; ++ unsigned short __unused3; ++ unsigned int __eip; ++ unsigned short __cs_selector; ++ unsigned int __opcode:11; ++ unsigned int __unused4:5; ++ unsigned int __data_offset; ++ unsigned short __data_selector; ++ unsigned short __unused5; ++ unsigned int __mxcsr; ++} fenv_t; ++ ++#define FE_DFL_ENV ((const fenv_t *) -1) +diff -Nur musl-0.9.15/arch/x32/bits/float.h musl-git/arch/x32/bits/float.h +--- musl-0.9.15/arch/x32/bits/float.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/float.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,21 @@ ++#define FLT_ROUNDS 1 ++#ifdef __FLT_EVAL_METHOD__ ++#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__ ++#else ++#define FLT_EVAL_METHOD 0 ++#endif ++ ++#define LDBL_TRUE_MIN 3.6451995318824746025e-4951L ++#define LDBL_MIN 3.3621031431120935063e-4932L ++#define LDBL_MAX 1.1897314953572317650e+4932L ++#define LDBL_EPSILON 1.0842021724855044340e-19L ++ ++#define LDBL_MANT_DIG 64 ++#define LDBL_MIN_EXP (-16381) ++#define LDBL_MAX_EXP 16384 ++ ++#define LDBL_DIG 18 ++#define LDBL_MIN_10_EXP (-4931) ++#define LDBL_MAX_10_EXP 4932 ++ ++#define DECIMAL_DIG 21 +diff -Nur musl-0.9.15/arch/x32/bits/ioctl.h musl-git/arch/x32/bits/ioctl.h +--- musl-0.9.15/arch/x32/bits/ioctl.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/ioctl.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,197 @@ ++#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) ) ++#define _IOC_NONE 0U ++#define _IOC_WRITE 1U ++#define _IOC_READ 2U ++ ++#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0) ++#define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c)) ++#define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c)) ++#define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c)) ++ ++#define TCGETS 0x5401 ++#define TCSETS 0x5402 ++#define TCSETSW 0x5403 ++#define TCSETSF 0x5404 ++#define TCGETA 0x5405 ++#define TCSETA 0x5406 ++#define TCSETAW 0x5407 ++#define TCSETAF 0x5408 ++#define TCSBRK 0x5409 ++#define TCXONC 0x540A ++#define TCFLSH 0x540B ++#define TIOCEXCL 0x540C ++#define TIOCNXCL 0x540D ++#define TIOCSCTTY 0x540E ++#define TIOCGPGRP 0x540F ++#define TIOCSPGRP 0x5410 ++#define TIOCOUTQ 0x5411 ++#define TIOCSTI 0x5412 ++#define TIOCGWINSZ 0x5413 ++#define TIOCSWINSZ 0x5414 ++#define TIOCMGET 0x5415 ++#define TIOCMBIS 0x5416 ++#define TIOCMBIC 0x5417 ++#define TIOCMSET 0x5418 ++#define TIOCGSOFTCAR 0x5419 ++#define TIOCSSOFTCAR 0x541A ++#define FIONREAD 0x541B ++#define TIOCINQ FIONREAD ++#define TIOCLINUX 0x541C ++#define TIOCCONS 0x541D ++#define TIOCGSERIAL 0x541E ++#define TIOCSSERIAL 0x541F ++#define TIOCPKT 0x5420 ++#define FIONBIO 0x5421 ++#define TIOCNOTTY 0x5422 ++#define TIOCSETD 0x5423 ++#define TIOCGETD 0x5424 ++#define TCSBRKP 0x5425 ++#define TIOCTTYGSTRUCT 0x5426 ++#define TIOCSBRK 0x5427 ++#define TIOCCBRK 0x5428 ++#define TIOCGSID 0x5429 ++#define TIOCGPTN 0x80045430 ++#define TIOCSPTLCK 0x40045431 ++#define TCGETX 0x5432 ++#define TCSETX 0x5433 ++#define TCSETXF 0x5434 ++#define TCSETXW 0x5435 ++ ++#define FIONCLEX 0x5450 ++#define FIOCLEX 0x5451 ++#define FIOASYNC 0x5452 ++#define TIOCSERCONFIG 0x5453 ++#define TIOCSERGWILD 0x5454 ++#define TIOCSERSWILD 0x5455 ++#define TIOCGLCKTRMIOS 0x5456 ++#define TIOCSLCKTRMIOS 0x5457 ++#define TIOCSERGSTRUCT 0x5458 ++#define TIOCSERGETLSR 0x5459 ++#define TIOCSERGETMULTI 0x545A ++#define TIOCSERSETMULTI 0x545B ++ ++#define TIOCMIWAIT 0x545C ++#define TIOCGICOUNT 0x545D ++#define TIOCGHAYESESP 0x545E ++#define TIOCSHAYESESP 0x545F ++#define FIOQSIZE 0x5460 ++ ++#define TIOCPKT_DATA 0 ++#define TIOCPKT_FLUSHREAD 1 ++#define TIOCPKT_FLUSHWRITE 2 ++#define TIOCPKT_STOP 4 ++#define TIOCPKT_START 8 ++#define TIOCPKT_NOSTOP 16 ++#define TIOCPKT_DOSTOP 32 ++#define TIOCPKT_IOCTL 64 ++ ++#define TIOCSER_TEMT 0x01 ++ ++struct winsize { ++ unsigned short ws_row; ++ unsigned short ws_col; ++ unsigned short ws_xpixel; ++ unsigned short ws_ypixel; ++}; ++ ++#define TIOCM_LE 0x001 ++#define TIOCM_DTR 0x002 ++#define TIOCM_RTS 0x004 ++#define TIOCM_ST 0x008 ++#define TIOCM_SR 0x010 ++#define TIOCM_CTS 0x020 ++#define TIOCM_CAR 0x040 ++#define TIOCM_RNG 0x080 ++#define TIOCM_DSR 0x100 ++#define TIOCM_CD TIOCM_CAR ++#define TIOCM_RI TIOCM_RNG ++#define TIOCM_OUT1 0x2000 ++#define TIOCM_OUT2 0x4000 ++#define TIOCM_LOOP 0x8000 ++#define TIOCM_MODEM_BITS TIOCM_OUT2 ++ ++#define N_TTY 0 ++#define N_SLIP 1 ++#define N_MOUSE 2 ++#define N_PPP 3 ++#define N_STRIP 4 ++#define N_AX25 5 ++#define N_X25 6 ++#define N_6PACK 7 ++#define N_MASC 8 ++#define N_R3964 9 ++#define N_PROFIBUS_FDL 10 ++#define N_IRDA 11 ++#define N_SMSBLOCK 12 ++#define N_HDLC 13 ++#define N_SYNC_PPP 14 ++#define N_HCI 15 ++ ++#define FIOSETOWN 0x8901 ++#define SIOCSPGRP 0x8902 ++#define FIOGETOWN 0x8903 ++#define SIOCGPGRP 0x8904 ++#define SIOCATMARK 0x8905 ++#define SIOCGSTAMP 0x8906 ++ ++#define SIOCADDRT 0x890B ++#define SIOCDELRT 0x890C ++#define SIOCRTMSG 0x890D ++ ++#define SIOCGIFNAME 0x8910 ++#define SIOCSIFLINK 0x8911 ++#define SIOCGIFCONF 0x8912 ++#define SIOCGIFFLAGS 0x8913 ++#define SIOCSIFFLAGS 0x8914 ++#define SIOCGIFADDR 0x8915 ++#define SIOCSIFADDR 0x8916 ++#define SIOCGIFDSTADDR 0x8917 ++#define SIOCSIFDSTADDR 0x8918 ++#define SIOCGIFBRDADDR 0x8919 ++#define SIOCSIFBRDADDR 0x891a ++#define SIOCGIFNETMASK 0x891b ++#define SIOCSIFNETMASK 0x891c ++#define SIOCGIFMETRIC 0x891d ++#define SIOCSIFMETRIC 0x891e ++#define SIOCGIFMEM 0x891f ++#define SIOCSIFMEM 0x8920 ++#define SIOCGIFMTU 0x8921 ++#define SIOCSIFMTU 0x8922 ++#define SIOCSIFHWADDR 0x8924 ++#define SIOCGIFENCAP 0x8925 ++#define SIOCSIFENCAP 0x8926 ++#define SIOCGIFHWADDR 0x8927 ++#define SIOCGIFSLAVE 0x8929 ++#define SIOCSIFSLAVE 0x8930 ++#define SIOCADDMULTI 0x8931 ++#define SIOCDELMULTI 0x8932 ++#define SIOCGIFINDEX 0x8933 ++#define SIOGIFINDEX SIOCGIFINDEX ++#define SIOCSIFPFLAGS 0x8934 ++#define SIOCGIFPFLAGS 0x8935 ++#define SIOCDIFADDR 0x8936 ++#define SIOCSIFHWBROADCAST 0x8937 ++#define SIOCGIFCOUNT 0x8938 ++ ++#define SIOCGIFBR 0x8940 ++#define SIOCSIFBR 0x8941 ++ ++#define SIOCGIFTXQLEN 0x8942 ++#define SIOCSIFTXQLEN 0x8943 ++ ++#define SIOCDARP 0x8953 ++#define SIOCGARP 0x8954 ++#define SIOCSARP 0x8955 ++ ++#define SIOCDRARP 0x8960 ++#define SIOCGRARP 0x8961 ++#define SIOCSRARP 0x8962 ++ ++#define SIOCGIFMAP 0x8970 ++#define SIOCSIFMAP 0x8971 ++ ++#define SIOCADDDLCI 0x8980 ++#define SIOCDELDLCI 0x8981 ++ ++#define SIOCDEVPRIVATE 0x89F0 ++#define SIOCPROTOPRIVATE 0x89E0 +diff -Nur musl-0.9.15/arch/x32/bits/io.h musl-git/arch/x32/bits/io.h +--- musl-0.9.15/arch/x32/bits/io.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/io.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,77 @@ ++static __inline void outb(unsigned char __val, unsigned short __port) ++{ ++ __asm__ volatile ("outb %0,%1" : : "a" (__val), "dN" (__port)); ++} ++ ++static __inline void outw(unsigned short __val, unsigned short __port) ++{ ++ __asm__ volatile ("outw %0,%1" : : "a" (__val), "dN" (__port)); ++} ++ ++static __inline void outl(unsigned int __val, unsigned short __port) ++{ ++ __asm__ volatile ("outl %0,%1" : : "a" (__val), "dN" (__port)); ++} ++ ++static __inline unsigned char inb(unsigned short __port) ++{ ++ unsigned char __val; ++ __asm__ volatile ("inb %1,%0" : "=a" (__val) : "dN" (__port)); ++ return __val; ++} ++ ++static __inline unsigned short inw(unsigned short __port) ++{ ++ unsigned short __val; ++ __asm__ volatile ("inw %1,%0" : "=a" (__val) : "dN" (__port)); ++ return __val; ++} ++ ++static __inline unsigned int inl(unsigned short __port) ++{ ++ unsigned int __val; ++ __asm__ volatile ("inl %1,%0" : "=a" (__val) : "dN" (__port)); ++ return __val; ++} ++ ++static __inline void outsb(unsigned short __port, const void *__buf, unsigned long __n) ++{ ++ __asm__ volatile ("cld; rep; outsb" ++ : "+S" (__buf), "+c" (__n) ++ : "d" (__port)); ++} ++ ++static __inline void outsw(unsigned short __port, const void *__buf, unsigned long __n) ++{ ++ __asm__ volatile ("cld; rep; outsw" ++ : "+S" (__buf), "+c" (__n) ++ : "d" (__port)); ++} ++ ++static __inline void outsl(unsigned short __port, const void *__buf, unsigned long __n) ++{ ++ __asm__ volatile ("cld; rep; outsl" ++ : "+S" (__buf), "+c"(__n) ++ : "d" (__port)); ++} ++ ++static __inline void insb(unsigned short __port, void *__buf, unsigned long __n) ++{ ++ __asm__ volatile ("cld; rep; insb" ++ : "+D" (__buf), "+c" (__n) ++ : "d" (__port)); ++} ++ ++static __inline void insw(unsigned short __port, void *__buf, unsigned long __n) ++{ ++ __asm__ volatile ("cld; rep; insw" ++ : "+D" (__buf), "+c" (__n) ++ : "d" (__port)); ++} ++ ++static __inline void insl(unsigned short __port, void *__buf, unsigned long __n) ++{ ++ __asm__ volatile ("cld; rep; insl" ++ : "+D" (__buf), "+c" (__n) ++ : "d" (__port)); ++} +diff -Nur musl-0.9.15/arch/x32/bits/ipc.h musl-git/arch/x32/bits/ipc.h +--- musl-0.9.15/arch/x32/bits/ipc.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/ipc.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,14 @@ ++struct ipc_perm ++{ ++ key_t __ipc_perm_key; ++ uid_t uid; ++ gid_t gid; ++ uid_t cuid; ++ gid_t cgid; ++ mode_t mode; ++ int __ipc_perm_seq; ++ long long __pad1; ++ long long __pad2; ++}; ++ ++#define IPC_64 0 +diff -Nur musl-0.9.15/arch/x32/bits/limits.h musl-git/arch/x32/bits/limits.h +--- musl-0.9.15/arch/x32/bits/limits.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/limits.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,8 @@ ++#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 ++ ++#define LONG_MAX 0x7fffffffL ++#define LLONG_MAX 0x7fffffffffffffffLL +diff -Nur musl-0.9.15/arch/x32/bits/mman.h musl-git/arch/x32/bits/mman.h +--- musl-0.9.15/arch/x32/bits/mman.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/mman.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,62 @@ ++#define MAP_FAILED ((void *) -1) ++ ++#define PROT_NONE 0 ++#define PROT_READ 1 ++#define PROT_WRITE 2 ++#define PROT_EXEC 4 ++#define PROT_GROWSDOWN 0x01000000 ++#define PROT_GROWSUP 0x02000000 ++ ++#define MAP_SHARED 0x01 ++#define MAP_PRIVATE 0x02 ++#define MAP_FIXED 0x10 ++ ++#define MAP_TYPE 0x0f ++#define MAP_FILE 0x00 ++#define MAP_ANON 0x20 ++#define MAP_ANONYMOUS MAP_ANON ++#define MAP_32BIT 0x40 ++#define MAP_NORESERVE 0x4000 ++#define MAP_GROWSDOWN 0x0100 ++#define MAP_DENYWRITE 0x0800 ++#define MAP_EXECUTABLE 0x1000 ++#define MAP_LOCKED 0x2000 ++#define MAP_POPULATE 0x8000 ++#define MAP_NONBLOCK 0x10000 ++#define MAP_STACK 0x20000 ++#define MAP_HUGETLB 0x40000 ++ ++#define POSIX_MADV_NORMAL 0 ++#define POSIX_MADV_RANDOM 1 ++#define POSIX_MADV_SEQUENTIAL 2 ++#define POSIX_MADV_WILLNEED 3 ++#define POSIX_MADV_DONTNEED 0 ++ ++#define MS_ASYNC 1 ++#define MS_INVALIDATE 2 ++#define MS_SYNC 4 ++ ++#define MCL_CURRENT 1 ++#define MCL_FUTURE 2 ++ ++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++#define MADV_NORMAL 0 ++#define MADV_RANDOM 1 ++#define MADV_SEQUENTIAL 2 ++#define MADV_WILLNEED 3 ++#define MADV_DONTNEED 4 ++#define MADV_REMOVE 9 ++#define MADV_DONTFORK 10 ++#define MADV_DOFORK 11 ++#define MADV_MERGEABLE 12 ++#define MADV_UNMERGEABLE 13 ++#define MADV_HUGEPAGE 14 ++#define MADV_NOHUGEPAGE 15 ++#define MADV_DONTDUMP 16 ++#define MADV_DODUMP 17 ++#define MADV_HWPOISON 100 ++#define MADV_SOFT_OFFLINE 101 ++ ++#define MREMAP_MAYMOVE 1 ++#define MREMAP_FIXED 2 ++#endif +diff -Nur musl-0.9.15/arch/x32/bits/msg.h musl-git/arch/x32/bits/msg.h +--- musl-0.9.15/arch/x32/bits/msg.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/msg.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,16 @@ ++struct msqid_ds ++{ ++ struct ipc_perm msg_perm; ++ time_t msg_stime; ++ time_t msg_rtime; ++ time_t msg_ctime; ++ unsigned long msg_cbytes; ++ long __unused1; ++ msgqnum_t msg_qnum; ++ long __unused2; ++ msglen_t msg_qbytes; ++ long __unused3; ++ pid_t msg_lspid; ++ pid_t msg_lrpid; ++ unsigned long long __unused[2]; ++}; +diff -Nur musl-0.9.15/arch/x32/bits/posix.h musl-git/arch/x32/bits/posix.h +--- musl-0.9.15/arch/x32/bits/posix.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/posix.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,2 @@ ++#define _POSIX_V6_LP64_OFF64 1 ++#define _POSIX_V7_LP64_OFF64 1 +diff -Nur musl-0.9.15/arch/x32/bits/reg.h musl-git/arch/x32/bits/reg.h +--- musl-0.9.15/arch/x32/bits/reg.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/reg.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,29 @@ ++#undef __WORDSIZE ++#define __WORDSIZE 32 ++#define R15 0 ++#define R14 1 ++#define R13 2 ++#define R12 3 ++#define RBP 4 ++#define RBX 5 ++#define R11 6 ++#define R10 7 ++#define R9 8 ++#define R8 9 ++#define RAX 10 ++#define RCX 11 ++#define RDX 12 ++#define RSI 13 ++#define RDI 14 ++#define ORIG_RAX 15 ++#define RIP 16 ++#define CS 17 ++#define EFLAGS 18 ++#define RSP 19 ++#define SS 20 ++#define FS_BASE 21 ++#define GS_BASE 22 ++#define DS 23 ++#define ES 24 ++#define FS 25 ++#define GS 26 +diff -Nur musl-0.9.15/arch/x32/bits/setjmp.h musl-git/arch/x32/bits/setjmp.h +--- musl-0.9.15/arch/x32/bits/setjmp.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/setjmp.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1 @@ ++typedef unsigned long long __jmp_buf[8]; +diff -Nur musl-0.9.15/arch/x32/bits/shm.h musl-git/arch/x32/bits/shm.h +--- musl-0.9.15/arch/x32/bits/shm.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/shm.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,33 @@ ++#define SHMLBA 4096 ++ ++struct shmid_ds ++{ ++ struct ipc_perm shm_perm; ++ size_t shm_segsz; ++ time_t shm_atime; ++ time_t shm_dtime; ++ time_t shm_ctime; ++ pid_t shm_cpid; ++ pid_t shm_lpid; ++ unsigned long shm_nattch; ++ unsigned long __pad0; ++ unsigned long long __pad1; ++ unsigned long long __pad2; ++}; ++ ++struct shminfo { ++ unsigned long shmmax, __pad0, shmmin, __pad1, shmmni, __pad2, ++ shmseg, __pad3, shmall, __pad4; ++ unsigned long long __unused[4]; ++}; ++ ++struct shm_info { ++ int __used_ids; ++ int __pad_ids; ++ unsigned long shm_tot, __pad0, shm_rss, __pad1, shm_swp, __pad2; ++ unsigned long __swap_attempts, __pad3, __swap_successes, __pad4; ++} ++#ifdef __GNUC__ ++__attribute__((__aligned__(8))) ++#endif ++; +diff -Nur musl-0.9.15/arch/x32/bits/signal.h musl-git/arch/x32/bits/signal.h +--- musl-0.9.15/arch/x32/bits/signal.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/signal.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,119 @@ ++#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ ++ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++ ++#ifdef _GNU_SOURCE ++#define REG_R8 0 ++#define REG_R9 1 ++#define REG_R10 2 ++#define REG_R11 3 ++#define REG_R12 4 ++#define REG_R13 5 ++#define REG_R14 6 ++#define REG_R15 7 ++#define REG_RDI 8 ++#define REG_RSI 9 ++#define REG_RBP 10 ++#define REG_RBX 11 ++#define REG_RDX 12 ++#define REG_RAX 13 ++#define REG_RCX 14 ++#define REG_RSP 15 ++#define REG_RIP 16 ++#define REG_EFL 17 ++#define REG_CSGSFS 18 ++#define REG_ERR 19 ++#define REG_TRAPNO 20 ++#define REG_OLDMASK 21 ++#define REG_CR2 22 ++#endif ++ ++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++typedef long long greg_t, gregset_t[23]; ++typedef struct _fpstate { ++ unsigned short cwd, swd, ftw, fop; ++ unsigned long long rip, rdp; ++ unsigned mxcsr, mxcr_mask; ++ struct { ++ unsigned short significand[4], exponent, padding[3]; ++ } _st[8]; ++ struct { ++ unsigned element[4]; ++ } _xmm[16]; ++ unsigned padding[24]; ++} *fpregset_t; ++struct sigcontext { ++ unsigned long long r8, r9, r10, r11, r12, r13, r14, r15; ++ unsigned long long rdi, rsi, rbp, rbx, rdx, rax, rcx, rsp, rip, eflags; ++ unsigned short cs, gs, fs, __pad0; ++ unsigned long long err, trapno, oldmask, cr2; ++ struct _fpstate *fpstate; ++ unsigned long long __reserved1[8]; ++}; ++typedef struct { ++ gregset_t gregs; ++ fpregset_t fpregs; ++ unsigned long long __reserved1[8]; ++} mcontext_t; ++#else ++typedef struct { ++ unsigned long long __space[32]; ++} mcontext_t; ++#endif ++ ++typedef struct __ucontext { ++ unsigned long uc_flags; ++ struct __ucontext *uc_link; ++ stack_t uc_stack; ++ mcontext_t uc_mcontext; ++ sigset_t uc_sigmask; ++ unsigned long long __fpregs_mem[64]; ++} ucontext_t; ++ ++#define SA_NOCLDSTOP 1 ++#define SA_NOCLDWAIT 2 ++#define SA_SIGINFO 4 ++#define SA_ONSTACK 0x08000000 ++#define SA_RESTART 0x10000000 ++#define SA_NODEFER 0x40000000 ++#define SA_RESETHAND 0x80000000 ++#define SA_RESTORER 0x04000000 ++ ++#endif ++ ++#define SIGHUP 1 ++#define SIGINT 2 ++#define SIGQUIT 3 ++#define SIGILL 4 ++#define SIGTRAP 5 ++#define SIGABRT 6 ++#define SIGIOT SIGABRT ++#define SIGBUS 7 ++#define SIGFPE 8 ++#define SIGKILL 9 ++#define SIGUSR1 10 ++#define SIGSEGV 11 ++#define SIGUSR2 12 ++#define SIGPIPE 13 ++#define SIGALRM 14 ++#define SIGTERM 15 ++#define SIGSTKFLT 16 ++#define SIGCHLD 17 ++#define SIGCONT 18 ++#define SIGSTOP 19 ++#define SIGTSTP 20 ++#define SIGTTIN 21 ++#define SIGTTOU 22 ++#define SIGURG 23 ++#define SIGXCPU 24 ++#define SIGXFSZ 25 ++#define SIGVTALRM 26 ++#define SIGPROF 27 ++#define SIGWINCH 28 ++#define SIGIO 29 ++#define SIGPOLL 29 ++#define SIGPWR 30 ++#define SIGSYS 31 ++#define SIGUNUSED SIGSYS ++ ++#define _NSIG 65 ++ +diff -Nur musl-0.9.15/arch/x32/bits/socket.h musl-git/arch/x32/bits/socket.h +--- musl-0.9.15/arch/x32/bits/socket.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/socket.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,18 @@ ++struct msghdr ++{ ++ void *msg_name; ++ socklen_t msg_namelen; ++ struct iovec *msg_iov; ++ int msg_iovlen, __pad1; ++ void *msg_control; ++ socklen_t msg_controllen, __pad2; ++ int msg_flags; ++}; ++ ++struct cmsghdr ++{ ++ socklen_t cmsg_len; ++ int __pad1; ++ int cmsg_level; ++ int cmsg_type; ++}; +diff -Nur musl-0.9.15/arch/x32/bits/statfs.h musl-git/arch/x32/bits/statfs.h +--- musl-0.9.15/arch/x32/bits/statfs.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/statfs.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,7 @@ ++struct statfs { ++ unsigned long f_type, f_bsize; ++ fsblkcnt_t f_blocks, f_bfree, f_bavail; ++ fsfilcnt_t f_files, f_ffree; ++ fsid_t f_fsid; ++ unsigned long f_namelen, f_frsize, f_flags, f_spare[4]; ++}; +diff -Nur musl-0.9.15/arch/x32/bits/stat.h musl-git/arch/x32/bits/stat.h +--- musl-0.9.15/arch/x32/bits/stat.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/stat.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,22 @@ ++/* copied from kernel definition, but with padding replaced ++ * by the corresponding correctly-sized userspace types. */ ++ ++struct stat { ++ dev_t st_dev; ++ ino_t st_ino; ++ nlink_t st_nlink; ++ ++ mode_t st_mode; ++ uid_t st_uid; ++ gid_t st_gid; ++ unsigned int __pad0; ++ dev_t st_rdev; ++ off_t st_size; ++ blksize_t st_blksize; ++ blkcnt_t st_blocks; ++ ++ struct timespec st_atim; ++ struct timespec st_mtim; ++ struct timespec st_ctim; ++ long long __unused[3]; ++}; +diff -Nur musl-0.9.15/arch/x32/bits/stdarg.h musl-git/arch/x32/bits/stdarg.h +--- musl-0.9.15/arch/x32/bits/stdarg.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/stdarg.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,4 @@ ++#define va_start(v,l) __builtin_va_start(v,l) ++#define va_end(v) __builtin_va_end(v) ++#define va_arg(v,l) __builtin_va_arg(v,l) ++#define va_copy(d,s) __builtin_va_copy(d,s) +diff -Nur musl-0.9.15/arch/x32/bits/stdint.h musl-git/arch/x32/bits/stdint.h +--- musl-0.9.15/arch/x32/bits/stdint.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/stdint.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,20 @@ ++typedef int32_t int_fast16_t; ++typedef int32_t int_fast32_t; ++typedef uint32_t uint_fast16_t; ++typedef uint32_t uint_fast32_t; ++ ++#define INT_FAST16_MIN INT32_MIN ++#define INT_FAST32_MIN INT32_MIN ++ ++#define INT_FAST16_MAX INT32_MAX ++#define INT_FAST32_MAX INT32_MAX ++ ++#define UINT_FAST16_MAX UINT32_MAX ++#define UINT_FAST32_MAX UINT32_MAX ++ ++#define INTPTR_MIN INT32_MIN ++#define INTPTR_MAX INT32_MAX ++#define UINTPTR_MAX UINT32_MAX ++#define PTRDIFF_MIN INT32_MIN ++#define PTRDIFF_MAX INT32_MAX ++#define SIZE_MAX UINT32_MAX +diff -Nur musl-0.9.15/arch/x32/bits/syscall.h musl-git/arch/x32/bits/syscall.h +--- musl-0.9.15/arch/x32/bits/syscall.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/syscall.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,634 @@ ++#define __X32_SYSCALL_BIT 0x40000000 ++#define __NR_read (__X32_SYSCALL_BIT + 0) ++#define __NR_write (__X32_SYSCALL_BIT + 1) ++#define __NR_open (__X32_SYSCALL_BIT + 2) ++#define __NR_close (__X32_SYSCALL_BIT + 3) ++#define __NR_stat (__X32_SYSCALL_BIT + 4) ++#define __NR_fstat (__X32_SYSCALL_BIT + 5) ++#define __NR_lstat (__X32_SYSCALL_BIT + 6) ++#define __NR_poll (__X32_SYSCALL_BIT + 7) ++#define __NR_lseek (__X32_SYSCALL_BIT + 8) ++#define __NR_mmap (__X32_SYSCALL_BIT + 9) ++#define __NR_mprotect (__X32_SYSCALL_BIT + 10) ++#define __NR_munmap (__X32_SYSCALL_BIT + 11) ++#define __NR_brk (__X32_SYSCALL_BIT + 12) ++#define __NR_rt_sigprocmask (__X32_SYSCALL_BIT + 14) ++#define __NR_pread64 (__X32_SYSCALL_BIT + 17) ++#define __NR_pwrite64 (__X32_SYSCALL_BIT + 18) ++#define __NR_access (__X32_SYSCALL_BIT + 21) ++#define __NR_pipe (__X32_SYSCALL_BIT + 22) ++#define __NR_select (__X32_SYSCALL_BIT + 23) ++#define __NR_sched_yield (__X32_SYSCALL_BIT + 24) ++#define __NR_mremap (__X32_SYSCALL_BIT + 25) ++#define __NR_msync (__X32_SYSCALL_BIT + 26) ++#define __NR_mincore (__X32_SYSCALL_BIT + 27) ++#define __NR_madvise (__X32_SYSCALL_BIT + 28) ++#define __NR_shmget (__X32_SYSCALL_BIT + 29) ++#define __NR_shmat (__X32_SYSCALL_BIT + 30) ++#define __NR_shmctl (__X32_SYSCALL_BIT + 31) ++#define __NR_dup (__X32_SYSCALL_BIT + 32) ++#define __NR_dup2 (__X32_SYSCALL_BIT + 33) ++#define __NR_pause (__X32_SYSCALL_BIT + 34) ++#define __NR_nanosleep (__X32_SYSCALL_BIT + 35) ++#define __NR_getitimer (__X32_SYSCALL_BIT + 36) ++#define __NR_alarm (__X32_SYSCALL_BIT + 37) ++#define __NR_setitimer (__X32_SYSCALL_BIT + 38) ++#define __NR_getpid (__X32_SYSCALL_BIT + 39) ++#define __NR_sendfile (__X32_SYSCALL_BIT + 40) ++#define __NR_socket (__X32_SYSCALL_BIT + 41) ++#define __NR_connect (__X32_SYSCALL_BIT + 42) ++#define __NR_accept (__X32_SYSCALL_BIT + 43) ++#define __NR_sendto (__X32_SYSCALL_BIT + 44) ++#define __NR_shutdown (__X32_SYSCALL_BIT + 48) ++#define __NR_bind (__X32_SYSCALL_BIT + 49) ++#define __NR_listen (__X32_SYSCALL_BIT + 50) ++#define __NR_getsockname (__X32_SYSCALL_BIT + 51) ++#define __NR_getpeername (__X32_SYSCALL_BIT + 52) ++#define __NR_socketpair (__X32_SYSCALL_BIT + 53) ++#define __NR_clone (__X32_SYSCALL_BIT + 56) ++#define __NR_fork (__X32_SYSCALL_BIT + 57) ++#define __NR_vfork (__X32_SYSCALL_BIT + 58) ++#define __NR_exit (__X32_SYSCALL_BIT + 60) ++#define __NR_wait4 (__X32_SYSCALL_BIT + 61) ++#define __NR_kill (__X32_SYSCALL_BIT + 62) ++#define __NR_uname (__X32_SYSCALL_BIT + 63) ++#define __NR_semget (__X32_SYSCALL_BIT + 64) ++#define __NR_semop (__X32_SYSCALL_BIT + 65) ++#define __NR_semctl (__X32_SYSCALL_BIT + 66) ++#define __NR_shmdt (__X32_SYSCALL_BIT + 67) ++#define __NR_msgget (__X32_SYSCALL_BIT + 68) ++#define __NR_msgsnd (__X32_SYSCALL_BIT + 69) ++#define __NR_msgrcv (__X32_SYSCALL_BIT + 70) ++#define __NR_msgctl (__X32_SYSCALL_BIT + 71) ++#define __NR_fcntl (__X32_SYSCALL_BIT + 72) ++#define __NR_flock (__X32_SYSCALL_BIT + 73) ++#define __NR_fsync (__X32_SYSCALL_BIT + 74) ++#define __NR_fdatasync (__X32_SYSCALL_BIT + 75) ++#define __NR_truncate (__X32_SYSCALL_BIT + 76) ++#define __NR_ftruncate (__X32_SYSCALL_BIT + 77) ++#define __NR_getdents (__X32_SYSCALL_BIT + 78) ++#define __NR_getcwd (__X32_SYSCALL_BIT + 79) ++#define __NR_chdir (__X32_SYSCALL_BIT + 80) ++#define __NR_fchdir (__X32_SYSCALL_BIT + 81) ++#define __NR_rename (__X32_SYSCALL_BIT + 82) ++#define __NR_mkdir (__X32_SYSCALL_BIT + 83) ++#define __NR_rmdir (__X32_SYSCALL_BIT + 84) ++#define __NR_creat (__X32_SYSCALL_BIT + 85) ++#define __NR_link (__X32_SYSCALL_BIT + 86) ++#define __NR_unlink (__X32_SYSCALL_BIT + 87) ++#define __NR_symlink (__X32_SYSCALL_BIT + 88) ++#define __NR_readlink (__X32_SYSCALL_BIT + 89) ++#define __NR_chmod (__X32_SYSCALL_BIT + 90) ++#define __NR_fchmod (__X32_SYSCALL_BIT + 91) ++#define __NR_chown (__X32_SYSCALL_BIT + 92) ++#define __NR_fchown (__X32_SYSCALL_BIT + 93) ++#define __NR_lchown (__X32_SYSCALL_BIT + 94) ++#define __NR_umask (__X32_SYSCALL_BIT + 95) ++#define __NR_gettimeofday (__X32_SYSCALL_BIT + 96) ++#define __NR_getrlimit (__X32_SYSCALL_BIT + 97) ++#define __NR_getrusage (__X32_SYSCALL_BIT + 98) ++#define __NR_sysinfo (__X32_SYSCALL_BIT + 99) ++#define __NR_times (__X32_SYSCALL_BIT + 100) ++#define __NR_getuid (__X32_SYSCALL_BIT + 102) ++#define __NR_syslog (__X32_SYSCALL_BIT + 103) ++#define __NR_getgid (__X32_SYSCALL_BIT + 104) ++#define __NR_setuid (__X32_SYSCALL_BIT + 105) ++#define __NR_setgid (__X32_SYSCALL_BIT + 106) ++#define __NR_geteuid (__X32_SYSCALL_BIT + 107) ++#define __NR_getegid (__X32_SYSCALL_BIT + 108) ++#define __NR_setpgid (__X32_SYSCALL_BIT + 109) ++#define __NR_getppid (__X32_SYSCALL_BIT + 110) ++#define __NR_getpgrp (__X32_SYSCALL_BIT + 111) ++#define __NR_setsid (__X32_SYSCALL_BIT + 112) ++#define __NR_setreuid (__X32_SYSCALL_BIT + 113) ++#define __NR_setregid (__X32_SYSCALL_BIT + 114) ++#define __NR_getgroups (__X32_SYSCALL_BIT + 115) ++#define __NR_setgroups (__X32_SYSCALL_BIT + 116) ++#define __NR_setresuid (__X32_SYSCALL_BIT + 117) ++#define __NR_getresuid (__X32_SYSCALL_BIT + 118) ++#define __NR_setresgid (__X32_SYSCALL_BIT + 119) ++#define __NR_getresgid (__X32_SYSCALL_BIT + 120) ++#define __NR_getpgid (__X32_SYSCALL_BIT + 121) ++#define __NR_setfsuid (__X32_SYSCALL_BIT + 122) ++#define __NR_setfsgid (__X32_SYSCALL_BIT + 123) ++#define __NR_getsid (__X32_SYSCALL_BIT + 124) ++#define __NR_capget (__X32_SYSCALL_BIT + 125) ++#define __NR_capset (__X32_SYSCALL_BIT + 126) ++#define __NR_rt_sigsuspend (__X32_SYSCALL_BIT + 130) ++#define __NR_utime (__X32_SYSCALL_BIT + 132) ++#define __NR_mknod (__X32_SYSCALL_BIT + 133) ++#define __NR_personality (__X32_SYSCALL_BIT + 135) ++#define __NR_ustat (__X32_SYSCALL_BIT + 136) ++#define __NR_statfs (__X32_SYSCALL_BIT + 137) ++#define __NR_fstatfs (__X32_SYSCALL_BIT + 138) ++#define __NR_sysfs (__X32_SYSCALL_BIT + 139) ++#define __NR_getpriority (__X32_SYSCALL_BIT + 140) ++#define __NR_setpriority (__X32_SYSCALL_BIT + 141) ++#define __NR_sched_setparam (__X32_SYSCALL_BIT + 142) ++#define __NR_sched_getparam (__X32_SYSCALL_BIT + 143) ++#define __NR_sched_setscheduler (__X32_SYSCALL_BIT + 144) ++#define __NR_sched_getscheduler (__X32_SYSCALL_BIT + 145) ++#define __NR_sched_get_priority_max (__X32_SYSCALL_BIT + 146) ++#define __NR_sched_get_priority_min (__X32_SYSCALL_BIT + 147) ++#define __NR_sched_rr_get_interval (__X32_SYSCALL_BIT + 148) ++#define __NR_mlock (__X32_SYSCALL_BIT + 149) ++#define __NR_munlock (__X32_SYSCALL_BIT + 150) ++#define __NR_mlockall (__X32_SYSCALL_BIT + 151) ++#define __NR_munlockall (__X32_SYSCALL_BIT + 152) ++#define __NR_vhangup (__X32_SYSCALL_BIT + 153) ++#define __NR_modify_ldt (__X32_SYSCALL_BIT + 154) ++#define __NR_pivot_root (__X32_SYSCALL_BIT + 155) ++#define __NR_prctl (__X32_SYSCALL_BIT + 157) ++#define __NR_arch_prctl (__X32_SYSCALL_BIT + 158) ++#define __NR_adjtimex (__X32_SYSCALL_BIT + 159) ++#define __NR_setrlimit (__X32_SYSCALL_BIT + 160) ++#define __NR_chroot (__X32_SYSCALL_BIT + 161) ++#define __NR_sync (__X32_SYSCALL_BIT + 162) ++#define __NR_acct (__X32_SYSCALL_BIT + 163) ++#define __NR_settimeofday (__X32_SYSCALL_BIT + 164) ++#define __NR_mount (__X32_SYSCALL_BIT + 165) ++#define __NR_umount2 (__X32_SYSCALL_BIT + 166) ++#define __NR_swapon (__X32_SYSCALL_BIT + 167) ++#define __NR_swapoff (__X32_SYSCALL_BIT + 168) ++#define __NR_reboot (__X32_SYSCALL_BIT + 169) ++#define __NR_sethostname (__X32_SYSCALL_BIT + 170) ++#define __NR_setdomainname (__X32_SYSCALL_BIT + 171) ++#define __NR_iopl (__X32_SYSCALL_BIT + 172) ++#define __NR_ioperm (__X32_SYSCALL_BIT + 173) ++#define __NR_init_module (__X32_SYSCALL_BIT + 175) ++#define __NR_delete_module (__X32_SYSCALL_BIT + 176) ++#define __NR_quotactl (__X32_SYSCALL_BIT + 179) ++#define __NR_getpmsg (__X32_SYSCALL_BIT + 181) ++#define __NR_putpmsg (__X32_SYSCALL_BIT + 182) ++#define __NR_afs_syscall (__X32_SYSCALL_BIT + 183) ++#define __NR_tuxcall (__X32_SYSCALL_BIT + 184) ++#define __NR_security (__X32_SYSCALL_BIT + 185) ++#define __NR_gettid (__X32_SYSCALL_BIT + 186) ++#define __NR_readahead (__X32_SYSCALL_BIT + 187) ++#define __NR_setxattr (__X32_SYSCALL_BIT + 188) ++#define __NR_lsetxattr (__X32_SYSCALL_BIT + 189) ++#define __NR_fsetxattr (__X32_SYSCALL_BIT + 190) ++#define __NR_getxattr (__X32_SYSCALL_BIT + 191) ++#define __NR_lgetxattr (__X32_SYSCALL_BIT + 192) ++#define __NR_fgetxattr (__X32_SYSCALL_BIT + 193) ++#define __NR_listxattr (__X32_SYSCALL_BIT + 194) ++#define __NR_llistxattr (__X32_SYSCALL_BIT + 195) ++#define __NR_flistxattr (__X32_SYSCALL_BIT + 196) ++#define __NR_removexattr (__X32_SYSCALL_BIT + 197) ++#define __NR_lremovexattr (__X32_SYSCALL_BIT + 198) ++#define __NR_fremovexattr (__X32_SYSCALL_BIT + 199) ++#define __NR_tkill (__X32_SYSCALL_BIT + 200) ++#define __NR_time (__X32_SYSCALL_BIT + 201) ++#define __NR_futex (__X32_SYSCALL_BIT + 202) ++#define __NR_sched_setaffinity (__X32_SYSCALL_BIT + 203) ++#define __NR_sched_getaffinity (__X32_SYSCALL_BIT + 204) ++#define __NR_io_setup (__X32_SYSCALL_BIT + 206) ++#define __NR_io_destroy (__X32_SYSCALL_BIT + 207) ++#define __NR_io_getevents (__X32_SYSCALL_BIT + 208) ++#define __NR_io_submit (__X32_SYSCALL_BIT + 209) ++#define __NR_io_cancel (__X32_SYSCALL_BIT + 210) ++#define __NR_lookup_dcookie (__X32_SYSCALL_BIT + 212) ++#define __NR_epoll_create (__X32_SYSCALL_BIT + 213) ++#define __NR_remap_file_pages (__X32_SYSCALL_BIT + 216) ++#define __NR_getdents64 (__X32_SYSCALL_BIT + 217) ++#define __NR_set_tid_address (__X32_SYSCALL_BIT + 218) ++#define __NR_restart_syscall (__X32_SYSCALL_BIT + 219) ++#define __NR_semtimedop (__X32_SYSCALL_BIT + 220) ++#define __NR_fadvise64 (__X32_SYSCALL_BIT + 221) ++#define __NR_timer_settime (__X32_SYSCALL_BIT + 223) ++#define __NR_timer_gettime (__X32_SYSCALL_BIT + 224) ++#define __NR_timer_getoverrun (__X32_SYSCALL_BIT + 225) ++#define __NR_timer_delete (__X32_SYSCALL_BIT + 226) ++#define __NR_clock_settime (__X32_SYSCALL_BIT + 227) ++#define __NR_clock_gettime (__X32_SYSCALL_BIT + 228) ++#define __NR_clock_getres (__X32_SYSCALL_BIT + 229) ++#define __NR_clock_nanosleep (__X32_SYSCALL_BIT + 230) ++#define __NR_exit_group (__X32_SYSCALL_BIT + 231) ++#define __NR_epoll_wait (__X32_SYSCALL_BIT + 232) ++#define __NR_epoll_ctl (__X32_SYSCALL_BIT + 233) ++#define __NR_tgkill (__X32_SYSCALL_BIT + 234) ++#define __NR_utimes (__X32_SYSCALL_BIT + 235) ++#define __NR_mbind (__X32_SYSCALL_BIT + 237) ++#define __NR_set_mempolicy (__X32_SYSCALL_BIT + 238) ++#define __NR_get_mempolicy (__X32_SYSCALL_BIT + 239) ++#define __NR_mq_open (__X32_SYSCALL_BIT + 240) ++#define __NR_mq_unlink (__X32_SYSCALL_BIT + 241) ++#define __NR_mq_timedsend (__X32_SYSCALL_BIT + 242) ++#define __NR_mq_timedreceive (__X32_SYSCALL_BIT + 243) ++#define __NR_mq_getsetattr (__X32_SYSCALL_BIT + 245) ++#define __NR_add_key (__X32_SYSCALL_BIT + 248) ++#define __NR_request_key (__X32_SYSCALL_BIT + 249) ++#define __NR_keyctl (__X32_SYSCALL_BIT + 250) ++#define __NR_ioprio_set (__X32_SYSCALL_BIT + 251) ++#define __NR_ioprio_get (__X32_SYSCALL_BIT + 252) ++#define __NR_inotify_init (__X32_SYSCALL_BIT + 253) ++#define __NR_inotify_add_watch (__X32_SYSCALL_BIT + 254) ++#define __NR_inotify_rm_watch (__X32_SYSCALL_BIT + 255) ++#define __NR_migrate_pages (__X32_SYSCALL_BIT + 256) ++#define __NR_openat (__X32_SYSCALL_BIT + 257) ++#define __NR_mkdirat (__X32_SYSCALL_BIT + 258) ++#define __NR_mknodat (__X32_SYSCALL_BIT + 259) ++#define __NR_fchownat (__X32_SYSCALL_BIT + 260) ++#define __NR_futimesat (__X32_SYSCALL_BIT + 261) ++#define __NR_newfstatat (__X32_SYSCALL_BIT + 262) ++#define __NR_unlinkat (__X32_SYSCALL_BIT + 263) ++#define __NR_renameat (__X32_SYSCALL_BIT + 264) ++#define __NR_linkat (__X32_SYSCALL_BIT + 265) ++#define __NR_symlinkat (__X32_SYSCALL_BIT + 266) ++#define __NR_readlinkat (__X32_SYSCALL_BIT + 267) ++#define __NR_fchmodat (__X32_SYSCALL_BIT + 268) ++#define __NR_faccessat (__X32_SYSCALL_BIT + 269) ++#define __NR_pselect6 (__X32_SYSCALL_BIT + 270) ++#define __NR_ppoll (__X32_SYSCALL_BIT + 271) ++#define __NR_unshare (__X32_SYSCALL_BIT + 272) ++#define __NR_splice (__X32_SYSCALL_BIT + 275) ++#define __NR_tee (__X32_SYSCALL_BIT + 276) ++#define __NR_sync_file_range (__X32_SYSCALL_BIT + 277) ++#define __NR_utimensat (__X32_SYSCALL_BIT + 280) ++#define __NR_epoll_pwait (__X32_SYSCALL_BIT + 281) ++#define __NR_signalfd (__X32_SYSCALL_BIT + 282) ++#define __NR_timerfd_create (__X32_SYSCALL_BIT + 283) ++#define __NR_eventfd (__X32_SYSCALL_BIT + 284) ++#define __NR_fallocate (__X32_SYSCALL_BIT + 285) ++#define __NR_timerfd_settime (__X32_SYSCALL_BIT + 286) ++#define __NR_timerfd_gettime (__X32_SYSCALL_BIT + 287) ++#define __NR_accept4 (__X32_SYSCALL_BIT + 288) ++#define __NR_signalfd4 (__X32_SYSCALL_BIT + 289) ++#define __NR_eventfd2 (__X32_SYSCALL_BIT + 290) ++#define __NR_epoll_create1 (__X32_SYSCALL_BIT + 291) ++#define __NR_dup3 (__X32_SYSCALL_BIT + 292) ++#define __NR_pipe2 (__X32_SYSCALL_BIT + 293) ++#define __NR_inotify_init1 (__X32_SYSCALL_BIT + 294) ++#define __NR_perf_event_open (__X32_SYSCALL_BIT + 298) ++#define __NR_fanotify_init (__X32_SYSCALL_BIT + 300) ++#define __NR_fanotify_mark (__X32_SYSCALL_BIT + 301) ++#define __NR_prlimit64 (__X32_SYSCALL_BIT + 302) ++#define __NR_name_to_handle_at (__X32_SYSCALL_BIT + 303) ++#define __NR_open_by_handle_at (__X32_SYSCALL_BIT + 304) ++#define __NR_clock_adjtime (__X32_SYSCALL_BIT + 305) ++#define __NR_syncfs (__X32_SYSCALL_BIT + 306) ++#define __NR_setns (__X32_SYSCALL_BIT + 308) ++#define __NR_getcpu (__X32_SYSCALL_BIT + 309) ++#define __NR_kcmp (__X32_SYSCALL_BIT + 312) ++#define __NR_finit_module (__X32_SYSCALL_BIT + 313) ++#define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512) ++#define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513) ++#define __NR_ioctl (__X32_SYSCALL_BIT + 514) ++#define __NR_readv (__X32_SYSCALL_BIT + 515) ++#define __NR_writev (__X32_SYSCALL_BIT + 516) ++#define __NR_recvfrom (__X32_SYSCALL_BIT + 517) ++#define __NR_sendmsg (__X32_SYSCALL_BIT + 518) ++#define __NR_recvmsg (__X32_SYSCALL_BIT + 519) ++#define __NR_execve (__X32_SYSCALL_BIT + 520) ++#define __NR_ptrace (__X32_SYSCALL_BIT + 521) ++#define __NR_rt_sigpending (__X32_SYSCALL_BIT + 522) ++#define __NR_rt_sigtimedwait (__X32_SYSCALL_BIT + 523) ++#define __NR_rt_sigqueueinfo (__X32_SYSCALL_BIT + 524) ++#define __NR_sigaltstack (__X32_SYSCALL_BIT + 525) ++#define __NR_timer_create (__X32_SYSCALL_BIT + 526) ++#define __NR_mq_notify (__X32_SYSCALL_BIT + 527) ++#define __NR_kexec_load (__X32_SYSCALL_BIT + 528) ++#define __NR_waitid (__X32_SYSCALL_BIT + 529) ++#define __NR_set_robust_list (__X32_SYSCALL_BIT + 530) ++#define __NR_get_robust_list (__X32_SYSCALL_BIT + 531) ++#define __NR_vmsplice (__X32_SYSCALL_BIT + 532) ++#define __NR_move_pages (__X32_SYSCALL_BIT + 533) ++#define __NR_preadv (__X32_SYSCALL_BIT + 534) ++#define __NR_pwritev (__X32_SYSCALL_BIT + 535) ++#define __NR_rt_tgsigqueueinfo (__X32_SYSCALL_BIT + 536) ++#define __NR_recvmmsg (__X32_SYSCALL_BIT + 537) ++#define __NR_sendmmsg (__X32_SYSCALL_BIT + 538) ++#define __NR_process_vm_readv (__X32_SYSCALL_BIT + 539) ++#define __NR_process_vm_writev (__X32_SYSCALL_BIT + 540) ++#define __NR_setsockopt (__X32_SYSCALL_BIT + 541) ++#define __NR_getsockopt (__X32_SYSCALL_BIT + 542) ++ ++#undef __NR_fstatat ++#undef __NR_pread ++#undef __NR_pwrite ++#undef __NR_getdents ++#define __NR_fstatat __NR_newfstatat ++#define __NR_pread __NR_pread64 ++#define __NR_pwrite __NR_pwrite64 ++#define __NR_getdents __NR_getdents64 ++#define __NR_fadvise __NR_fadvise64 ++ ++ ++ ++/* Repeat with SYS_ prefix */ ++ ++ ++ ++#define SYS_read __NR_read ++#define SYS_write __NR_write ++#define SYS_open __NR_open ++#define SYS_close __NR_close ++#define SYS_stat __NR_stat ++#define SYS_fstat __NR_fstat ++#define SYS_lstat __NR_lstat ++#define SYS_poll __NR_poll ++#define SYS_lseek __NR_lseek ++#define SYS_mmap __NR_mmap ++#define SYS_mprotect __NR_mprotect ++#define SYS_munmap __NR_munmap ++#define SYS_brk __NR_brk ++#define SYS_rt_sigprocmask __NR_rt_sigprocmask ++#define SYS_pread64 __NR_pread64 ++#define SYS_pwrite64 __NR_pwrite64 ++#define SYS_access __NR_access ++#define SYS_pipe __NR_pipe ++#define SYS_select __NR_select ++#define SYS_sched_yield __NR_sched_yield ++#define SYS_mremap __NR_mremap ++#define SYS_msync __NR_msync ++#define SYS_mincore __NR_mincore ++#define SYS_madvise __NR_madvise ++#define SYS_shmget __NR_shmget ++#define SYS_shmat __NR_shmat ++#define SYS_shmctl __NR_shmctl ++#define SYS_dup __NR_dup ++#define SYS_dup2 __NR_dup2 ++#define SYS_pause __NR_pause ++#define SYS_nanosleep __NR_nanosleep ++#define SYS_getitimer __NR_getitimer ++#define SYS_alarm __NR_alarm ++#define SYS_setitimer __NR_setitimer ++#define SYS_getpid __NR_getpid ++#define SYS_sendfile __NR_sendfile ++#define SYS_socket __NR_socket ++#define SYS_connect __NR_connect ++#define SYS_accept __NR_accept ++#define SYS_sendto __NR_sendto ++#define SYS_shutdown __NR_shutdown ++#define SYS_bind __NR_bind ++#define SYS_listen __NR_listen ++#define SYS_getsockname __NR_getsockname ++#define SYS_getpeername __NR_getpeername ++#define SYS_socketpair __NR_socketpair ++#define SYS_clone __NR_clone ++#define SYS_fork __NR_fork ++#define SYS_vfork __NR_vfork ++#define SYS_exit __NR_exit ++#define SYS_wait4 __NR_wait4 ++#define SYS_kill __NR_kill ++#define SYS_uname __NR_uname ++#define SYS_semget __NR_semget ++#define SYS_semop __NR_semop ++#define SYS_semctl __NR_semctl ++#define SYS_shmdt __NR_shmdt ++#define SYS_msgget __NR_msgget ++#define SYS_msgsnd __NR_msgsnd ++#define SYS_msgrcv __NR_msgrcv ++#define SYS_msgctl __NR_msgctl ++#define SYS_fcntl __NR_fcntl ++#define SYS_flock __NR_flock ++#define SYS_fsync __NR_fsync ++#define SYS_fdatasync __NR_fdatasync ++#define SYS_truncate __NR_truncate ++#define SYS_ftruncate __NR_ftruncate ++#define SYS_getdents __NR_getdents ++#define SYS_getcwd __NR_getcwd ++#define SYS_chdir __NR_chdir ++#define SYS_fchdir __NR_fchdir ++#define SYS_rename __NR_rename ++#define SYS_mkdir __NR_mkdir ++#define SYS_rmdir __NR_rmdir ++#define SYS_creat __NR_creat ++#define SYS_link __NR_link ++#define SYS_unlink __NR_unlink ++#define SYS_symlink __NR_symlink ++#define SYS_readlink __NR_readlink ++#define SYS_chmod __NR_chmod ++#define SYS_fchmod __NR_fchmod ++#define SYS_chown __NR_chown ++#define SYS_fchown __NR_fchown ++#define SYS_lchown __NR_lchown ++#define SYS_umask __NR_umask ++#define SYS_gettimeofday __NR_gettimeofday ++#define SYS_getrlimit __NR_getrlimit ++#define SYS_getrusage __NR_getrusage ++#define SYS_sysinfo __NR_sysinfo ++#define SYS_times __NR_times ++#define SYS_getuid __NR_getuid ++#define SYS_syslog __NR_syslog ++#define SYS_getgid __NR_getgid ++#define SYS_setuid __NR_setuid ++#define SYS_setgid __NR_setgid ++#define SYS_geteuid __NR_geteuid ++#define SYS_getegid __NR_getegid ++#define SYS_setpgid __NR_setpgid ++#define SYS_getppid __NR_getppid ++#define SYS_getpgrp __NR_getpgrp ++#define SYS_setsid __NR_setsid ++#define SYS_setreuid __NR_setreuid ++#define SYS_setregid __NR_setregid ++#define SYS_getgroups __NR_getgroups ++#define SYS_setgroups __NR_setgroups ++#define SYS_setresuid __NR_setresuid ++#define SYS_getresuid __NR_getresuid ++#define SYS_setresgid __NR_setresgid ++#define SYS_getresgid __NR_getresgid ++#define SYS_getpgid __NR_getpgid ++#define SYS_setfsuid __NR_setfsuid ++#define SYS_setfsgid __NR_setfsgid ++#define SYS_getsid __NR_getsid ++#define SYS_capget __NR_capget ++#define SYS_capset __NR_capset ++#define SYS_rt_sigsuspend __NR_rt_sigsuspend ++#define SYS_utime __NR_utime ++#define SYS_mknod __NR_mknod ++#define SYS_personality __NR_personality ++#define SYS_ustat __NR_ustat ++#define SYS_statfs __NR_statfs ++#define SYS_fstatfs __NR_fstatfs ++#define SYS_sysfs __NR_sysfs ++#define SYS_getpriority __NR_getpriority ++#define SYS_setpriority __NR_setpriority ++#define SYS_sched_setparam __NR_sched_setparam ++#define SYS_sched_getparam __NR_sched_getparam ++#define SYS_sched_setscheduler __NR_sched_setscheduler ++#define SYS_sched_getscheduler __NR_sched_getscheduler ++#define SYS_sched_get_priority_max __NR_sched_get_priority_max ++#define SYS_sched_get_priority_min __NR_sched_get_priority_min ++#define SYS_sched_rr_get_interval __NR_sched_rr_get_interval ++#define SYS_mlock __NR_mlock ++#define SYS_munlock __NR_munlock ++#define SYS_mlockall __NR_mlockall ++#define SYS_munlockall __NR_munlockall ++#define SYS_vhangup __NR_vhangup ++#define SYS_modify_ldt __NR_modify_ldt ++#define SYS_pivot_root __NR_pivot_root ++#define SYS_prctl __NR_prctl ++#define SYS_arch_prctl __NR_arch_prctl ++#define SYS_adjtimex __NR_adjtimex ++#define SYS_setrlimit __NR_setrlimit ++#define SYS_chroot __NR_chroot ++#define SYS_sync __NR_sync ++#define SYS_acct __NR_acct ++#define SYS_settimeofday __NR_settimeofday ++#define SYS_mount __NR_mount ++#define SYS_umount2 __NR_umount2 ++#define SYS_swapon __NR_swapon ++#define SYS_swapoff __NR_swapoff ++#define SYS_reboot __NR_reboot ++#define SYS_sethostname __NR_sethostname ++#define SYS_setdomainname __NR_setdomainname ++#define SYS_iopl __NR_iopl ++#define SYS_ioperm __NR_ioperm ++#define SYS_init_module __NR_init_module ++#define SYS_delete_module __NR_delete_module ++#define SYS_quotactl __NR_quotactl ++#define SYS_getpmsg __NR_getpmsg ++#define SYS_putpmsg __NR_putpmsg ++#define SYS_afs_syscall __NR_afs_syscall ++#define SYS_tuxcall __NR_tuxcall ++#define SYS_security __NR_security ++#define SYS_gettid __NR_gettid ++#define SYS_readahead __NR_readahead ++#define SYS_setxattr __NR_setxattr ++#define SYS_lsetxattr __NR_lsetxattr ++#define SYS_fsetxattr __NR_fsetxattr ++#define SYS_getxattr __NR_getxattr ++#define SYS_lgetxattr __NR_lgetxattr ++#define SYS_fgetxattr __NR_fgetxattr ++#define SYS_listxattr __NR_listxattr ++#define SYS_llistxattr __NR_llistxattr ++#define SYS_flistxattr __NR_flistxattr ++#define SYS_removexattr __NR_removexattr ++#define SYS_lremovexattr __NR_lremovexattr ++#define SYS_fremovexattr __NR_fremovexattr ++#define SYS_tkill __NR_tkill ++#define SYS_time __NR_time ++#define SYS_futex __NR_futex ++#define SYS_sched_setaffinity __NR_sched_setaffinity ++#define SYS_sched_getaffinity __NR_sched_getaffinity ++#define SYS_io_setup __NR_io_setup ++#define SYS_io_destroy __NR_io_destroy ++#define SYS_io_getevents __NR_io_getevents ++#define SYS_io_submit __NR_io_submit ++#define SYS_io_cancel __NR_io_cancel ++#define SYS_lookup_dcookie __NR_lookup_dcookie ++#define SYS_epoll_create __NR_epoll_create ++#define SYS_remap_file_pages __NR_remap_file_pages ++#define SYS_getdents64 __NR_getdents64 ++#define SYS_set_tid_address __NR_set_tid_address ++#define SYS_restart_syscall __NR_restart_syscall ++#define SYS_semtimedop __NR_semtimedop ++#define SYS_fadvise64 __NR_fadvise64 ++#define SYS_timer_settime __NR_timer_settime ++#define SYS_timer_gettime __NR_timer_gettime ++#define SYS_timer_getoverrun __NR_timer_getoverrun ++#define SYS_timer_delete __NR_timer_delete ++#define SYS_clock_settime __NR_clock_settime ++#define SYS_clock_gettime __NR_clock_gettime ++#define SYS_clock_getres __NR_clock_getres ++#define SYS_clock_nanosleep __NR_clock_nanosleep ++#define SYS_exit_group __NR_exit_group ++#define SYS_epoll_wait __NR_epoll_wait ++#define SYS_epoll_ctl __NR_epoll_ctl ++#define SYS_tgkill __NR_tgkill ++#define SYS_utimes __NR_utimes ++#define SYS_mbind __NR_mbind ++#define SYS_set_mempolicy __NR_set_mempolicy ++#define SYS_get_mempolicy __NR_get_mempolicy ++#define SYS_mq_open __NR_mq_open ++#define SYS_mq_unlink __NR_mq_unlink ++#define SYS_mq_timedsend __NR_mq_timedsend ++#define SYS_mq_timedreceive __NR_mq_timedreceive ++#define SYS_mq_getsetattr __NR_mq_getsetattr ++#define SYS_add_key __NR_add_key ++#define SYS_request_key __NR_request_key ++#define SYS_keyctl __NR_keyctl ++#define SYS_ioprio_set __NR_ioprio_set ++#define SYS_ioprio_get __NR_ioprio_get ++#define SYS_inotify_init __NR_inotify_init ++#define SYS_inotify_add_watch __NR_inotify_add_watch ++#define SYS_inotify_rm_watch __NR_inotify_rm_watch ++#define SYS_migrate_pages __NR_migrate_pages ++#define SYS_openat __NR_openat ++#define SYS_mkdirat __NR_mkdirat ++#define SYS_mknodat __NR_mknodat ++#define SYS_fchownat __NR_fchownat ++#define SYS_futimesat __NR_futimesat ++#define SYS_newfstatat __NR_newfstatat ++#define SYS_unlinkat __NR_unlinkat ++#define SYS_renameat __NR_renameat ++#define SYS_linkat __NR_linkat ++#define SYS_symlinkat __NR_symlinkat ++#define SYS_readlinkat __NR_readlinkat ++#define SYS_fchmodat __NR_fchmodat ++#define SYS_faccessat __NR_faccessat ++#define SYS_pselect6 __NR_pselect6 ++#define SYS_ppoll __NR_ppoll ++#define SYS_unshare __NR_unshare ++#define SYS_splice __NR_splice ++#define SYS_tee __NR_tee ++#define SYS_sync_file_range __NR_sync_file_range ++#define SYS_utimensat __NR_utimensat ++#define SYS_epoll_pwait __NR_epoll_pwait ++#define SYS_signalfd __NR_signalfd ++#define SYS_timerfd_create __NR_timerfd_create ++#define SYS_eventfd __NR_eventfd ++#define SYS_fallocate __NR_fallocate ++#define SYS_timerfd_settime __NR_timerfd_settime ++#define SYS_timerfd_gettime __NR_timerfd_gettime ++#define SYS_accept4 __NR_accept4 ++#define SYS_signalfd4 __NR_signalfd4 ++#define SYS_eventfd2 __NR_eventfd2 ++#define SYS_epoll_create1 __NR_epoll_create1 ++#define SYS_dup3 __NR_dup3 ++#define SYS_pipe2 __NR_pipe2 ++#define SYS_inotify_init1 __NR_inotify_init1 ++#define SYS_perf_event_open __NR_perf_event_open ++#define SYS_fanotify_init __NR_fanotify_init ++#define SYS_fanotify_mark __NR_fanotify_mark ++#define SYS_prlimit64 __NR_prlimit64 ++#define SYS_name_to_handle_at __NR_name_to_handle_at ++#define SYS_open_by_handle_at __NR_open_by_handle_at ++#define SYS_clock_adjtime __NR_clock_adjtime ++#define SYS_syncfs __NR_syncfs ++#define SYS_setns __NR_setns ++#define SYS_getcpu __NR_getcpu ++#define SYS_kcmp __NR_kcmp ++#define SYS_finit_module __NR_finit_module ++#define SYS_rt_sigaction __NR_rt_sigaction ++#define SYS_rt_sigreturn __NR_rt_sigreturn ++#define SYS_ioctl __NR_ioctl ++#define SYS_readv __NR_readv ++#define SYS_writev __NR_writev ++#define SYS_recvfrom __NR_recvfrom ++#define SYS_sendmsg __NR_sendmsg ++#define SYS_recvmsg __NR_recvmsg ++#define SYS_execve __NR_execve ++#define SYS_ptrace __NR_ptrace ++#define SYS_rt_sigpending __NR_rt_sigpending ++#define SYS_rt_sigtimedwait __NR_rt_sigtimedwait ++#define SYS_rt_sigqueueinfo __NR_rt_sigqueueinfo ++#define SYS_sigaltstack __NR_sigaltstack ++#define SYS_timer_create __NR_timer_create ++#define SYS_mq_notify __NR_mq_notify ++#define SYS_kexec_load __NR_kexec_load ++#define SYS_waitid __NR_waitid ++#define SYS_set_robust_list __NR_set_robust_list ++#define SYS_get_robust_list __NR_get_robust_list ++#define SYS_vmsplice __NR_vmsplice ++#define SYS_move_pages __NR_move_pages ++#define SYS_preadv __NR_preadv ++#define SYS_pwritev __NR_pwritev ++#define SYS_rt_tgsigqueueinfo __NR_rt_tgsigqueueinfo ++#define SYS_recvmmsg __NR_recvmmsg ++#define SYS_sendmmsg __NR_sendmmsg ++#define SYS_process_vm_readv __NR_process_vm_readv ++#define SYS_process_vm_writev __NR_process_vm_writev ++#define SYS_setsockopt __NR_setsockopt ++#define SYS_getsockopt __NR_getsockopt ++ ++#undef SYS_fstatat ++#undef SYS_pread ++#undef SYS_pwrite ++#undef SYS_getdents ++#define SYS_fstatat SYS_newfstatat ++#define SYS_pread SYS_pread64 ++#define SYS_pwrite SYS_pwrite64 ++#define SYS_getdents SYS_getdents64 ++#define SYS_fadvise SYS_fadvise64 +diff -Nur musl-0.9.15/arch/x32/bits/termios.h musl-git/arch/x32/bits/termios.h +--- musl-0.9.15/arch/x32/bits/termios.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/termios.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,160 @@ ++struct termios ++{ ++ tcflag_t c_iflag; ++ tcflag_t c_oflag; ++ tcflag_t c_cflag; ++ tcflag_t c_lflag; ++ cc_t c_line; ++ cc_t c_cc[NCCS]; ++ speed_t __c_ispeed; ++ speed_t __c_ospeed; ++}; ++ ++#define VINTR 0 ++#define VQUIT 1 ++#define VERASE 2 ++#define VKILL 3 ++#define VEOF 4 ++#define VTIME 5 ++#define VMIN 6 ++#define VSWTC 7 ++#define VSTART 8 ++#define VSTOP 9 ++#define VSUSP 10 ++#define VEOL 11 ++#define VREPRINT 12 ++#define VDISCARD 13 ++#define VWERASE 14 ++#define VLNEXT 15 ++#define VEOL2 16 ++ ++#define IGNBRK 0000001 ++#define BRKINT 0000002 ++#define IGNPAR 0000004 ++#define PARMRK 0000010 ++#define INPCK 0000020 ++#define ISTRIP 0000040 ++#define INLCR 0000100 ++#define IGNCR 0000200 ++#define ICRNL 0000400 ++#define IUCLC 0001000 ++#define IXON 0002000 ++#define IXANY 0004000 ++#define IXOFF 0010000 ++#define IMAXBEL 0020000 ++#define IUTF8 0040000 ++ ++#define OPOST 0000001 ++#define OLCUC 0000002 ++#define ONLCR 0000004 ++#define OCRNL 0000010 ++#define ONOCR 0000020 ++#define ONLRET 0000040 ++#define OFILL 0000100 ++#define OFDEL 0000200 ++#define NLDLY 0000400 ++#define NL0 0000000 ++#define NL1 0000400 ++#define CRDLY 0003000 ++#define CR0 0000000 ++#define CR1 0001000 ++#define CR2 0002000 ++#define CR3 0003000 ++#define TABDLY 0014000 ++#define TAB0 0000000 ++#define TAB1 0004000 ++#define TAB2 0010000 ++#define TAB3 0014000 ++#define BSDLY 0020000 ++#define BS0 0000000 ++#define BS1 0020000 ++#define FFDLY 0100000 ++#define FF0 0000000 ++#define FF1 0100000 ++ ++#define VTDLY 0040000 ++#define VT0 0000000 ++#define VT1 0040000 ++ ++#define B0 0000000 ++#define B50 0000001 ++#define B75 0000002 ++#define B110 0000003 ++#define B134 0000004 ++#define B150 0000005 ++#define B200 0000006 ++#define B300 0000007 ++#define B600 0000010 ++#define B1200 0000011 ++#define B1800 0000012 ++#define B2400 0000013 ++#define B4800 0000014 ++#define B9600 0000015 ++#define B19200 0000016 ++#define B38400 0000017 ++ ++#define B57600 0010001 ++#define B115200 0010002 ++#define B230400 0010003 ++#define B460800 0010004 ++#define B500000 0010005 ++#define B576000 0010006 ++#define B921600 0010007 ++#define B1000000 0010010 ++#define B1152000 0010011 ++#define B1500000 0010012 ++#define B2000000 0010013 ++#define B2500000 0010014 ++#define B3000000 0010015 ++#define B3500000 0010016 ++#define B4000000 0010017 ++ ++#define CBAUD 0010017 ++ ++#define CSIZE 0000060 ++#define CS5 0000000 ++#define CS6 0000020 ++#define CS7 0000040 ++#define CS8 0000060 ++#define CSTOPB 0000100 ++#define CREAD 0000200 ++#define PARENB 0000400 ++#define PARODD 0001000 ++#define HUPCL 0002000 ++#define CLOCAL 0004000 ++ ++#define ISIG 0000001 ++#define ICANON 0000002 ++#define ECHO 0000010 ++#define ECHOE 0000020 ++#define ECHOK 0000040 ++#define ECHONL 0000100 ++#define NOFLSH 0000200 ++#define TOSTOP 0000400 ++#define IEXTEN 0100000 ++ ++#define ECHOCTL 0001000 ++#define ECHOPRT 0002000 ++#define ECHOKE 0004000 ++#define FLUSHO 0010000 ++#define PENDIN 0040000 ++ ++#define TCOOFF 0 ++#define TCOON 1 ++#define TCIOFF 2 ++#define TCION 3 ++ ++#define TCIFLUSH 0 ++#define TCOFLUSH 1 ++#define TCIOFLUSH 2 ++ ++#define TCSANOW 0 ++#define TCSADRAIN 1 ++#define TCSAFLUSH 2 ++ ++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++#define CBAUDEX 0010000 ++#define CRTSCTS 020000000000 ++#define EXTPROC 0200000 ++#define XTABS 0014000 ++#endif +diff -Nur musl-0.9.15/arch/x32/bits/user.h musl-git/arch/x32/bits/user.h +--- musl-0.9.15/arch/x32/bits/user.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/bits/user.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,44 @@ ++#undef __WORDSIZE ++#define __WORDSIZE 64 ++ ++typedef struct user_fpregs_struct ++{ ++ uint16_t cwd, swd, ftw, fop; ++ uint64_t rip, rdp; ++ uint32_t mxcsr, mxcs_mask; ++ uint32_t st_space[32], xmm_space[64], padding[24]; ++} elf_fpregset_t; ++ ++struct user_regs_struct ++{ ++ unsigned long r15, r14, r13, r12, rbp, rbx, r11, r10, r9, r8; ++ unsigned long rax, rcx, rdx, rsi, rdi, orig_rax, rip; ++ unsigned long cs, eflags, rsp, ss, fs_base, gs_base, ds, es, fs, gs; ++}; ++#define ELF_NGREG 27 ++typedef unsigned long long elf_greg_t, elf_gregset_t[ELF_NGREG]; ++ ++struct user ++{ ++ struct user_regs_struct regs; ++ int u_fpvalid; ++ struct user_fpregs_struct i387; ++ unsigned long u_tsize; ++ unsigned long u_dsize; ++ unsigned long u_ssize; ++ unsigned long start_code; ++ unsigned long start_stack; ++ long signal; ++ int reserved; ++ struct user_regs_struct *u_ar0; ++ struct user_fpregs_struct *u_fpstate; ++ unsigned long magic; ++ char u_comm[32]; ++ unsigned long u_debugreg[8]; ++}; ++ ++#define PAGE_MASK (~(PAGE_SIZE-1)) ++#define NBPG PAGE_SIZE ++#define UPAGES 1 ++#define HOST_TEXT_START_ADDR (u.start_code) ++#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG) +diff -Nur musl-0.9.15/arch/x32/crt_arch.h musl-git/arch/x32/crt_arch.h +--- musl-0.9.15/arch/x32/crt_arch.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/crt_arch.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,9 @@ ++__asm__("\ ++.text \n\ ++.global _start \n\ ++_start: \n\ ++ xor %rbp,%rbp \n\ ++ mov %rsp,%rdi \n\ ++ andq $-16,%rsp \n\ ++ call __cstart \n\ ++"); +diff -Nur musl-0.9.15/arch/x32/pthread_arch.h musl-git/arch/x32/pthread_arch.h +--- musl-0.9.15/arch/x32/pthread_arch.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/pthread_arch.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,10 @@ ++static inline struct pthread *__pthread_self() ++{ ++ struct pthread *self; ++ __asm__ __volatile__ ("mov %%fs:0,%0" : "=r" (self) ); ++ return self; ++} ++ ++#define TP_ADJ(p) (p) ++ ++#define CANCEL_REG_IP 16 +diff -Nur musl-0.9.15/arch/x32/reloc.h musl-git/arch/x32/reloc.h +--- musl-0.9.15/arch/x32/reloc.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/reloc.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,46 @@ ++#include ++#include ++#include ++ ++#define LDSO_ARCH "x32" ++ ++#define IS_COPY(x) ((x)==R_X86_64_COPY) ++#define IS_PLT(x) ((x)==R_X86_64_JUMP_SLOT) ++ ++static inline void do_single_reloc( ++ struct dso *self, unsigned char *base_addr, ++ size_t *reloc_addr, int type, size_t addend, ++ Sym *sym, size_t sym_size, ++ struct symdef def, size_t sym_val) ++{ ++ switch(type) { ++ case R_X86_64_GLOB_DAT: ++ case R_X86_64_JUMP_SLOT: ++ case R_X86_64_64: ++ *reloc_addr = sym_val + addend; ++ break; ++ case R_X86_64_32: ++ *(uint32_t *)reloc_addr = sym_val + addend; ++ break; ++ case R_X86_64_PC32: ++ *reloc_addr = sym_val + addend - (size_t)reloc_addr + (size_t)base_addr; ++ break; ++ case R_X86_64_RELATIVE: ++ *reloc_addr = (size_t)base_addr + addend; ++ break; ++ case R_X86_64_COPY: ++ memcpy(reloc_addr, (void *)sym_val, sym_size); ++ break; ++ case R_X86_64_DTPMOD64: ++ *reloc_addr = def.dso ? def.dso->tls_id : self->tls_id; ++ break; ++ case R_X86_64_DTPOFF64: ++ *reloc_addr = def.sym->st_value + addend; ++ break; ++ case R_X86_64_TPOFF64: ++ *reloc_addr = (def.sym ++ ? def.sym->st_value - def.dso->tls_offset ++ : 0 - self->tls_offset) + addend; ++ break; ++ } ++} +diff -Nur musl-0.9.15/arch/x32/src/syscall_cp_fixup.c musl-git/arch/x32/src/syscall_cp_fixup.c +--- musl-0.9.15/arch/x32/src/syscall_cp_fixup.c 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/src/syscall_cp_fixup.c 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,31 @@ ++#include ++long __syscall_cp_internal(volatile void*, long long, long long, long long, long long, ++ long long, long long, long long); ++ ++struct __timespec { long long tv_sec; long tv_nsec; }; ++struct __timespec_kernel { long long tv_sec; long long tv_nsec; }; ++#define __tsc(X) ((struct __timespec*)(unsigned long)(X)) ++#define __fixup(X) do { if(X) X = (unsigned long) (&(struct __timespec_kernel) \ ++ { .tv_sec = __tsc(X)->tv_sec, .tv_nsec = __tsc(X)->tv_nsec}); } while(0) ++ ++long __syscall_cp_asm (volatile void * foo, long long n, long long a1, long long a2, long long a3, ++ long long a4, long long a5, long long a6) { ++ switch (n) { ++ case SYS_mq_timedsend: case SYS_mq_timedreceive: case SYS_pselect6: ++ __fixup(a5); ++ break; ++ case SYS_futex: ++ if((a2 & (~128 /* FUTEX_PRIVATE_FLAG */)) == 0 /* FUTEX_WAIT */) ++ __fixup(a4); ++ break; ++ case SYS_clock_nanosleep: ++ case SYS_rt_sigtimedwait: case SYS_ppoll: ++ __fixup(a3); ++ break; ++ case SYS_nanosleep: ++ __fixup(a1); ++ break; ++ } ++ return __syscall_cp_internal(foo, n, a1, a2, a3, a4, a5, a6); ++} ++ +diff -Nur musl-0.9.15/arch/x32/src/sysinfo.c musl-git/arch/x32/src/sysinfo.c +--- musl-0.9.15/arch/x32/src/sysinfo.c 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/src/sysinfo.c 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,47 @@ ++#include ++#include "syscall.h" ++ ++#define klong long long ++#define kulong unsigned long long ++ ++struct kernel_sysinfo { ++ klong uptime; ++ kulong loads[3]; ++ kulong totalram; ++ kulong freeram; ++ kulong sharedram; ++ kulong bufferram; ++ kulong totalswap; ++ kulong freeswap; ++ short procs; ++ short pad; ++ kulong totalhigh; ++ kulong freehigh; ++ unsigned mem_unit; ++}; ++ ++int __x32_sysinfo(struct sysinfo *info) ++{ ++ struct kernel_sysinfo tmp; ++ int ret = syscall(SYS_sysinfo, &tmp); ++ if(ret == -1) return ret; ++ info->uptime = tmp.uptime; ++ info->loads[0] = tmp.loads[0]; ++ info->loads[1] = tmp.loads[1]; ++ info->loads[2] = tmp.loads[2]; ++ kulong shifts; ++ kulong max = tmp.totalram | tmp.totalswap; ++ __asm__("bsr %1,%0" : "=r"(shifts) : "r"(max)); ++ shifts = shifts >= 32 ? shifts - 31 : 0; ++ info->totalram = tmp.totalram >> shifts; ++ info->freeram = tmp.freeram >> shifts; ++ info->sharedram = tmp.sharedram >> shifts; ++ info->bufferram = tmp.bufferram >> shifts; ++ info->totalswap = tmp.totalswap >> shifts; ++ info->freeswap = tmp.freeswap >> shifts; ++ info->procs = tmp.procs ; ++ info->totalhigh = tmp.totalhigh >> shifts; ++ info->freehigh = tmp.freehigh >> shifts; ++ info->mem_unit = (tmp.mem_unit ? tmp.mem_unit : 1) << shifts; ++ return ret; ++} +diff -Nur musl-0.9.15/arch/x32/syscall_arch.h musl-git/arch/x32/syscall_arch.h +--- musl-0.9.15/arch/x32/syscall_arch.h 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/arch/x32/syscall_arch.h 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,117 @@ ++#define __SYSCALL_LL_E(x) (x) ++#define __SYSCALL_LL_O(x) (x) ++ ++#define __scc(X) sizeof(1?(X):0ULL) < 8 ? (unsigned long) (X) : (long long) (X) ++typedef long long syscall_arg_t; ++struct __timespec { long long tv_sec; long tv_nsec; }; ++struct __timespec_kernel { long long tv_sec; long long tv_nsec; }; ++#define __tsc(X) ((struct __timespec*)(unsigned long)(X)) ++#define __fixup(X) do { if(X) X = (unsigned long) (&(struct __timespec_kernel) \ ++ { .tv_sec = __tsc(X)->tv_sec, .tv_nsec = __tsc(X)->tv_nsec}); } while(0) ++#define __fixup_case_2 \ ++ case SYS_nanosleep: \ ++ __fixup(a1); break; \ ++ case SYS_clock_settime: \ ++ __fixup(a2); break; ++#define __fixup_case_3 \ ++ case SYS_clock_nanosleep: case SYS_rt_sigtimedwait: case SYS_ppoll: \ ++ __fixup(a3); break; \ ++ case SYS_utimensat: \ ++ if(a3) a3 = (unsigned long) ((struct __timespec_kernel[2]) { \ ++ [0] = {.tv_sec = __tsc(a3)[0].tv_sec, .tv_nsec = __tsc(a3)[0].tv_nsec}, \ ++ [1] = {.tv_sec = __tsc(a3)[1].tv_sec, .tv_nsec = __tsc(a3)[1].tv_nsec}, \ ++ }); break; ++#define __fixup_case_4 \ ++ case SYS_futex: \ ++ if((a2 & (~128 /* FUTEX_PRIVATE_FLAG */)) == 0 /* FUTEX_WAIT */) __fixup(a4); break; ++#define __fixup_case_5 \ ++ case SYS_mq_timedsend: case SYS_mq_timedreceive: case SYS_pselect6: \ ++ __fixup(a5); break; ++ ++static __inline long __syscall0(long long n) ++{ ++ unsigned long ret; ++ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n) : "rcx", "r11", "memory"); ++ return ret; ++} ++ ++static __inline long __syscall1(long long n, long long a1) ++{ ++ unsigned long ret; ++ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1) : "rcx", "r11", "memory"); ++ return ret; ++} ++ ++static __inline long __syscall2(long long n, long long a1, long long a2) ++{ ++ unsigned long ret; ++ struct __timespec *ts2 = 0; ++ switch (n) { ++ __fixup_case_2; ++ } ++ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2) ++ : "rcx", "r11", "memory"); ++ return ret; ++} ++ ++static __inline long __syscall3(long long n, long long a1, long long a2, long long a3) ++{ ++ unsigned long ret; ++ switch (n) { ++ __fixup_case_2; ++ __fixup_case_3; ++ } ++ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), ++ "d"(a3) : "rcx", "r11", "memory"); ++ return ret; ++} ++ ++static __inline long __syscall4(long long n, long long a1, long long a2, long long a3, ++ long long a4_) ++{ ++ unsigned long ret; ++ register long long a4 __asm__("r10") = a4_; ++ switch (n) { ++ __fixup_case_2; ++ __fixup_case_3; ++ __fixup_case_4; ++ } ++ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), ++ "d"(a3), "r"(a4): "rcx", "r11", "memory"); ++ return ret; ++} ++ ++static __inline long __syscall5(long long n, long long a1, long long a2, long long a3, ++ long long a4_, long long a5_) ++{ ++ unsigned long ret; ++ register long long a4 __asm__("r10") = a4_; ++ register long long a5 __asm__("r8") = a5_; ++ switch (n) { ++ __fixup_case_2; ++ __fixup_case_3; ++ __fixup_case_4; ++ __fixup_case_5; ++ } ++ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), ++ "d"(a3), "r"(a4), "r"(a5) : "rcx", "r11", "memory"); ++ return ret; ++} ++ ++static __inline long __syscall6(long long n, long long a1, long long a2, long long a3, ++ long long a4_, long long a5_, long long a6_) ++{ ++ unsigned long ret; ++ register long long a4 __asm__("r10") = a4_; ++ register long long a5 __asm__("r8") = a5_; ++ register long long a6 __asm__("r9") = a6_; ++ switch (n) { ++ __fixup_case_2; ++ __fixup_case_3; ++ __fixup_case_4; ++ __fixup_case_5; ++ } ++ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), ++ "d"(a3), "r"(a4), "r"(a5), "r"(a6) : "rcx", "r11", "memory"); ++ return ret; ++} +diff -Nur musl-0.9.15/arch/x86_64/atomic.h musl-git/arch/x86_64/atomic.h +--- musl-0.9.15/arch/x86_64/atomic.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/x86_64/atomic.h 2014-03-10 16:52:06.000000000 +0100 +@@ -5,38 +5,36 @@ + + static inline int a_ctz_64(uint64_t x) + { +- long r; +- __asm__( "bsf %1,%0" : "=r"(r) : "r"(x) ); +- return r; ++ __asm__( "bsf %1,%0" : "=r"(x) : "r"(x) ); ++ return x; + } + + static inline int a_ctz_l(unsigned long x) + { +- long r; +- __asm__( "bsf %1,%0" : "=r"(r) : "r"(x) ); +- return r; ++ __asm__( "bsf %1,%0" : "=r"(x) : "r"(x) ); ++ return x; + } + + static inline void a_and_64(volatile uint64_t *p, uint64_t v) + { +- __asm__( "lock ; andq %1, %0" +- : "=m"(*(long *)p) : "r"(v) : "memory" ); ++ __asm__( "lock ; and %1, %0" ++ : "=m"(*p) : "r"(v) : "memory" ); + } + + static inline void a_or_64(volatile uint64_t *p, uint64_t v) + { +- __asm__( "lock ; orq %1, %0" +- : "=m"(*(long *)p) : "r"(v) : "memory" ); ++ __asm__( "lock ; or %1, %0" ++ : "=m"(*p) : "r"(v) : "memory" ); + } + + static inline void a_store_l(volatile void *p, long x) + { +- __asm__( "movq %1, %0" : "=m"(*(long *)p) : "r"(x) : "memory" ); ++ __asm__( "mov %1, %0" : "=m"(*(long *)p) : "r"(x) : "memory" ); + } + + static inline void a_or_l(volatile void *p, long v) + { +- __asm__( "lock ; orq %1, %0" ++ __asm__( "lock ; or %1, %0" + : "=m"(*(long *)p) : "r"(v) : "memory" ); + } + +@@ -56,7 +54,7 @@ + + static inline int a_cas(volatile int *p, int t, int s) + { +- __asm__( "lock ; cmpxchgl %3, %1" ++ __asm__( "lock ; cmpxchg %3, %1" + : "=a"(t), "=m"(*p) : "a"(t), "r"(s) : "memory" ); + return t; + } +@@ -74,13 +72,13 @@ + + static inline void a_or(volatile void *p, int v) + { +- __asm__( "lock ; orl %1, %0" ++ __asm__( "lock ; or %1, %0" + : "=m"(*(int *)p) : "r"(v) : "memory" ); + } + + static inline void a_and(volatile void *p, int v) + { +- __asm__( "lock ; andl %1, %0" ++ __asm__( "lock ; and %1, %0" + : "=m"(*(int *)p) : "r"(v) : "memory" ); + } + +@@ -110,7 +108,7 @@ + + static inline void a_store(volatile int *p, int x) + { +- __asm__( "movl %1, %0" : "=m"(*p) : "r"(x) : "memory" ); ++ __asm__( "mov %1, %0" : "=m"(*p) : "r"(x) : "memory" ); + } + + static inline void a_spin() +diff -Nur musl-0.9.15/arch/x86_64/bits/shm.h musl-git/arch/x86_64/bits/shm.h +--- musl-0.9.15/arch/x86_64/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/x86_64/bits/shm.h 2014-03-10 16:52:06.000000000 +0100 +@@ -13,3 +13,14 @@ + unsigned long __pad1; + unsigned long __pad2; + }; ++ ++struct shminfo { ++ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; ++}; ++ ++struct shm_info { ++ int __used_ids; ++ unsigned long shm_tot, shm_rss, shm_swp; ++ unsigned long __swap_attempts, __swap_successes; ++}; ++ +diff -Nur musl-0.9.15/arch/x86_64/bits/stat.h musl-git/arch/x86_64/bits/stat.h +--- musl-0.9.15/arch/x86_64/bits/stat.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/x86_64/bits/stat.h 2014-03-10 16:52:06.000000000 +0100 +@@ -2,7 +2,7 @@ + * by the corresponding correctly-sized userspace types. */ + + struct stat { +- unsigned long st_dev; ++ dev_t st_dev; + ino_t st_ino; + nlink_t st_nlink; + +diff -Nur musl-0.9.15/arch/x86_64/bits/termios.h musl-git/arch/x86_64/bits/termios.h +--- musl-0.9.15/arch/x86_64/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/x86_64/bits/termios.h 2014-03-10 16:52:06.000000000 +0100 +@@ -42,6 +42,7 @@ + #define IXANY 0004000 + #define IXOFF 0010000 + #define IMAXBEL 0020000 ++#define IUTF8 0040000 + + #define OPOST 0000001 + #define OLCUC 0000002 +@@ -75,9 +76,6 @@ + #define VT0 0000000 + #define VT1 0040000 + +-/* ?? */ +-#define XTABS 0014000 +- + #define B0 0000000 + #define B50 0000001 + #define B75 0000002 +@@ -125,8 +123,6 @@ + #define HUPCL 0002000 + #define CLOCAL 0004000 + +-#define CRTSCTS 020000000000 +- + #define ISIG 0000001 + #define ICANON 0000002 + #define ECHO 0000010 +@@ -137,14 +133,11 @@ + #define TOSTOP 0000400 + #define IEXTEN 0100000 + +-/* Extensions? */ +-#define CBAUDEX 0010000 + #define ECHOCTL 0001000 + #define ECHOPRT 0002000 + #define ECHOKE 0004000 + #define FLUSHO 0010000 + #define PENDIN 0040000 +-#define EXTPROC 0200000 + + #define TCOOFF 0 + #define TCOON 1 +@@ -158,3 +151,10 @@ + #define TCSANOW 0 + #define TCSADRAIN 1 + #define TCSAFLUSH 2 ++ ++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++#define CBAUDEX 0010000 ++#define CRTSCTS 020000000000 ++#define EXTPROC 0200000 ++#define XTABS 0014000 ++#endif +diff -Nur musl-0.9.15/arch/x86_64/pthread_arch.h musl-git/arch/x86_64/pthread_arch.h +--- musl-0.9.15/arch/x86_64/pthread_arch.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/arch/x86_64/pthread_arch.h 2014-03-10 16:52:06.000000000 +0100 +@@ -1,7 +1,7 @@ + static inline struct pthread *__pthread_self() + { + struct pthread *self; +- __asm__ __volatile__ ("movq %%fs:0,%0" : "=r" (self) ); ++ __asm__ __volatile__ ("mov %%fs:0,%0" : "=r" (self) ); + return self; + } + +diff -Nur musl-0.9.15/configure musl-git/configure +--- musl-0.9.15/configure 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/configure 2014-03-10 16:52:06.000000000 +0100 +@@ -222,12 +222,16 @@ + # Convert to just ARCH + # + case "$target" in ++# Catch these early to simplify matching for 32-bit archs ++mips64*|powerpc64*) fail "$0: unsupported target \"$target\"" ;; + arm*) ARCH=arm ;; + i?86*) ARCH=i386 ;; ++x86_64-x32*|x32*) ARCH=x32 ;; + x86_64*) ARCH=x86_64 ;; +-mips-*|mipsel-*) ARCH=mips ;; +-microblaze-*) ARCH=microblaze ;; +-powerpc-*) ARCH=powerpc ;; ++mips*) ARCH=mips ;; ++microblaze*) ARCH=microblaze ;; ++powerpc*) ARCH=powerpc ;; ++sh[1-9bel-]*|sh|superh*) ARCH=sh ;; + unknown) fail "$0: unable to detect target arch; try $0 --target=..." ;; + *) fail "$0: unknown or unsupported target \"$target\"" ;; + esac +@@ -381,6 +385,7 @@ + tryflag CFLAGS_AUTO -Wno-unused-value + tryflag CFLAGS_AUTO -Wno-unused-but-set-variable + tryflag CFLAGS_AUTO -Wno-unknown-pragmas ++tryflag CFLAGS_AUTO -Wno-pointer-to-int-cast + fi + + # Some patched GCC builds have these defaults messed up... +@@ -410,12 +415,33 @@ + trycppif __ARM_PCS_VFP "$t" && SUBARCH=${SUBARCH}hf + fi + +-test "$ARCH" = "mips" && trycppif "_MIPSEL || __MIPSEL || __MIPSEL__" "$t" \ +-&& SUBARCH=${SUBARCH}el ++if test "$ARCH" = "mips" ; then ++trycppif "_MIPSEL || __MIPSEL || __MIPSEL__" "$t" && SUBARCH=${SUBARCH}el ++trycppif __mips_soft_float "$t" && SUBARCH=${SUBARCH}-sf ++fi + + test "$ARCH" = "microblaze" && trycppif __MICROBLAZEEL__ "$t" \ + && SUBARCH=${SUBARCH}el + ++if test "$ARCH" = "sh" ; then ++trycppif __BIG_ENDIAN__ "$t" && SUBARCH=${SUBARCH}eb ++if trycppif __SH_FPU_ANY__ "$t" ; then ++# Some sh configurations are broken and replace double with float ++# rather than using softfloat when the fpu is present but only ++# supports single precision. Reject them. ++printf "checking whether compiler's double type is IEEE double... " ++echo 'typedef char dblcheck[(int)sizeof(double)-5];' > "$tmpc" ++if $CC $CFLAGS_C99FSE $CPPFLAGS $CFLAGS -c -o /dev/null "$tmpc" >/dev/null 2>&1 ; then ++printf "yes\n" ++else ++printf "no\n" ++fail "$0: error: compiler's floating point configuration is unsupported" ++fi ++else ++SUBARCH=${SUBARCH}-nofpu ++fi ++fi ++ + test "$SUBARCH" \ + && printf "configured for %s variant: %s\n" "$ARCH" "$ARCH$SUBARCH" + +diff -Nur musl-0.9.15/COPYRIGHT musl-git/COPYRIGHT +--- musl-0.9.15/COPYRIGHT 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/COPYRIGHT 2014-03-10 16:52:06.000000000 +0100 +@@ -1,6 +1,6 @@ + musl as a whole is licensed under the following standard MIT license: + +-Copyright © 2005-2013 Rich Felker ++Copyright © 2005-2014 Rich Felker + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the +@@ -79,7 +79,7 @@ + from Bionic libc, used on Android. + + All other files which have no copyright comments are original works +-Copyright © 2005-2013 Rich Felker, the main author of this library. ++Copyright © 2005-2014 Rich Felker, the main author of this library. + The decision to exclude such comments is intentional, as it should be + possible to carry around the complete source code on tiny storage + media. All public header files (include/* and arch/*/bits/*) should be +diff -Nur musl-0.9.15/crt/superh/crti.s musl-git/crt/superh/crti.s +--- musl-0.9.15/crt/superh/crti.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/crt/superh/crti.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,13 @@ ++.section .init ++.global _init ++.type _init, @function ++_init: ++ sts.l pr, @-r15 ++ nop ++ ++.section .fini ++.global _fini ++.type _fini, @function ++_fini: ++ sts.l pr, @-r15 ++ nop +diff -Nur musl-0.9.15/crt/superh/crtn.s musl-git/crt/superh/crtn.s +--- musl-0.9.15/crt/superh/crtn.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/crt/superh/crtn.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,9 @@ ++.section .init ++ lds.l @r15+, pr ++ rts ++ nop ++ ++.section .fini ++ lds.l @r15+, pr ++ rts ++ nop +diff -Nur musl-0.9.15/crt/x32/crti.s musl-git/crt/x32/crti.s +--- musl-0.9.15/crt/x32/crti.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/crt/x32/crti.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,9 @@ ++.section .init ++.global _init ++_init: ++ push %rax ++ ++.section .fini ++.global _fini ++_fini: ++ push %rax +diff -Nur musl-0.9.15/crt/x32/crtn.s musl-git/crt/x32/crtn.s +--- musl-0.9.15/crt/x32/crtn.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/crt/x32/crtn.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,7 @@ ++.section .init ++ pop %rax ++ ret ++ ++.section .fini ++ pop %rax ++ ret +diff -Nur musl-0.9.15/.gitignore musl-git/.gitignore +--- musl-0.9.15/.gitignore 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/.gitignore 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,11 @@ ++*.o ++*.lo ++*.a ++*.so ++*.so.1 ++arch/*/bits/alltypes.h ++config.mak ++include/bits ++tools/musl-gcc ++lib/musl-gcc.specs ++src/internal/version.h +diff -Nur musl-0.9.15/include/arpa/inet.h musl-git/include/arpa/inet.h +--- musl-0.9.15/include/arpa/inet.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/arpa/inet.h 2014-03-10 16:52:06.000000000 +0100 +@@ -20,7 +20,7 @@ + const char *inet_ntop (int, const void *__restrict, char *__restrict, socklen_t); + + int inet_aton (const char *, struct in_addr *); +-struct in_addr inet_makeaddr(int, int); ++struct in_addr inet_makeaddr(in_addr_t, in_addr_t); + in_addr_t inet_lnaof(struct in_addr); + in_addr_t inet_netof(struct in_addr); + +diff -Nur musl-0.9.15/include/dlfcn.h musl-git/include/dlfcn.h +--- musl-0.9.15/include/dlfcn.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/dlfcn.h 2014-03-10 16:52:06.000000000 +0100 +@@ -31,7 +31,7 @@ + const char *dli_sname; + void *dli_saddr; + } Dl_info; +-int dladdr(void *, Dl_info *); ++int dladdr(const void *, Dl_info *); + int dlinfo(void *, int, void *); + #endif + +diff -Nur musl-0.9.15/include/elf.h musl-git/include/elf.h +--- musl-0.9.15/include/elf.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/elf.h 2014-03-10 16:52:06.000000000 +0100 +@@ -1153,6 +1153,7 @@ + #define EF_MIPS_64BIT_WHIRL 16 + #define EF_MIPS_ABI2 32 + #define EF_MIPS_ABI_ON32 64 ++#define EF_MIPS_NAN2008 1024 + #define EF_MIPS_ARCH 0xf0000000 + + +@@ -2092,6 +2093,117 @@ + #define R_AARCH64_NONE 0 + #define R_AARCH64_ABS64 257 + #define R_AARCH64_ABS32 258 ++#define R_AARCH64_ABS16 259 ++#define R_AARCH64_PREL64 260 ++#define R_AARCH64_PREL32 261 ++#define R_AARCH64_PREL16 262 ++#define R_AARCH64_MOVW_UABS_G0 263 ++#define R_AARCH64_MOVW_UABS_G0_NC 264 ++#define R_AARCH64_MOVW_UABS_G1 265 ++#define R_AARCH64_MOVW_UABS_G1_NC 266 ++#define R_AARCH64_MOVW_UABS_G2 267 ++#define R_AARCH64_MOVW_UABS_G2_NC 268 ++#define R_AARCH64_MOVW_UABS_G3 269 ++#define R_AARCH64_MOVW_SABS_G0 270 ++#define R_AARCH64_MOVW_SABS_G1 271 ++#define R_AARCH64_MOVW_SABS_G2 272 ++#define R_AARCH64_LD_PREL_LO19 273 ++#define R_AARCH64_ADR_PREL_LO21 274 ++#define R_AARCH64_ADR_PREL_PG_HI21 275 ++#define R_AARCH64_ADR_PREL_PG_HI21_NC 276 ++#define R_AARCH64_ADD_ABS_LO12_NC 277 ++#define R_AARCH64_LDST8_ABS_LO12_NC 278 ++#define R_AARCH64_TSTBR14 279 ++#define R_AARCH64_CONDBR19 280 ++#define R_AARCH64_JUMP26 282 ++#define R_AARCH64_CALL26 283 ++#define R_AARCH64_LDST16_ABS_LO12_NC 284 ++#define R_AARCH64_LDST32_ABS_LO12_NC 285 ++#define R_AARCH64_LDST64_ABS_LO12_NC 286 ++#define R_AARCH64_MOVW_PREL_G0 287 ++#define R_AARCH64_MOVW_PREL_G0_NC 288 ++#define R_AARCH64_MOVW_PREL_G1 289 ++#define R_AARCH64_MOVW_PREL_G1_NC 290 ++#define R_AARCH64_MOVW_PREL_G2 291 ++#define R_AARCH64_MOVW_PREL_G2_NC 292 ++#define R_AARCH64_MOVW_PREL_G3 293 ++#define R_AARCH64_LDST128_ABS_LO12_NC 299 ++#define R_AARCH64_MOVW_GOTOFF_G0 300 ++#define R_AARCH64_MOVW_GOTOFF_G0_NC 301 ++#define R_AARCH64_MOVW_GOTOFF_G1 302 ++#define R_AARCH64_MOVW_GOTOFF_G1_NC 303 ++#define R_AARCH64_MOVW_GOTOFF_G2 304 ++#define R_AARCH64_MOVW_GOTOFF_G2_NC 305 ++#define R_AARCH64_MOVW_GOTOFF_G3 306 ++#define R_AARCH64_GOTREL64 307 ++#define R_AARCH64_GOTREL32 308 ++#define R_AARCH64_GOT_LD_PREL19 309 ++#define R_AARCH64_LD64_GOTOFF_LO15 310 ++#define R_AARCH64_ADR_GOT_PAGE 311 ++#define R_AARCH64_LD64_GOT_LO12_NC 312 ++#define R_AARCH64_LD64_GOTPAGE_LO15 313 ++#define R_AARCH64_TLSGD_ADR_PREL21 512 ++#define R_AARCH64_TLSGD_ADR_PAGE21 513 ++#define R_AARCH64_TLSGD_ADD_LO12_NC 514 ++#define R_AARCH64_TLSGD_MOVW_G1 515 ++#define R_AARCH64_TLSGD_MOVW_G0_NC 516 ++#define R_AARCH64_TLSLD_ADR_PREL21 517 ++#define R_AARCH64_TLSLD_ADR_PAGE21 518 ++#define R_AARCH64_TLSLD_ADD_LO12_NC 519 ++#define R_AARCH64_TLSLD_MOVW_G1 520 ++#define R_AARCH64_TLSLD_MOVW_G0_NC 521 ++#define R_AARCH64_TLSLD_LD_PREL19 522 ++#define R_AARCH64_TLSLD_MOVW_DTPREL_G2 523 ++#define R_AARCH64_TLSLD_MOVW_DTPREL_G1 524 ++#define R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 525 ++#define R_AARCH64_TLSLD_MOVW_DTPREL_G0 526 ++#define R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 527 ++#define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528 ++#define R_AARCH64_TLSLD_ADD_DTPREL_LO12 529 ++#define R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 530 ++#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12 531 ++#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 532 ++#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12 533 ++#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 534 ++#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12 535 ++#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 536 ++#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12 537 ++#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 538 ++#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 539 ++#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 540 ++#define R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 541 ++#define R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 542 ++#define R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 543 ++#define R_AARCH64_TLSLE_MOVW_TPREL_G2 544 ++#define R_AARCH64_TLSLE_MOVW_TPREL_G1 545 ++#define R_AARCH64_TLSLE_MOVW_TPREL_G1_NC 546 ++#define R_AARCH64_TLSLE_MOVW_TPREL_G0 547 ++#define R_AARCH64_TLSLE_MOVW_TPREL_G0_NC 548 ++#define R_AARCH64_TLSLE_ADD_TPREL_HI12 549 ++#define R_AARCH64_TLSLE_ADD_TPREL_LO12 550 ++#define R_AARCH64_TLSLE_ADD_TPREL_LO12_NC 551 ++#define R_AARCH64_TLSLE_LDST8_TPREL_LO12 552 ++#define R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 553 ++#define R_AARCH64_TLSLE_LDST16_TPREL_LO12 554 ++#define R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 555 ++#define R_AARCH64_TLSLE_LDST32_TPREL_LO12 556 ++#define R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 557 ++#define R_AARCH64_TLSLE_LDST64_TPREL_LO12 558 ++#define R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 559 ++#define R_AARCH64_TLSDESC_LD_PREL19 560 ++#define R_AARCH64_TLSDESC_ADR_PREL21 561 ++#define R_AARCH64_TLSDESC_ADR_PAGE21 562 ++#define R_AARCH64_TLSDESC_LD64_LO12 563 ++#define R_AARCH64_TLSDESC_ADD_LO12 564 ++#define R_AARCH64_TLSDESC_OFF_G1 565 ++#define R_AARCH64_TLSDESC_OFF_G0_NC 566 ++#define R_AARCH64_TLSDESC_LDR 567 ++#define R_AARCH64_TLSDESC_ADD 568 ++#define R_AARCH64_TLSDESC_CALL 569 ++#define R_AARCH64_TLSLE_LDST128_TPREL_LO12 570 ++#define R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC 571 ++#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12 572 ++#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC 573 + #define R_AARCH64_COPY 1024 + #define R_AARCH64_GLOB_DAT 1025 + #define R_AARCH64_JUMP_SLOT 1026 +diff -Nur musl-0.9.15/include/fcntl.h musl-git/include/fcntl.h +--- musl-0.9.15/include/fcntl.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/fcntl.h 2014-03-10 16:52:06.000000000 +0100 +@@ -148,6 +148,7 @@ + #define SPLICE_F_MORE 4 + #define SPLICE_F_GIFT 8 + int fallocate(int, int, off_t, off_t); ++#define fallocate64 fallocate + ssize_t readahead(int, off_t, size_t); + int sync_file_range(int, off_t, off_t, unsigned); + ssize_t vmsplice(int, const struct iovec *, size_t, unsigned); +@@ -160,6 +161,7 @@ + #define F_GETLK64 F_GETLK + #define F_SETLK64 F_SETLK + #define F_SETLKW64 F_SETLKW ++#define flock64 flock + #define open64 open + #define openat64 openat + #define creat64 creat +diff -Nur musl-0.9.15/include/math.h musl-git/include/math.h +--- musl-0.9.15/include/math.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/math.h 2014-03-10 16:52:06.000000000 +0100 +@@ -42,12 +42,14 @@ + + static __inline unsigned __FLOAT_BITS(float __f) + { +- union {float __f; unsigned __i;} __u = {__f}; ++ union {float __f; unsigned __i;} __u; ++ __u.__f = __f; + return __u.__i; + } + static __inline unsigned long long __DOUBLE_BITS(double __f) + { +- union {double __f; unsigned long long __i;} __u = {__f}; ++ union {double __f; unsigned long long __i;} __u; ++ __u.__f = __f; + return __u.__i; + } + +diff -Nur musl-0.9.15/include/netdb.h musl-git/include/netdb.h +--- musl-0.9.15/include/netdb.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/netdb.h 2014-03-10 16:52:06.000000000 +0100 +@@ -131,6 +131,7 @@ + #define TRY_AGAIN 2 + #define NO_RECOVERY 3 + #define NO_DATA 4 ++#define NO_ADDRESS NO_DATA + #endif + + #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) +diff -Nur musl-0.9.15/include/netinet/if_ether.h musl-git/include/netinet/if_ether.h +--- musl-0.9.15/include/netinet/if_ether.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/netinet/if_ether.h 2014-03-10 16:52:06.000000000 +0100 +@@ -54,6 +54,7 @@ + #define ETH_P_8021AH 0x88E7 + #define ETH_P_MVRP 0x88F5 + #define ETH_P_1588 0x88F7 ++#define ETH_P_PRP 0x88FB + #define ETH_P_FCOE 0x8906 + #define ETH_P_TDLS 0x890D + #define ETH_P_FIP 0x8914 +diff -Nur musl-0.9.15/include/netinet/in.h musl-git/include/netinet/in.h +--- musl-0.9.15/include/netinet/in.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/netinet/in.h 2014-03-10 16:52:06.000000000 +0100 +@@ -149,7 +149,7 @@ + (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0xe)) + + #define __ARE_4_EQUAL(a,b) \ +- (!( 0[a]-0[b] | 1[a]-1[b] | 2[a]-2[b] | 3[a]-3[b] )) ++ (!( (0[a]-0[b]) | (1[a]-1[b]) | (2[a]-2[b]) | (3[a]-3[b]) )) + #define IN6_ARE_ADDR_EQUAL(a,b) \ + __ARE_4_EQUAL((const uint32_t *)(a), (const uint32_t *)(b)) + +@@ -211,27 +211,13 @@ + #define IP_MULTICAST_ALL 49 + #define IP_UNICAST_IF 50 + +-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) +-#define MCAST_JOIN_GROUP 42 +-#define MCAST_BLOCK_SOURCE 43 +-#define MCAST_UNBLOCK_SOURCE 44 +-#define MCAST_LEAVE_GROUP 45 +-#define MCAST_JOIN_SOURCE_GROUP 46 +-#define MCAST_LEAVE_SOURCE_GROUP 47 +-#define MCAST_MSFILTER 48 +- +-#define MCAST_EXCLUDE 0 +-#define MCAST_INCLUDE 1 +-#endif +- + #define IP_RECVRETOPTS IP_RETOPTS + + #define IP_PMTUDISC_DONT 0 + #define IP_PMTUDISC_WANT 1 + #define IP_PMTUDISC_DO 2 + #define IP_PMTUDISC_PROBE 3 +- +-#define SOL_IP 0 ++#define IP_PMTUDISC_INTERFACE 4 + + #define IP_DEFAULT_MULTICAST_TTL 1 + #define IP_DEFAULT_MULTICAST_LOOP 1 +@@ -243,6 +229,19 @@ + char ip_opts[40]; + }; + ++#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) ++ ++#define MCAST_JOIN_GROUP 42 ++#define MCAST_BLOCK_SOURCE 43 ++#define MCAST_UNBLOCK_SOURCE 44 ++#define MCAST_LEAVE_GROUP 45 ++#define MCAST_JOIN_SOURCE_GROUP 46 ++#define MCAST_LEAVE_SOURCE_GROUP 47 ++#define MCAST_MSFILTER 48 ++ ++#define MCAST_EXCLUDE 0 ++#define MCAST_INCLUDE 1 ++ + struct ip_mreq + { + struct in_addr imr_multiaddr; +@@ -273,7 +272,6 @@ + (sizeof(struct ip_msfilter) - sizeof(struct in_addr) \ + + (numsrc) * sizeof(struct in_addr)) + +-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) + struct group_req { + uint32_t gr_interface; + struct sockaddr_storage gr_group; +@@ -295,7 +293,6 @@ + #define GROUP_FILTER_SIZE(numsrc) \ + (sizeof(struct group_filter) - sizeof(struct sockaddr_storage) \ + + (numsrc) * sizeof(struct sockaddr_storage)) +-#endif + + struct in_pktinfo + { +@@ -315,6 +312,7 @@ + struct sockaddr_in6 ip6m_addr; + uint32_t ip6m_mtu; + }; ++#endif + + #define IPV6_ADDRFORM 1 + #define IPV6_2292PKTINFO 2 +@@ -324,7 +322,6 @@ + #define IPV6_2292PKTOPTIONS 6 + #define IPV6_CHECKSUM 7 + #define IPV6_2292HOPLIMIT 8 +-#define SCM_SRCRT IPV6_RXSRCRT + #define IPV6_NEXTHOP 9 + #define IPV6_AUTHHDR 10 + #define IPV6_UNICAST_HOPS 16 +@@ -363,15 +360,11 @@ + #define IPV6_RXHOPOPTS IPV6_HOPOPTS + #define IPV6_RXDSTOPTS IPV6_DSTOPTS + +- + #define IPV6_PMTUDISC_DONT 0 + #define IPV6_PMTUDISC_WANT 1 + #define IPV6_PMTUDISC_DO 2 + #define IPV6_PMTUDISC_PROBE 3 + +-#define SOL_IPV6 41 +-#define SOL_ICMPV6 58 +- + #define IPV6_RTHDR_LOOSE 0 + #define IPV6_RTHDR_STRICT 1 + +diff -Nur musl-0.9.15/include/netinet/tcp.h musl-git/include/netinet/tcp.h +--- musl-0.9.15/include/netinet/tcp.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/netinet/tcp.h 2014-03-10 16:52:06.000000000 +0100 +@@ -44,42 +44,80 @@ + #define SOL_TCP 6 + #include + #include +-#endif ++#include ++#include ++ ++typedef uint32_t tcp_seq; + ++#define TH_FIN 0x01 ++#define TH_SYN 0x02 ++#define TH_RST 0x04 ++#define TH_PUSH 0x08 ++#define TH_ACK 0x10 ++#define TH_URG 0x20 ++ ++struct tcphdr { + #ifdef _GNU_SOURCE +-#include +-struct tcphdr +-{ +- u_int16_t source; +- u_int16_t dest; +- u_int32_t seq; +- u_int32_t ack_seq; ++#ifdef __GNUC__ ++ __extension__ ++#endif ++ union { struct { ++ ++ uint16_t source; ++ uint16_t dest; ++ uint32_t seq; ++ uint32_t ack_seq; ++#if __BYTE_ORDER == __LITTLE_ENDIAN ++ uint16_t res1:4; ++ uint16_t doff:4; ++ uint16_t fin:1; ++ uint16_t syn:1; ++ uint16_t rst:1; ++ uint16_t psh:1; ++ uint16_t ack:1; ++ uint16_t urg:1; ++ uint16_t res2:2; ++#else ++ uint16_t doff:4; ++ uint16_t res1:4; ++ uint16_t res2:2; ++ uint16_t urg:1; ++ uint16_t ack:1; ++ uint16_t psh:1; ++ uint16_t rst:1; ++ uint16_t syn:1; ++ uint16_t fin:1; ++#endif ++ uint16_t window; ++ uint16_t check; ++ uint16_t urg_ptr; ++ ++ }; struct { ++#endif ++ ++ uint16_t th_sport; ++ uint16_t th_dport; ++ uint32_t th_seq; ++ uint32_t th_ack; + #if __BYTE_ORDER == __LITTLE_ENDIAN +- u_int16_t res1:4; +- u_int16_t doff:4; +- u_int16_t fin:1; +- u_int16_t syn:1; +- u_int16_t rst:1; +- u_int16_t psh:1; +- u_int16_t ack:1; +- u_int16_t urg:1; +- u_int16_t res2:2; ++ uint8_t th_x2:4; ++ uint8_t th_off:4; + #else +- u_int16_t doff:4; +- u_int16_t res1:4; +- u_int16_t res2:2; +- u_int16_t urg:1; +- u_int16_t ack:1; +- u_int16_t psh:1; +- u_int16_t rst:1; +- u_int16_t syn:1; +- u_int16_t fin:1; +-#endif +- u_int16_t window; +- u_int16_t check; +- u_int16_t urg_ptr; ++ uint8_t th_off:4; ++ uint8_t th_x2:4; ++#endif ++ uint8_t th_flags; ++ uint16_t th_win; ++ uint16_t th_sum; ++ uint16_t th_urp; ++ ++#ifdef _GNU_SOURCE ++ }; }; ++#endif + }; ++#endif + ++#ifdef _GNU_SOURCE + #define TCPI_OPT_TIMESTAMPS 1 + #define TCPI_OPT_SACK 2 + #define TCPI_OPT_WSCALE 4 +@@ -93,37 +131,37 @@ + + struct tcp_info + { +- u_int8_t tcpi_state; +- u_int8_t tcpi_ca_state; +- u_int8_t tcpi_retransmits; +- u_int8_t tcpi_probes; +- u_int8_t tcpi_backoff; +- u_int8_t tcpi_options; +- u_int8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; +- u_int32_t tcpi_rto; +- u_int32_t tcpi_ato; +- u_int32_t tcpi_snd_mss; +- u_int32_t tcpi_rcv_mss; +- u_int32_t tcpi_unacked; +- u_int32_t tcpi_sacked; +- u_int32_t tcpi_lost; +- u_int32_t tcpi_retrans; +- u_int32_t tcpi_fackets; +- u_int32_t tcpi_last_data_sent; +- u_int32_t tcpi_last_ack_sent; +- u_int32_t tcpi_last_data_recv; +- u_int32_t tcpi_last_ack_recv; +- u_int32_t tcpi_pmtu; +- u_int32_t tcpi_rcv_ssthresh; +- u_int32_t tcpi_rtt; +- u_int32_t tcpi_rttvar; +- u_int32_t tcpi_snd_ssthresh; +- u_int32_t tcpi_snd_cwnd; +- u_int32_t tcpi_advmss; +- u_int32_t tcpi_reordering; +- u_int32_t tcpi_rcv_rtt; +- u_int32_t tcpi_rcv_space; +- u_int32_t tcpi_total_retrans; ++ uint8_t tcpi_state; ++ uint8_t tcpi_ca_state; ++ uint8_t tcpi_retransmits; ++ uint8_t tcpi_probes; ++ uint8_t tcpi_backoff; ++ uint8_t tcpi_options; ++ uint8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; ++ uint32_t tcpi_rto; ++ uint32_t tcpi_ato; ++ uint32_t tcpi_snd_mss; ++ uint32_t tcpi_rcv_mss; ++ uint32_t tcpi_unacked; ++ uint32_t tcpi_sacked; ++ uint32_t tcpi_lost; ++ uint32_t tcpi_retrans; ++ uint32_t tcpi_fackets; ++ uint32_t tcpi_last_data_sent; ++ uint32_t tcpi_last_ack_sent; ++ uint32_t tcpi_last_data_recv; ++ uint32_t tcpi_last_ack_recv; ++ uint32_t tcpi_pmtu; ++ uint32_t tcpi_rcv_ssthresh; ++ uint32_t tcpi_rtt; ++ uint32_t tcpi_rttvar; ++ uint32_t tcpi_snd_ssthresh; ++ uint32_t tcpi_snd_cwnd; ++ uint32_t tcpi_advmss; ++ uint32_t tcpi_reordering; ++ uint32_t tcpi_rcv_rtt; ++ uint32_t tcpi_rcv_space; ++ uint32_t tcpi_total_retrans; + }; + + #define TCP_MD5SIG_MAXKEYLEN 80 +@@ -131,10 +169,10 @@ + struct tcp_md5sig + { + struct sockaddr_storage tcpm_addr; +- u_int16_t __tcpm_pad1; +- u_int16_t tcpm_keylen; +- u_int32_t __tcpm_pad2; +- u_int8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN]; ++ uint16_t __tcpm_pad1; ++ uint16_t tcpm_keylen; ++ uint32_t __tcpm_pad2; ++ uint8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN]; + }; + + #endif +diff -Nur musl-0.9.15/include/netinet/udp.h musl-git/include/netinet/udp.h +--- musl-0.9.15/include/netinet/udp.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/netinet/udp.h 2014-03-10 16:52:06.000000000 +0100 +@@ -5,19 +5,22 @@ + extern "C" { + #endif + ++#include + #include + +-struct udphdr { +- uint16_t source; +- uint16_t dest; +- uint16_t len; +- uint16_t check; +-}; +- ++#ifdef _GNU_SOURCE + #define uh_sport source + #define uh_dport dest + #define uh_ulen len + #define uh_sum check ++#endif ++ ++struct udphdr { ++ uint16_t uh_sport; ++ uint16_t uh_dport; ++ uint16_t uh_ulen; ++ uint16_t uh_sum; ++}; + + #define UDP_CORK 1 + #define UDP_ENCAP 100 +diff -Nur musl-0.9.15/include/sched.h musl-git/include/sched.h +--- musl-0.9.15/include/sched.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/sched.h 2014-03-10 16:52:06.000000000 +0100 +@@ -78,7 +78,7 @@ + int sched_getaffinity(pid_t, size_t, cpu_set_t *); + int sched_setaffinity(pid_t, size_t, const cpu_set_t *); + +-#define __CPU_op_S(i, size, set, op) ( (i)/8 >= (size) ? 0 : \ ++#define __CPU_op_S(i, size, set, op) ( (i)/8U >= (size) ? 0 : \ + ((set)->__bits[(i)/8/sizeof(long)] op (1UL<<((i)%(8*sizeof(long))))) ) + + #define CPU_SET_S(i, size, set) __CPU_op_S(i, size, set, |=) +diff -Nur musl-0.9.15/include/signal.h musl-git/include/signal.h +--- musl-0.9.15/include/signal.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/signal.h 2014-03-10 16:52:06.000000000 +0100 +@@ -227,8 +227,8 @@ + typedef void (*sighandler_t)(int); + void (*bsd_signal(int, void (*)(int)))(int); + int sigisemptyset(const sigset_t *); +-int sigorset (sigset_t *, sigset_t *, sigset_t *); +-int sigandset(sigset_t *, sigset_t *, sigset_t *); ++int sigorset (sigset_t *, const sigset_t *, const sigset_t *); ++int sigandset(sigset_t *, const sigset_t *, const sigset_t *); + + #define SA_NOMASK SA_NODEFER + #define SA_ONESHOT SA_RESETHAND +diff -Nur musl-0.9.15/include/stdlib.h musl-git/include/stdlib.h +--- musl-0.9.15/include/stdlib.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/stdlib.h 2014-03-10 16:52:06.000000000 +0100 +@@ -93,7 +93,7 @@ + #define WSTOPSIG(s) WEXITSTATUS(s) + #define WIFEXITED(s) (!WTERMSIG(s)) + #define WIFSTOPPED(s) ((short)((((s)&0xffff)*0x10001)>>8) > 0x7f00) +-#define WIFSIGNALED(s) (((s)&0xffff)-1 < 0xffu) ++#define WIFSIGNALED(s) (((s)&0xffff)-1U < 0xffu) + + int posix_memalign (void **, size_t, size_t); + int setenv (const char *, const char *, int); +diff -Nur musl-0.9.15/include/sys/inotify.h musl-git/include/sys/inotify.h +--- musl-0.9.15/include/sys/inotify.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/sys/inotify.h 2014-03-10 16:52:06.000000000 +0100 +@@ -48,7 +48,7 @@ + int inotify_init(void); + int inotify_init1(int); + int inotify_add_watch(int, const char *, uint32_t); +-int inotify_rm_watch(int, uint32_t); ++int inotify_rm_watch(int, int); + + #ifdef __cplusplus + } +diff -Nur musl-0.9.15/include/sys/mman.h musl-git/include/sys/mman.h +--- musl-0.9.15/include/sys/mman.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/sys/mman.h 2014-03-10 16:52:06.000000000 +0100 +@@ -33,7 +33,7 @@ + + #ifdef _GNU_SOURCE + void *mremap (void *, size_t, size_t, int, ...); +-int remap_file_pages (void *, size_t, int, ssize_t, int); ++int remap_file_pages (void *, size_t, int, size_t, int); + #endif + + #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) +diff -Nur musl-0.9.15/include/sys/procfs.h musl-git/include/sys/procfs.h +--- musl-0.9.15/include/sys/procfs.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/sys/procfs.h 2014-03-10 16:52:06.000000000 +0100 +@@ -40,7 +40,7 @@ + char pr_zomb; + char pr_nice; + unsigned long int pr_flag; +-#if __WORDSIZE == 32 ++#if UINTPTR_MAX == 0xffffffff + unsigned short int pr_uid; + unsigned short int pr_gid; + #else +diff -Nur musl-0.9.15/include/sys/sem.h musl-git/include/sys/sem.h +--- musl-0.9.15/include/sys/sem.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/sys/sem.h 2014-03-10 16:52:06.000000000 +0100 +@@ -29,19 +29,19 @@ + + struct semid_ds { + struct ipc_perm sem_perm; +- long sem_otime; +- unsigned long __unused1; +- long sem_ctime; +- unsigned long __unused2; ++ time_t sem_otime; ++ time_t __unused1; ++ time_t sem_ctime; ++ time_t __unused2; + #if __BYTE_ORDER == __LITTLE_ENDIAN + unsigned short sem_nsems; +- char __sem_nsems_pad[sizeof(long)-sizeof(short)]; ++ char __sem_nsems_pad[sizeof(time_t)-sizeof(short)]; + #else +- char __sem_nsems_pad[sizeof(long)-sizeof(short)]; ++ char __sem_nsems_pad[sizeof(time_t)-sizeof(short)]; + unsigned short sem_nsems; + #endif +- unsigned long __unused3; +- unsigned long __unused4; ++ time_t __unused3; ++ time_t __unused4; + }; + + #define _SEM_SEMUN_UNDEFINED 1 +diff -Nur musl-0.9.15/include/sys/shm.h musl-git/include/sys/shm.h +--- musl-0.9.15/include/sys/shm.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/sys/shm.h 2014-03-10 16:52:06.000000000 +0100 +@@ -14,6 +14,13 @@ + #include + + #include ++ ++#ifdef _GNU_SOURCE ++#define __used_ids used_ids ++#define __swap_attempts swap_attempts ++#define __swap_successes swap_successes ++#endif ++ + #include + + #define SHM_R 0400 +@@ -33,20 +40,6 @@ + #define SHM_HUGETLB 04000 + #define SHM_NORESERVE 010000 + +-struct shminfo { +- unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; +-}; +- +-struct shm_info { +- int used_ids; +- unsigned long shm_tot, shm_rss, shm_swp; +-#ifdef _GNU_SOURCE +- unsigned long swap_attempts, swap_successes; +-#else +- unsigned long __reserved[2]; +-#endif +-}; +- + typedef unsigned long shmatt_t; + + void *shmat(int, const void *, int); +diff -Nur musl-0.9.15/include/sys/socket.h musl-git/include/sys/socket.h +--- musl-0.9.15/include/sys/socket.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/sys/socket.h 2014-03-10 16:52:06.000000000 +0100 +@@ -202,11 +202,16 @@ + #define SO_LOCK_FILTER 44 + #define SO_SELECT_ERR_QUEUE 45 + #define SO_BUSY_POLL 46 ++#define SO_MAX_PACING_RATE 47 + + #ifndef SOL_SOCKET + #define SOL_SOCKET 1 + #endif + ++#define SOL_IP 0 ++#define SOL_IPV6 41 ++#define SOL_ICMPV6 58 ++ + #define SOL_RAW 255 + #define SOL_DECNET 261 + #define SOL_X25 262 +diff -Nur musl-0.9.15/include/sys/sysctl.h musl-git/include/sys/sysctl.h +--- musl-0.9.15/include/sys/sysctl.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/sys/sysctl.h 1970-01-01 01:00:00.000000000 +0100 +@@ -1,17 +0,0 @@ +-#ifndef _SYS_SYSCTL_H +-#define _SYS_SYSCTL_H +- +-#ifdef __cplusplus +-extern "C" { +-#endif +- +-#define __NEED_size_t +-#include +- +-int sysctl (int *, int, void *, size_t *, void *, size_t); +- +-#ifdef __cplusplus +-} +-#endif +- +-#endif +diff -Nur musl-0.9.15/include/sys/time.h musl-git/include/sys/time.h +--- musl-0.9.15/include/sys/time.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/sys/time.h 2014-03-10 16:52:06.000000000 +0100 +@@ -51,6 +51,17 @@ + ((a)->tv_usec += 1000000, (a)->tv_sec--) ) + #endif + ++#if defined(_GNU_SOURCE) ++#define TIMEVAL_TO_TIMESPEC(tv, ts) ( \ ++ (ts)->tv_sec = (tv)->tv_sec, \ ++ (ts)->tv_nsec = (tv)->tv_usec * 1000, \ ++ (void)0 ) ++#define TIMESPEC_TO_TIMEVAL(tv, ts) ( \ ++ (tv)->tv_sec = (ts)->tv_sec, \ ++ (tv)->tv_usec = (ts)->tv_nsec / 1000, \ ++ (void)0 ) ++#endif ++ + #ifdef __cplusplus + } + #endif +diff -Nur musl-0.9.15/include/sys/wait.h musl-git/include/sys/wait.h +--- musl-0.9.15/include/sys/wait.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/sys/wait.h 2014-03-10 16:52:06.000000000 +0100 +@@ -50,7 +50,7 @@ + #define WCOREDUMP(s) ((s) & 0x80) + #define WIFEXITED(s) (!WTERMSIG(s)) + #define WIFSTOPPED(s) ((short)((((s)&0xffff)*0x10001)>>8) > 0x7f00) +-#define WIFSIGNALED(s) (((s)&0xffff)-1 < 0xffu) ++#define WIFSIGNALED(s) (((s)&0xffff)-1U < 0xffu) + #define WIFCONTINUED(s) ((s) == 0xffff) + + #ifdef __cplusplus +diff -Nur musl-0.9.15/include/syslog.h musl-git/include/syslog.h +--- musl-0.9.15/include/syslog.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/syslog.h 2014-03-10 16:52:06.000000000 +0100 +@@ -21,7 +21,7 @@ + #define LOG_MAKEPRI(f, p) (((f)<<3)|(p)) + + #define LOG_MASK(p) (1<<(p)) +-#define LOG_UPTO(p) ((1<<(p)+1)-1) ++#define LOG_UPTO(p) ((1<<((p)+1))-1) + + #define LOG_KERN (0<<3) + #define LOG_USER (1<<3) +diff -Nur musl-0.9.15/include/time.h musl-git/include/time.h +--- musl-0.9.15/include/time.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/time.h 2014-03-10 16:52:06.000000000 +0100 +@@ -125,7 +125,7 @@ + + + #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) +-int stime(time_t *); ++int stime(const time_t *); + time_t timegm(struct tm *); + #endif + +diff -Nur musl-0.9.15/include/utmp.h musl-git/include/utmp.h +--- musl-0.9.15/include/utmp.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/utmp.h 2014-03-10 16:52:06.000000000 +0100 +@@ -10,6 +10,7 @@ + #define ACCOUNTING 9 + #define UT_NAMESIZE 32 + #define UT_HOSTSIZE 256 ++#define UT_LINESIZE 32 + + struct lastlog { + time_t ll_time; +@@ -22,6 +23,8 @@ + #define ut_addr ut_addr_v6[0] + #define utmp utmpx + #define utmpname(x) (-1) ++#define e_exit __e_exit ++#define e_termination __e_termination + + void endutent(void); + struct utmp *getutent(void); +diff -Nur musl-0.9.15/include/utmpx.h musl-git/include/utmpx.h +--- musl-0.9.15/include/utmpx.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/include/utmpx.h 2014-03-10 16:52:06.000000000 +0100 +@@ -5,6 +5,8 @@ + extern "C" { + #endif + ++#include ++ + #define __NEED_pid_t + #define __NEED_time_t + #define __NEED_suseconds_t +@@ -12,19 +14,17 @@ + + #include + +-#define UT_LINESIZE 32 +- + struct utmpx + { + short ut_type; + pid_t ut_pid; +- char ut_line[UT_LINESIZE]; ++ char ut_line[32]; + char ut_id[4]; + char ut_user[32]; + char ut_host[256]; + struct { +- short e_termination; +- short e_exit; ++ short __e_termination; ++ short __e_exit; + } ut_exit; + long ut_session; + struct timeval ut_tv; +@@ -39,7 +39,11 @@ + struct utmpx *pututxline(const struct utmpx *); + void setutxent(void); + ++#if defined(_BSD_SOURCE) | defined(_GNU_SOURCE) ++#define e_exit __e_exit ++#define e_termination __e_termination + void updwtmpx(const char *, const struct utmpx *); ++#endif + + #define EMPTY 0 + #define RUN_LVL 1 +diff -Nur musl-0.9.15/src/crypt/crypt_des.c musl-git/src/crypt/crypt_des.c +--- musl-0.9.15/src/crypt/crypt_des.c 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/src/crypt/crypt_des.c 2014-03-10 16:52:06.000000000 +0100 +@@ -692,7 +692,7 @@ + return saltbits; + } + +-static void des_setkey(const unsigned char *key, struct expanded_key *ekey) ++void __des_setkey(const unsigned char *key, struct expanded_key *ekey) + { + uint32_t k0, k1, rawkey0, rawkey1; + unsigned int shifts, round, i, ibit; +@@ -753,7 +753,7 @@ + /* + * l_in, r_in, l_out, and r_out are in pseudo-"big-endian" format. + */ +-static void do_des(uint32_t l_in, uint32_t r_in, ++void __do_des(uint32_t l_in, uint32_t r_in, + uint32_t *l_out, uint32_t *r_out, + uint32_t count, uint32_t saltbits, const struct expanded_key *ekey) + { +@@ -862,7 +862,7 @@ + ((uint32_t)in[5] << 16) | + ((uint32_t)in[4] << 24); + +- do_des(rawl, rawr, &l_out, &r_out, count, saltbits, ekey); ++ __do_des(rawl, rawr, &l_out, &r_out, count, saltbits, ekey); + + out[0] = l_out >> 24; + out[1] = l_out >> 16; +@@ -894,7 +894,7 @@ + if (*key) + key++; + } +- des_setkey(keybuf, &ekey); ++ __des_setkey(keybuf, &ekey); + + if (*setting == _PASSWORD_EFMT1) { + /* +@@ -929,7 +929,7 @@ + q = keybuf; + while (q <= &keybuf[sizeof(keybuf) - 1] && *key) + *q++ ^= *key++ << 1; +- des_setkey(keybuf, &ekey); ++ __des_setkey(keybuf, &ekey); + } + + memcpy(output, setting, 9); +@@ -957,7 +957,7 @@ + /* + * Do it. + */ +- do_des(0, 0, &r0, &r1, count, setup_salt(salt), &ekey); ++ __do_des(0, 0, &r0, &r1, count, setup_salt(salt), &ekey); + + /* + * Now encode the result... +diff -Nur musl-0.9.15/src/crypt/encrypt.c musl-git/src/crypt/encrypt.c +--- musl-0.9.15/src/crypt/encrypt.c 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/crypt/encrypt.c 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,60 @@ ++#include ++#include ++#include ++ ++struct expanded_key { ++ uint32_t l[16], r[16]; ++}; ++ ++void __des_setkey(const unsigned char *key, struct expanded_key *ekey); ++void __do_des(uint32_t l_in, uint32_t r_in, ++ uint32_t *l_out, uint32_t *r_out, ++ uint32_t count, uint32_t saltbits, const struct expanded_key *ekey); ++ ++ ++static struct expanded_key __encrypt_key; ++ ++void setkey(const char *key) ++{ ++ unsigned char bkey[8]; ++ int i, j; ++ ++ for (i = 0; i < 8; i++) { ++ bkey[i] = 0; ++ for (j = 7; j >= 0; j--, key++) ++ bkey[i] |= (uint32_t)(*key & 1) << j; ++ } ++ ++ __des_setkey(bkey, &__encrypt_key); ++} ++ ++void encrypt(char *block, int edflag) ++{ ++ struct expanded_key decrypt_key, *key; ++ uint32_t b[2]; ++ int i, j; ++ char *p; ++ ++ p = block; ++ for (i = 0; i < 2; i++) { ++ b[i] = 0; ++ for (j = 31; j >= 0; j--, p++) ++ b[i] |= (uint32_t)(*p & 1) << j; ++ } ++ ++ key = &__encrypt_key; ++ if (edflag) { ++ key = &decrypt_key; ++ for (i = 0; i < 16; i++) { ++ decrypt_key.l[i] = __encrypt_key.l[15-i]; ++ decrypt_key.r[i] = __encrypt_key.r[15-i]; ++ } ++ } ++ ++ __do_des(b[0], b[1], b, b + 1, 1, 0, key); ++ ++ p = block; ++ for (i = 0; i < 2; i++) ++ for (j = 31; j >= 0; j--) ++ *p++ = b[i]>>j & 1; ++} +diff -Nur musl-0.9.15/src/dirent/readdir.c musl-git/src/dirent/readdir.c +--- musl-0.9.15/src/dirent/readdir.c 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/src/dirent/readdir.c 2014-03-10 16:52:06.000000000 +0100 +@@ -1,5 +1,7 @@ + #include ++#include + #include "__dirent.h" ++#include "syscall.h" + #include "libc.h" + + int __getdents(int, struct dirent *, size_t); +@@ -9,8 +11,11 @@ + struct dirent *de; + + if (dir->buf_pos >= dir->buf_end) { +- int len = __getdents(dir->fd, (void *)dir->buf, sizeof dir->buf); +- if (len <= 0) return 0; ++ int len = __syscall(SYS_getdents, dir->fd, dir->buf, sizeof dir->buf); ++ if (len <= 0) { ++ if (len < 0 && len != -ENOENT) errno = -len; ++ return 0; ++ } + dir->buf_end = len; + dir->buf_pos = 0; + } +diff -Nur musl-0.9.15/src/errno/strerror.c musl-git/src/errno/strerror.c +--- musl-0.9.15/src/errno/strerror.c 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/src/errno/strerror.c 2014-03-10 16:52:06.000000000 +0100 +@@ -1,7 +1,7 @@ + #include + #include + +-#define E(a,b) a, ++#define E(a,b) ((unsigned char)a), + static const unsigned char errid[] = { + #include "__strerror.h" + }; +@@ -16,6 +16,12 @@ + { + const char *s; + int i; ++ /* mips has one error code outside of the 8-bit range due to a ++ * historical typo, so we just remap it. */ ++ if (EDQUOT==1133) { ++ if (e==109) e=-1; ++ else if (e==EDQUOT) e=109; ++ } + for (i=0; errid[i] && errid[i] != e; i++); + for (s=errmsg; i; s++, i--) for (; *s; s++); + return (char *)s; +diff -Nur musl-0.9.15/src/fcntl/fcntl.c musl-git/src/fcntl/fcntl.c +--- musl-0.9.15/src/fcntl/fcntl.c 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/src/fcntl/fcntl.c 2014-03-10 16:52:06.000000000 +0100 +@@ -7,17 +7,17 @@ + + int fcntl(int fd, int cmd, ...) + { +- long arg; ++ unsigned long arg; + va_list ap; + va_start(ap, cmd); +- arg = va_arg(ap, long); ++ arg = va_arg(ap, unsigned long); + va_end(ap); + if (cmd == F_SETFL) arg |= O_LARGEFILE; +- if (cmd == F_SETLKW) return syscall_cp(SYS_fcntl, fd, cmd, arg); ++ if (cmd == F_SETLKW) return syscall_cp(SYS_fcntl, fd, cmd, (void *)arg); + if (cmd == F_GETOWN) { + struct f_owner_ex ex; + int ret = __syscall(SYS_fcntl, fd, F_GETOWN_EX, &ex); +- if (ret == -EINVAL) return __syscall(SYS_fcntl, fd, cmd, arg); ++ if (ret == -EINVAL) return __syscall(SYS_fcntl, fd, cmd, (void *)arg); + if (ret) return __syscall_ret(ret); + return ex.type == F_OWNER_PGRP ? -ex.pid : ex.pid; + } +@@ -37,5 +37,14 @@ + if (ret >= 0) __syscall(SYS_fcntl, ret, F_SETFD, FD_CLOEXEC); + return __syscall_ret(ret); + } +- return syscall(SYS_fcntl, fd, cmd, arg); ++ switch (cmd) { ++ case F_SETLK: ++ case F_SETLKW: ++ case F_GETLK: ++ case F_GETOWN_EX: ++ case F_SETOWN_EX: ++ return syscall(SYS_fcntl, fd, cmd, (void *)arg); ++ default: ++ return syscall(SYS_fcntl, fd, cmd, arg); ++ } + } +diff -Nur musl-0.9.15/src/fcntl/posix_fadvise.c musl-git/src/fcntl/posix_fadvise.c +--- musl-0.9.15/src/fcntl/posix_fadvise.c 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/src/fcntl/posix_fadvise.c 2014-03-10 16:52:06.000000000 +0100 +@@ -1,8 +1,11 @@ + #include + #include "syscall.h" ++#include "libc.h" + + int posix_fadvise(int fd, off_t base, off_t len, int advice) + { + return -(__syscall)(SYS_fadvise, fd, __SYSCALL_LL_O(base), + __SYSCALL_LL_E(len), advice); + } ++ ++LFS64(posix_fadvise); +diff -Nur musl-0.9.15/src/fcntl/posix_fallocate.c musl-git/src/fcntl/posix_fallocate.c +--- musl-0.9.15/src/fcntl/posix_fallocate.c 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/src/fcntl/posix_fallocate.c 2014-03-10 16:52:06.000000000 +0100 +@@ -1,8 +1,11 @@ + #include + #include "syscall.h" ++#include "libc.h" + + int posix_fallocate(int fd, off_t base, off_t len) + { + return -__syscall(SYS_fallocate, fd, 0, __SYSCALL_LL_E(base), + __SYSCALL_LL_E(len)); + } ++ ++LFS64(posix_fallocate); +diff -Nur musl-0.9.15/src/fenv/i386/fenv.s musl-git/src/fenv/i386/fenv.s +--- musl-0.9.15/src/fenv/i386/fenv.s 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/src/fenv/i386/fenv.s 2014-03-10 16:52:06.000000000 +0100 +@@ -126,7 +126,7 @@ + push %eax + push %eax + push %eax +- push %eax ++ pushl $0xffff + push %eax + pushl $0x37f + fldenv (%esp) +diff -Nur musl-0.9.15/src/fenv/mipsel-sf/fenv.sub musl-git/src/fenv/mipsel-sf/fenv.sub +--- musl-0.9.15/src/fenv/mipsel-sf/fenv.sub 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/fenv/mipsel-sf/fenv.sub 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1 @@ ++../fenv.c +diff -Nur musl-0.9.15/src/fenv/mips-sf/fenv.sub musl-git/src/fenv/mips-sf/fenv.sub +--- musl-0.9.15/src/fenv/mips-sf/fenv.sub 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/fenv/mips-sf/fenv.sub 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1 @@ ++../fenv.c +diff -Nur musl-0.9.15/src/fenv/sh/fenv.s musl-git/src/fenv/sh/fenv.s +--- musl-0.9.15/src/fenv/sh/fenv.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/fenv/sh/fenv.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,74 @@ ++.global fegetround ++.type fegetround, @function ++fegetround: ++ sts fpscr, r0 ++ rts ++ and #3, r0 ++ ++.global __fesetround ++.type __fesetround, @function ++__fesetround: ++ sts fpscr, r0 ++ or r4, r0 ++ lds r0, fpscr ++ rts ++ mov #0, r0 ++ ++.global fetestexcept ++.type fetestexcept, @function ++fetestexcept: ++ sts fpscr, r0 ++ and r4, r0 ++ rts ++ and #0x7c, r0 ++ ++.global feclearexcept ++.type feclearexcept, @function ++feclearexcept: ++ mov r4, r0 ++ and #0x7c, r0 ++ not r0, r4 ++ sts fpscr, r0 ++ and r4, r0 ++ lds r0, fpscr ++ rts ++ mov #0, r0 ++ ++.global feraiseexcept ++.type feraiseexcept, @function ++feraiseexcept: ++ mov r4, r0 ++ and #0x7c, r0 ++ sts fpscr, r4 ++ or r4, r0 ++ lds r0, fpscr ++ rts ++ mov #0, r0 ++ ++.global fegetenv ++.type fegetenv, @function ++fegetenv: ++ sts fpscr, r0 ++ mov.l r0, @r4 ++ rts ++ mov #0, r0 ++ ++.global fesetenv ++.type fesetenv, @function ++fesetenv: ++ mov r4, r0 ++ cmp/eq #-1, r0 ++ bf 1f ++ ++ ! the default environment is complicated by the fact that we need to ++ ! preserve the current precision bit, which we do not know a priori ++ sts fpscr, r0 ++ mov #8, r1 ++ swap.w r1, r1 ++ bra 2f ++ and r1, r0 ++ ++1: mov.l @r4, r0 ! non-default environment ++2: lds r0, fpscr ++ rts ++ mov #0, r0 +diff -Nur musl-0.9.15/src/fenv/sheb-nofpu/fenv.sub musl-git/src/fenv/sheb-nofpu/fenv.sub +--- musl-0.9.15/src/fenv/sheb-nofpu/fenv.sub 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/fenv/sheb-nofpu/fenv.sub 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1 @@ ++../fenv.c +diff -Nur musl-0.9.15/src/fenv/sh-nofpu/fenv.sub musl-git/src/fenv/sh-nofpu/fenv.sub +--- musl-0.9.15/src/fenv/sh-nofpu/fenv.sub 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/fenv/sh-nofpu/fenv.sub 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1 @@ ++../fenv.c +diff -Nur musl-0.9.15/src/fenv/x32/fenv.s musl-git/src/fenv/x32/fenv.s +--- musl-0.9.15/src/fenv/x32/fenv.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/fenv/x32/fenv.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,97 @@ ++.global feclearexcept ++.type feclearexcept,@function ++feclearexcept: ++ # maintain exceptions in the sse mxcsr, clear x87 exceptions ++ mov %edi,%ecx ++ and $0x3f,%ecx ++ fnstsw %ax ++ test %eax,%ecx ++ jz 1f ++ fnclex ++1: stmxcsr -8(%esp) ++ and $0x3f,%eax ++ or %eax,-8(%esp) ++ test %ecx,-8(%esp) ++ jz 1f ++ not %ecx ++ and %ecx,-8(%esp) ++ ldmxcsr -8(%esp) ++1: xor %eax,%eax ++ ret ++ ++.global feraiseexcept ++.type feraiseexcept,@function ++feraiseexcept: ++ and $0x3f,%edi ++ stmxcsr -8(%esp) ++ or %edi,-8(%esp) ++ ldmxcsr -8(%esp) ++ xor %eax,%eax ++ ret ++ ++.global __fesetround ++.type __fesetround,@function ++__fesetround: ++ push %rax ++ xor %eax,%eax ++ mov %edi,%ecx ++ fnstcw (%esp) ++ andb $0xf3,1(%esp) ++ or %ch,1(%esp) ++ fldcw (%esp) ++ stmxcsr (%esp) ++ shl $3,%ch ++ andb $0x9f,1(%esp) ++ or %ch,1(%esp) ++ ldmxcsr (%esp) ++ pop %rcx ++ ret ++ ++.global fegetround ++.type fegetround,@function ++fegetround: ++ push %rax ++ stmxcsr (%esp) ++ pop %rax ++ shr $3,%eax ++ and $0xc00,%eax ++ ret ++ ++.global fegetenv ++.type fegetenv,@function ++fegetenv: ++ xor %eax,%eax ++ fnstenv (%edi) ++ stmxcsr 28(%edi) ++ ret ++ ++.global fesetenv ++.type fesetenv,@function ++fesetenv: ++ xor %eax,%eax ++ inc %edi ++ jz 1f ++ fldenv -1(%edi) ++ ldmxcsr 27(%edi) ++ ret ++1: push %rax ++ push %rax ++ pushq $0xffff ++ pushq $0x37f ++ fldenv (%esp) ++ pushq $0x1f80 ++ ldmxcsr (%esp) ++ add $40,%esp ++ ret ++ ++.global fetestexcept ++.type fetestexcept,@function ++fetestexcept: ++ and $0x3f,%edi ++ push %rax ++ stmxcsr (%esp) ++ pop %rsi ++ fnstsw %ax ++ or %esi,%eax ++ and %edi,%eax ++ ret +diff -Nur musl-0.9.15/src/fenv/x86_64/fenv.s musl-git/src/fenv/x86_64/fenv.s +--- musl-0.9.15/src/fenv/x86_64/fenv.s 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/src/fenv/x86_64/fenv.s 2014-03-10 16:52:06.000000000 +0100 +@@ -76,7 +76,7 @@ + ret + 1: push %rax + push %rax +- push %rax ++ pushq $0xffff + pushq $0x37f + fldenv (%rsp) + pushq $0x1f80 +diff -Nur musl-0.9.15/src/internal/sh/syscall.s musl-git/src/internal/sh/syscall.s +--- musl-0.9.15/src/internal/sh/syscall.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/internal/sh/syscall.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,22 @@ ++.global __syscall ++.type __syscall, @function ++__syscall: ++ ! The kernel syscall entry point documents that the trap number indicates ++ ! the number of arguments being passed, but it then ignores that information. ++ ! Since we do not actually know how many arguments are being passed, we will ++ ! say there are six, since that is the maximum we support here. ++ mov r4, r3 ++ mov r5, r4 ++ mov r6, r5 ++ mov r7, r6 ++ mov.l @r15, r7 ++ mov.l @(4,r15), r0 ++ mov.l @(8,r15), r1 ++ trapa #22 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ rts ++ nop +diff -Nur musl-0.9.15/src/internal/stdio_impl.h musl-git/src/internal/stdio_impl.h +--- musl-0.9.15/src/internal/stdio_impl.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/src/internal/stdio_impl.h 2014-03-10 16:52:06.000000000 +0100 +@@ -17,6 +17,7 @@ + #define F_EOF 16 + #define F_ERR 32 + #define F_SVB 64 ++#define F_APP 128 + + struct _IO_FILE { + unsigned flags; +diff -Nur musl-0.9.15/src/internal/syscall.h musl-git/src/internal/syscall.h +--- musl-0.9.15/src/internal/syscall.h 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/src/internal/syscall.h 2014-03-10 16:52:06.000000000 +0100 +@@ -1,22 +1,28 @@ + #ifndef _INTERNAL_SYSCALL_H + #define _INTERNAL_SYSCALL_H + +-#if defined(__PIC__) && (100*__GNUC__+__GNUC_MINOR__ >= 303) +-__attribute__((visibility("protected"))) +-#endif +-long __syscall_ret(unsigned long), __syscall(long, ...), +- __syscall_cp(long, long, long, long, long, long, long); +- + #include + #include "syscall_arch.h" + +-#define __syscall1(n,a) __syscall1(n,(long)(a)) +-#define __syscall2(n,a,b) __syscall2(n,(long)(a),(long)(b)) +-#define __syscall3(n,a,b,c) __syscall3(n,(long)(a),(long)(b),(long)(c)) +-#define __syscall4(n,a,b,c,d) __syscall4(n,(long)(a),(long)(b),(long)(c),(long)(d)) +-#define __syscall5(n,a,b,c,d,e) __syscall5(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e)) +-#define __syscall6(n,a,b,c,d,e,f) __syscall6(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e),(long)(f)) +-#define __syscall7(n,a,b,c,d,e,f,g) (__syscall)(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e),(long)(f),(long)g) ++#ifndef __scc ++#define __scc(X) ((long) (X)) ++typedef long syscall_arg_t; ++#endif ++ ++#if defined(__PIC__) && (100*__GNUC__+__GNUC_MINOR__ >= 303) ++__attribute__((visibility("protected"))) ++#endif ++long __syscall_ret(unsigned long), __syscall(syscall_arg_t, ...), ++ __syscall_cp(syscall_arg_t, syscall_arg_t, syscall_arg_t, syscall_arg_t, ++ syscall_arg_t, syscall_arg_t, syscall_arg_t); ++ ++#define __syscall1(n,a) __syscall1(n,__scc(a)) ++#define __syscall2(n,a,b) __syscall2(n,__scc(a),__scc(b)) ++#define __syscall3(n,a,b,c) __syscall3(n,__scc(a),__scc(b),__scc(c)) ++#define __syscall4(n,a,b,c,d) __syscall4(n,__scc(a),__scc(b),__scc(c),__scc(d)) ++#define __syscall5(n,a,b,c,d,e) __syscall5(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e)) ++#define __syscall6(n,a,b,c,d,e,f) __syscall6(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f)) ++#define __syscall7(n,a,b,c,d,e,f,g) (__syscall)(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f),__scc(g)) + + #define __SYSCALL_NARGS_X(a,b,c,d,e,f,g,h,n,...) n + #define __SYSCALL_NARGS(...) __SYSCALL_NARGS_X(__VA_ARGS__,7,6,5,4,3,2,1,0,) +@@ -31,12 +37,12 @@ + #define socketcall_cp __socketcall_cp + + #define __syscall_cp0(n) (__syscall_cp)(n,0,0,0,0,0,0) +-#define __syscall_cp1(n,a) (__syscall_cp)(n,(long)(a),0,0,0,0,0) +-#define __syscall_cp2(n,a,b) (__syscall_cp)(n,(long)(a),(long)(b),0,0,0,0) +-#define __syscall_cp3(n,a,b,c) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),0,0,0) +-#define __syscall_cp4(n,a,b,c,d) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),(long)(d),0,0) +-#define __syscall_cp5(n,a,b,c,d,e) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e),0) +-#define __syscall_cp6(n,a,b,c,d,e,f) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e),(long)(f)) ++#define __syscall_cp1(n,a) (__syscall_cp)(n,__scc(a),0,0,0,0,0) ++#define __syscall_cp2(n,a,b) (__syscall_cp)(n,__scc(a),__scc(b),0,0,0,0) ++#define __syscall_cp3(n,a,b,c) (__syscall_cp)(n,__scc(a),__scc(b),__scc(c),0,0,0) ++#define __syscall_cp4(n,a,b,c,d) (__syscall_cp)(n,__scc(a),__scc(b),__scc(c),__scc(d),0,0) ++#define __syscall_cp5(n,a,b,c,d,e) (__syscall_cp)(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),0) ++#define __syscall_cp6(n,a,b,c,d,e,f) (__syscall_cp)(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f)) + + #define __syscall_cp(...) __SYSCALL_DISP(__syscall_cp,__VA_ARGS__) + #define syscall_cp(...) __syscall_ret(__syscall_cp(__VA_ARGS__)) +diff -Nur musl-0.9.15/src/internal/x32/syscall.s musl-git/src/internal/x32/syscall.s +--- musl-0.9.15/src/internal/x32/syscall.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/internal/x32/syscall.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,12 @@ ++.global __syscall ++.type __syscall,@function ++__syscall: ++ movq %rdi,%rax ++ movq %rsi,%rdi ++ movq %rdx,%rsi ++ movq %rcx,%rdx ++ movq %r8,%r10 ++ movq %r9,%r8 ++ movq 8(%rsp),%r9 ++ syscall ++ ret +diff -Nur musl-0.9.15/src/ipc/semctl.c musl-git/src/ipc/semctl.c +--- musl-0.9.15/src/ipc/semctl.c 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/src/ipc/semctl.c 2014-03-10 16:52:06.000000000 +0100 +@@ -3,16 +3,22 @@ + #include "syscall.h" + #include "ipc.h" + ++union semun { ++ int val; ++ struct semid_ds *buf; ++ unsigned short *array; ++}; ++ + int semctl(int id, int num, int cmd, ...) + { +- long arg; ++ union semun arg; + va_list ap; + va_start(ap, cmd); +- arg = va_arg(ap, long); ++ arg = va_arg(ap, union semun); + va_end(ap); + #ifdef SYS_semctl +- return syscall(SYS_semctl, id, num, cmd | IPC_64, arg); ++ return syscall(SYS_semctl, id, num, cmd | IPC_64, arg.buf); + #else +- return syscall(SYS_ipc, IPCOP_semctl, id, num, cmd | IPC_64, &arg); ++ return syscall(SYS_ipc, IPCOP_semctl, id, num, cmd | IPC_64, &arg.buf); + #endif + } +diff -Nur musl-0.9.15/src/ldso/dladdr.c musl-git/src/ldso/dladdr.c +--- musl-0.9.15/src/ldso/dladdr.c 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/src/ldso/dladdr.c 2014-03-10 16:52:06.000000000 +0100 +@@ -1,9 +1,9 @@ + #define _GNU_SOURCE + #include + +-int __dladdr(void *, Dl_info *); ++int __dladdr(const void *, Dl_info *); + +-int dladdr(void *addr, Dl_info *info) ++int dladdr(const void *addr, Dl_info *info) + { + return __dladdr(addr, info); + } +diff -Nur musl-0.9.15/src/ldso/dynlink.c musl-git/src/ldso/dynlink.c +--- musl-0.9.15/src/ldso/dynlink.c 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/src/ldso/dynlink.c 2014-03-10 16:52:06.000000000 +0100 +@@ -253,7 +253,8 @@ + name = strings + sym->st_name; + ctx = IS_COPY(type) ? head->next : head; + def = find_sym(ctx, name, IS_PLT(type)); +- if (!def.sym && sym->st_info>>4 != STB_WEAK) { ++ if (!def.sym && (sym->st_shndx != SHN_UNDEF ++ || sym->st_info>>4 != STB_WEAK)) { + snprintf(errbuf, sizeof errbuf, + "Error relocating %s: %s: symbol not found", + dso->name, name); +@@ -1331,7 +1332,7 @@ + return 0; + } + +-int __dladdr(void *addr, Dl_info *info) ++int __dladdr(const void *addr, Dl_info *info) + { + struct dso *p; + Sym *sym; +@@ -1441,7 +1442,7 @@ + { + return 0; + } +-int __dladdr (void *addr, Dl_info *info) ++int __dladdr (const void *addr, Dl_info *info) + { + return 0; + } +diff -Nur musl-0.9.15/src/ldso/sh/dlsym.s musl-git/src/ldso/sh/dlsym.s +--- musl-0.9.15/src/ldso/sh/dlsym.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/ldso/sh/dlsym.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,10 @@ ++.text ++.global dlsym ++.type dlsym, @function ++dlsym: ++ mov.l L1, r0 ++ braf r0 ++1: mov.l @r15, r6 ++ ++.align 2 ++L1: .long __dlsym@PLT-(1b-.) +diff -Nur musl-0.9.15/src/ldso/sh/start.s musl-git/src/ldso/sh/start.s +--- musl-0.9.15/src/ldso/sh/start.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/ldso/sh/start.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,26 @@ ++.text ++.global _start ++.type _start, @function ++_start: ++ mov.l @r15, r4 ++ mov r15, r5 ++ mov.l L1, r0 ++ bsrf r0 ++ add #4, r5 ++ ++2: mov r0, r2 ++ mov.l @r15+, r1 ++1: mov.l @r15+, r0 ++ cmp/eq #-1, r0 ++ bt/s 1b ++ add #-1, r1 ++ ++ add #1, r1 ++ mov.l r0, @-r15 ++ mov.l r1, @-r15 ++ mov #0, r4 ++ jmp @r2 ++ nop ++ ++.align 2 ++L1: .long __dynlink@PLT-(2b-.) +diff -Nur musl-0.9.15/src/ldso/x32/dlsym.s musl-git/src/ldso/x32/dlsym.s +--- musl-0.9.15/src/ldso/x32/dlsym.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/ldso/x32/dlsym.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,6 @@ ++.text ++.global dlsym ++.type dlsym,@function ++dlsym: ++ mov (%rsp),%rdx ++ jmp __dlsym +diff -Nur musl-0.9.15/src/ldso/x32/start.s musl-git/src/ldso/x32/start.s +--- musl-0.9.15/src/ldso/x32/start.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/ldso/x32/start.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,24 @@ ++.text ++.global _start ++_start: ++ mov (%rsp),%rdi /* move argc into 1st argument slot */ ++ lea 4(%rsp),%rsi /* move argv into 2nd argument slot */ ++ call __dynlink ++ /* in case the dynlinker was called directly, it sets the "consumed" ++ argv values to -1. so we must loop over the array as long as -1 ++ is in the top argv slot, decrement argc, and then set the stackpointer ++ to the new argc as well as argc's new value. ++ as the x32 abi has longs in the argv array, we cannot use push/pop.*/ ++ movl (%rsp),%edi /* copy argc into edi */ ++ xor %rdx,%rdx /* we use rdx as an offset to the current argv member */ ++1: dec %edi ++ addl $4, %edx ++ movl (%rsp, %rdx), %esi ++ cmp $-1,%esi ++ jz 1b ++ inc %edi ++ subl $4, %edx ++ lea (%rsp, %rdx), %rsp /* set rsp to new argv[-1] */ ++ movl %edi, (%rsp) /* write new argc there */ ++ xor %edx,%edx ++ jmp *%rax +diff -Nur musl-0.9.15/src/linux/clone.c musl-git/src/linux/clone.c +--- musl-0.9.15/src/linux/clone.c 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/linux/clone.c 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,19 @@ ++#include ++#include ++#include "pthread_impl.h" ++#include "syscall.h" ++ ++int clone(int (*func)(void *), void *stack, int flags, void *arg, ...) ++{ ++ va_list ap; ++ pid_t *ptid, *ctid; ++ void *tls; ++ ++ va_start(ap, arg); ++ ptid = va_arg(ap, pid_t *); ++ tls = va_arg(ap, void *); ++ ctid = va_arg(ap, pid_t *); ++ va_end(ap); ++ ++ return __syscall_ret(__clone(func, stack, flags, arg, ptid, tls, ctid)); ++} +diff -Nur musl-0.9.15/src/linux/fallocate.c musl-git/src/linux/fallocate.c +--- musl-0.9.15/src/linux/fallocate.c 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/src/linux/fallocate.c 2014-03-10 16:52:06.000000000 +0100 +@@ -1,9 +1,13 @@ + #define _GNU_SOURCE + #include + #include "syscall.h" ++#include "libc.h" + + int fallocate(int fd, int mode, off_t base, off_t len) + { + return syscall(SYS_fallocate, fd, mode, __SYSCALL_LL_E(base), + __SYSCALL_LL_E(len)); + } ++ ++#undef fallocate64 ++LFS64(fallocate); +diff -Nur musl-0.9.15/src/linux/inotify.c musl-git/src/linux/inotify.c +--- musl-0.9.15/src/linux/inotify.c 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/src/linux/inotify.c 2014-03-10 16:52:06.000000000 +0100 +@@ -15,7 +15,7 @@ + return syscall(SYS_inotify_add_watch, fd, pathname, mask); + } + +-int inotify_rm_watch(int fd, uint32_t wd) ++int inotify_rm_watch(int fd, int wd) + { + return syscall(SYS_inotify_rm_watch, fd, wd); + } +diff -Nur musl-0.9.15/src/linux/remap_file_pages.c musl-git/src/linux/remap_file_pages.c +--- musl-0.9.15/src/linux/remap_file_pages.c 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/src/linux/remap_file_pages.c 2014-03-10 16:52:06.000000000 +0100 +@@ -2,7 +2,7 @@ + #include + #include "syscall.h" + +-int remap_file_pages(void *addr, size_t size, int prot, ssize_t pgoff, int flags) ++int remap_file_pages(void *addr, size_t size, int prot, size_t pgoff, int flags) + { + return syscall(SYS_remap_file_pages, addr, size, prot, pgoff, flags); + } +diff -Nur musl-0.9.15/src/linux/stime.c musl-git/src/linux/stime.c +--- musl-0.9.15/src/linux/stime.c 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/src/linux/stime.c 2014-03-10 16:52:06.000000000 +0100 +@@ -2,7 +2,7 @@ + #include + #include + +-int stime(time_t *t) ++int stime(const time_t *t) + { + struct timeval tv = { .tv_sec = *t, .tv_usec = 0 }; + return settimeofday(&tv, (void *)0); +diff -Nur musl-0.9.15/src/linux/x32/sysinfo.s musl-git/src/linux/x32/sysinfo.s +--- musl-0.9.15/src/linux/x32/sysinfo.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/linux/x32/sysinfo.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,5 @@ ++.text ++.global sysinfo ++.type sysinfo,@function ++sysinfo: ++ jmp __x32_sysinfo +diff -Nur musl-0.9.15/src/locale/wcsxfrm.c musl-git/src/locale/wcsxfrm.c +--- musl-0.9.15/src/locale/wcsxfrm.c 2014-01-03 21:12:17.000000000 +0100 ++++ musl-git/src/locale/wcsxfrm.c 2014-03-10 16:52:06.000000000 +0100 +@@ -6,10 +6,12 @@ + size_t __wcsxfrm_l(wchar_t *restrict dest, const wchar_t *restrict src, size_t n, locale_t loc) + { + size_t l = wcslen(src); +- if (l >= n) { ++ if (l < n) { ++ wmemcpy(dest, src, l+1); ++ } else if (n) { + wmemcpy(dest, src, n-1); + dest[n-1] = 0; +- } else wcscpy(dest, src); ++ } + return l; + } + +diff -Nur musl-0.9.15/src/math/i386/remainderf.s musl-git/src/math/i386/remainderf.s +--- musl-0.9.15/src/math/i386/remainderf.s 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/math/i386/remainderf.s 2014-03-10 16:52:06.000000000 +0100 +@@ -1,6 +1,9 @@ + .global remainderf + .type remainderf,@function + remainderf: ++.weak dremf ++.type dremf,@function ++dremf: + flds 8(%esp) + flds 4(%esp) + 1: fprem1 +diff -Nur musl-0.9.15/src/math/i386/remainder.s musl-git/src/math/i386/remainder.s +--- musl-0.9.15/src/math/i386/remainder.s 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/math/i386/remainder.s 2014-03-10 16:52:06.000000000 +0100 +@@ -1,6 +1,9 @@ + .global remainder + .type remainder,@function + remainder: ++.weak drem ++.type drem,@function ++drem: + fldl 12(%esp) + fldl 4(%esp) + 1: fprem1 +diff -Nur musl-0.9.15/src/math/x32/acosl.s musl-git/src/math/x32/acosl.s +--- musl-0.9.15/src/math/x32/acosl.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/acosl.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,16 @@ ++# see ../i386/acos.s ++ ++.global acosl ++.type acosl,@function ++acosl: ++ fldt 8(%esp) ++1: fld %st(0) ++ fld1 ++ fsub %st(0),%st(1) ++ fadd %st(2) ++ fmulp ++ fsqrt ++ fabs ++ fxch %st(1) ++ fpatan ++ ret +diff -Nur musl-0.9.15/src/math/x32/asinl.s musl-git/src/math/x32/asinl.s +--- musl-0.9.15/src/math/x32/asinl.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/asinl.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,12 @@ ++.global asinl ++.type asinl,@function ++asinl: ++ fldt 8(%esp) ++1: fld %st(0) ++ fld1 ++ fsub %st(0),%st(1) ++ fadd %st(2) ++ fmulp ++ fsqrt ++ fpatan ++ ret +diff -Nur musl-0.9.15/src/math/x32/atan2l.s musl-git/src/math/x32/atan2l.s +--- musl-0.9.15/src/math/x32/atan2l.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/atan2l.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,7 @@ ++.global atan2l ++.type atan2l,@function ++atan2l: ++ fldt 8(%esp) ++ fldt 24(%esp) ++ fpatan ++ ret +diff -Nur musl-0.9.15/src/math/x32/atanl.s musl-git/src/math/x32/atanl.s +--- musl-0.9.15/src/math/x32/atanl.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/atanl.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,7 @@ ++.global atanl ++.type atanl,@function ++atanl: ++ fldt 8(%esp) ++ fld1 ++ fpatan ++ ret +diff -Nur musl-0.9.15/src/math/x32/ceill.s musl-git/src/math/x32/ceill.s +--- musl-0.9.15/src/math/x32/ceill.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/ceill.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1 @@ ++# see floorl.s +diff -Nur musl-0.9.15/src/math/x32/exp2l.s musl-git/src/math/x32/exp2l.s +--- musl-0.9.15/src/math/x32/exp2l.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/exp2l.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,90 @@ ++.global expm1l ++.type expm1l,@function ++expm1l: ++ fldt 8(%esp) ++ fldl2e ++ fmulp ++ movl $0xc2820000,-4(%esp) ++ flds -4(%esp) ++ fucomp %st(1) ++ fnstsw %ax ++ sahf ++ fld1 ++ jb 1f ++ # x*log2e <= -65, return -1 without underflow ++ fstp %st(1) ++ fchs ++ ret ++1: fld %st(1) ++ fabs ++ fucom %st(1) ++ fnstsw %ax ++ fstp %st(0) ++ fstp %st(0) ++ sahf ++ ja 1f ++ f2xm1 ++ ret ++1: push %rax ++ call 1f ++ pop %rax ++ fld1 ++ fsubrp ++ ret ++ ++.global exp2l ++.type exp2l,@function ++exp2l: ++ fldt 8(%esp) ++1: fld %st(0) ++ sub $16,%esp ++ fstpt (%esp) ++ mov 8(%esp),%ax ++ and $0x7fff,%ax ++ cmp $0x3fff+13,%ax ++ jb 4f # |x| < 8192 ++ cmp $0x3fff+15,%ax ++ jae 3f # |x| >= 32768 ++ fsts (%esp) ++ cmpl $0xc67ff800,(%esp) ++ jb 2f # x > -16382 ++ movl $0x5f000000,(%esp) ++ flds (%esp) # 0x1p63 ++ fld %st(1) ++ fsub %st(1) ++ faddp ++ fucomp %st(1) ++ fnstsw ++ sahf ++ je 2f # x - 0x1p63 + 0x1p63 == x ++ movl $1,(%esp) ++ flds (%esp) # 0x1p-149 ++ fdiv %st(1) ++ fstps (%esp) # raise underflow ++2: fld1 ++ fld %st(1) ++ frndint ++ fxch %st(2) ++ fsub %st(2) # st(0)=x-rint(x), st(1)=1, st(2)=rint(x) ++ f2xm1 ++ faddp # 2^(x-rint(x)) ++1: fscale ++ fstp %st(1) ++ add $16,%esp ++ ret ++3: xor %eax,%eax ++4: cmp $0x3fff-64,%ax ++ fld1 ++ jb 1b # |x| < 0x1p-64 ++ fstpt (%esp) ++ fistl 8(%esp) ++ fildl 8(%esp) ++ fsubrp %st(1) ++ addl $0x3fff,8(%esp) ++ f2xm1 ++ fld1 ++ faddp # 2^(x-rint(x)) ++ fldt (%esp) # 2^rint(x) ++ fmulp ++ add $16,%esp ++ ret +diff -Nur musl-0.9.15/src/math/x32/expl.s musl-git/src/math/x32/expl.s +--- musl-0.9.15/src/math/x32/expl.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/expl.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,101 @@ ++# exp(x) = 2^hi + 2^hi (2^lo - 1) ++# where hi+lo = log2e*x with 128bit precision ++# exact log2e*x calculation depends on nearest rounding mode ++# using the exact multiplication method of Dekker and Veltkamp ++ ++.global expl ++.type expl,@function ++expl: ++ fldt 8(%esp) ++ ++ # interesting case: 0x1p-32 <= |x| < 16384 ++ # check if (exponent|0x8000) is in [0xbfff-32, 0xbfff+13] ++ mov 16(%esp), %ax ++ or $0x8000, %ax ++ sub $0xbfdf, %ax ++ cmp $45, %ax ++ jbe 2f ++ test %ax, %ax ++ fld1 ++ js 1f ++ # if |x|>=0x1p14 or nan return 2^trunc(x) ++ fscale ++ fstp %st(1) ++ ret ++ # if |x|<0x1p-32 return 1+x ++1: faddp ++ ret ++ ++ # should be 0x1.71547652b82fe178p0L == 0x3fff b8aa3b29 5c17f0bc ++ # it will be wrong on non-nearest rounding mode ++2: fldl2e ++ sub $48, %esp ++ # hi = log2e_hi*x ++ # 2^hi = exp2l(hi) ++ fmul %st(1),%st ++ fld %st(0) ++ fstpt (%esp) ++ fstpt 16(%esp) ++ fstpt 32(%esp) ++ call exp2l ++ # if 2^hi == inf return 2^hi ++ fld %st(0) ++ fstpt (%esp) ++ cmpw $0x7fff, 8(%esp) ++ je 1f ++ fldt 32(%esp) ++ fldt 16(%esp) ++ # fpu stack: 2^hi x hi ++ # exact mult: x*log2e ++ fld %st(1) ++ # c = 0x1p32+1 ++ movq $0x41f0000000100000,%rax ++ pushq %rax ++ fldl (%esp) ++ # xh = x - c*x + c*x ++ # xl = x - xh ++ fmulp ++ fld %st(2) ++ fsub %st(1), %st ++ faddp ++ fld %st(2) ++ fsub %st(1), %st ++ # yh = log2e_hi - c*log2e_hi + c*log2e_hi ++ movq $0x3ff7154765200000,%rax ++ pushq %rax ++ fldl (%esp) ++ # fpu stack: 2^hi x hi xh xl yh ++ # lo = hi - xh*yh + xl*yh ++ fld %st(2) ++ fmul %st(1), %st ++ fsubp %st, %st(4) ++ fmul %st(1), %st ++ faddp %st, %st(3) ++ # yl = log2e_hi - yh ++ movq $0x3de705fc2f000000,%rax ++ pushq %rax ++ fldl (%esp) ++ # fpu stack: 2^hi x lo xh xl yl ++ # lo += xh*yl + xl*yl ++ fmul %st, %st(2) ++ fmulp %st, %st(1) ++ fxch %st(2) ++ faddp ++ faddp ++ # log2e_lo ++ movq $0xbfbe,%rax ++ pushq %rax ++ movq $0x82f0025f2dc582ee,%rax ++ pushq %rax ++ fldt (%esp) ++ add $40,%esp ++ # fpu stack: 2^hi x lo log2e_lo ++ # lo += log2e_lo*x ++ # return 2^hi + 2^hi (2^lo - 1) ++ fmulp %st, %st(2) ++ faddp ++ f2xm1 ++ fmul %st(1), %st ++ faddp ++1: add $48, %esp ++ ret +diff -Nur musl-0.9.15/src/math/x32/expm1l.s musl-git/src/math/x32/expm1l.s +--- musl-0.9.15/src/math/x32/expm1l.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/expm1l.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1 @@ ++# see exp2l.s +diff -Nur musl-0.9.15/src/math/x32/fabsf.s musl-git/src/math/x32/fabsf.s +--- musl-0.9.15/src/math/x32/fabsf.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/fabsf.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,7 @@ ++.global fabsf ++.type fabsf,@function ++fabsf: ++ mov $0x7fffffff,%eax ++ movq %rax,%xmm1 ++ andps %xmm1,%xmm0 ++ ret +diff -Nur musl-0.9.15/src/math/x32/fabsl.s musl-git/src/math/x32/fabsl.s +--- musl-0.9.15/src/math/x32/fabsl.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/fabsl.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,6 @@ ++.global fabsl ++.type fabsl,@function ++fabsl: ++ fldt 8(%esp) ++ fabs ++ ret +diff -Nur musl-0.9.15/src/math/x32/fabs.s musl-git/src/math/x32/fabs.s +--- musl-0.9.15/src/math/x32/fabs.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/fabs.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,9 @@ ++.global fabs ++.type fabs,@function ++fabs: ++ xor %eax,%eax ++ dec %rax ++ shr %rax ++ movq %rax,%xmm1 ++ andpd %xmm1,%xmm0 ++ ret +diff -Nur musl-0.9.15/src/math/x32/floorl.s musl-git/src/math/x32/floorl.s +--- musl-0.9.15/src/math/x32/floorl.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/floorl.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,27 @@ ++.global floorl ++.type floorl,@function ++floorl: ++ fldt 8(%esp) ++1: mov $0x7,%al ++1: fstcw 8(%esp) ++ mov 9(%esp),%ah ++ mov %al,9(%esp) ++ fldcw 8(%esp) ++ frndint ++ mov %ah,9(%esp) ++ fldcw 8(%esp) ++ ret ++ ++.global ceill ++.type ceill,@function ++ceill: ++ fldt 8(%esp) ++ mov $0xb,%al ++ jmp 1b ++ ++.global truncl ++.type truncl,@function ++truncl: ++ fldt 8(%esp) ++ mov $0xf,%al ++ jmp 1b +diff -Nur musl-0.9.15/src/math/x32/fmodl.s musl-git/src/math/x32/fmodl.s +--- musl-0.9.15/src/math/x32/fmodl.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/fmodl.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,11 @@ ++.global fmodl ++.type fmodl,@function ++fmodl: ++ fldt 24(%esp) ++ fldt 8(%esp) ++1: fprem ++ fstsw %ax ++ sahf ++ jp 1b ++ fstp %st(1) ++ ret +diff -Nur musl-0.9.15/src/math/x32/llrintf.s musl-git/src/math/x32/llrintf.s +--- musl-0.9.15/src/math/x32/llrintf.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/llrintf.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,5 @@ ++.global llrintf ++.type llrintf,@function ++llrintf: ++ cvtss2si %xmm0,%rax ++ ret +diff -Nur musl-0.9.15/src/math/x32/llrintl.s musl-git/src/math/x32/llrintl.s +--- musl-0.9.15/src/math/x32/llrintl.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/llrintl.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,7 @@ ++.global llrintl ++.type llrintl,@function ++llrintl: ++ fldt 8(%esp) ++ fistpll 8(%esp) ++ mov 8(%esp),%rax ++ ret +diff -Nur musl-0.9.15/src/math/x32/llrint.s musl-git/src/math/x32/llrint.s +--- musl-0.9.15/src/math/x32/llrint.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/llrint.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,5 @@ ++.global llrint ++.type llrint,@function ++llrint: ++ cvtsd2si %xmm0,%rax ++ ret +diff -Nur musl-0.9.15/src/math/x32/log10l.s musl-git/src/math/x32/log10l.s +--- musl-0.9.15/src/math/x32/log10l.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/log10l.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,7 @@ ++.global log10l ++.type log10l,@function ++log10l: ++ fldlg2 ++ fldt 8(%esp) ++ fyl2x ++ ret +diff -Nur musl-0.9.15/src/math/x32/log1pl.s musl-git/src/math/x32/log1pl.s +--- musl-0.9.15/src/math/x32/log1pl.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/log1pl.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,15 @@ ++.global log1pl ++.type log1pl,@function ++log1pl: ++ mov 14(%esp),%eax ++ fldln2 ++ and $0x7fffffff,%eax ++ fldt 8(%esp) ++ cmp $0x3ffd9400,%eax ++ ja 1f ++ fyl2xp1 ++ ret ++1: fld1 ++ faddp ++ fyl2x ++ ret +diff -Nur musl-0.9.15/src/math/x32/log2l.s musl-git/src/math/x32/log2l.s +--- musl-0.9.15/src/math/x32/log2l.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/log2l.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,7 @@ ++.global log2l ++.type log2l,@function ++log2l: ++ fld1 ++ fldt 8(%esp) ++ fyl2x ++ ret +diff -Nur musl-0.9.15/src/math/x32/logl.s musl-git/src/math/x32/logl.s +--- musl-0.9.15/src/math/x32/logl.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/logl.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,7 @@ ++.global logl ++.type logl,@function ++logl: ++ fldln2 ++ fldt 8(%esp) ++ fyl2x ++ ret +diff -Nur musl-0.9.15/src/math/x32/lrintf.s musl-git/src/math/x32/lrintf.s +--- musl-0.9.15/src/math/x32/lrintf.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/lrintf.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,5 @@ ++.global lrintf ++.type lrintf,@function ++lrintf: ++ cvtss2si %xmm0,%rax ++ ret +diff -Nur musl-0.9.15/src/math/x32/lrintl.s musl-git/src/math/x32/lrintl.s +--- musl-0.9.15/src/math/x32/lrintl.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/lrintl.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,7 @@ ++.global lrintl ++.type lrintl,@function ++lrintl: ++ fldt 8(%esp) ++ fistpll 8(%esp) ++ mov 8(%esp),%rax ++ ret +diff -Nur musl-0.9.15/src/math/x32/lrint.s musl-git/src/math/x32/lrint.s +--- musl-0.9.15/src/math/x32/lrint.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/lrint.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,5 @@ ++.global lrint ++.type lrint,@function ++lrint: ++ cvtsd2si %xmm0,%rax ++ ret +diff -Nur musl-0.9.15/src/math/x32/remainderl.s musl-git/src/math/x32/remainderl.s +--- musl-0.9.15/src/math/x32/remainderl.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/remainderl.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,11 @@ ++.global remainderl ++.type remainderl,@function ++remainderl: ++ fldt 24(%esp) ++ fldt 8(%esp) ++1: fprem1 ++ fstsw %ax ++ sahf ++ jp 1b ++ fstp %st(1) ++ ret +diff -Nur musl-0.9.15/src/math/x32/rintl.s musl-git/src/math/x32/rintl.s +--- musl-0.9.15/src/math/x32/rintl.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/rintl.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,6 @@ ++.global rintl ++.type rintl,@function ++rintl: ++ fldt 8(%esp) ++ frndint ++ ret +diff -Nur musl-0.9.15/src/math/x32/sqrtf.s musl-git/src/math/x32/sqrtf.s +--- musl-0.9.15/src/math/x32/sqrtf.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/sqrtf.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,4 @@ ++.global sqrtf ++.type sqrtf,@function ++sqrtf: sqrtss %xmm0, %xmm0 ++ ret +diff -Nur musl-0.9.15/src/math/x32/sqrtl.s musl-git/src/math/x32/sqrtl.s +--- musl-0.9.15/src/math/x32/sqrtl.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/sqrtl.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,5 @@ ++.global sqrtl ++.type sqrtl,@function ++sqrtl: fldt 8(%esp) ++ fsqrt ++ ret +diff -Nur musl-0.9.15/src/math/x32/sqrt.s musl-git/src/math/x32/sqrt.s +--- musl-0.9.15/src/math/x32/sqrt.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/sqrt.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,4 @@ ++.global sqrt ++.type sqrt,@function ++sqrt: sqrtsd %xmm0, %xmm0 ++ ret +diff -Nur musl-0.9.15/src/math/x32/truncl.s musl-git/src/math/x32/truncl.s +--- musl-0.9.15/src/math/x32/truncl.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/math/x32/truncl.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1 @@ ++# see floorl.s +diff -Nur musl-0.9.15/src/misc/nftw.c musl-git/src/misc/nftw.c +--- musl-0.9.15/src/misc/nftw.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/misc/nftw.c 2014-03-10 16:52:06.000000000 +0100 +@@ -46,8 +46,7 @@ + type = FTW_F; + } + +- if ((flags & FTW_MOUNT) && h +- && (st.st_dev != h->dev || st.st_ino != h->ino)) ++ if ((flags & FTW_MOUNT) && h && st.st_dev != h->dev) + return 0; + + new.chain = h; +diff -Nur musl-0.9.15/src/network/accept4.c musl-git/src/network/accept4.c +--- musl-0.9.15/src/network/accept4.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/network/accept4.c 2014-03-10 16:52:06.000000000 +0100 +@@ -1,9 +1,20 @@ + #define _GNU_SOURCE + #include ++#include ++#include + #include "syscall.h" + #include "libc.h" + + int accept4(int fd, struct sockaddr *restrict addr, socklen_t *restrict len, int flg) + { +- return socketcall_cp(accept4, fd, addr, len, flg, 0, 0); ++ if (!flg) return accept(fd, addr, len); ++ int ret = socketcall_cp(accept4, fd, addr, len, flg, 0, 0); ++ if (ret>=0 || (errno != ENOSYS && errno != EINVAL)) return ret; ++ ret = accept(fd, addr, len); ++ if (ret<0) return ret; ++ if (flg & SOCK_CLOEXEC) ++ __syscall(SYS_fcntl, ret, F_SETFD, FD_CLOEXEC); ++ if (flg & SOCK_NONBLOCK) ++ __syscall(SYS_fcntl, ret, F_SETFL, O_NONBLOCK); ++ return ret; + } +diff -Nur musl-0.9.15/src/network/inet_legacy.c musl-git/src/network/inet_legacy.c +--- musl-0.9.15/src/network/inet_legacy.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/network/inet_legacy.c 2014-03-10 16:52:06.000000000 +0100 +@@ -16,9 +16,8 @@ + return 1; + } + +-struct in_addr inet_makeaddr(int net, int host) ++struct in_addr inet_makeaddr(in_addr_t n, in_addr_t h) + { +- uint32_t n = net, h = host; + if (n < 256) h |= n<<24; + else if (n < 65536) h |= n<<16; + else h |= n<<8; +diff -Nur musl-0.9.15/src/network/proto.c musl-git/src/network/proto.c +--- musl-0.9.15/src/network/proto.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/network/proto.c 2014-03-10 16:52:06.000000000 +0100 +@@ -4,7 +4,7 @@ + /* do we really need all these?? */ + + static int idx; +-static const unsigned char protos[][6] = { ++static const unsigned char protos[][8] = { + "\000ip", + "\001icmp", + "\002igmp", +@@ -13,7 +13,9 @@ + "\014pup", + "\021udp", + "\026idp", +- "\377raw" ++ "\051ipv6", ++ "\072icmpv6", ++ "\377raw", + "\0\0" + }; + +diff -Nur musl-0.9.15/src/prng/random.c musl-git/src/prng/random.c +--- musl-0.9.15/src/prng/random.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/prng/random.c 2014-03-10 16:52:06.000000000 +0100 +@@ -1,10 +1,3 @@ +-/* +- * random.c - Copyright © 2011 Szabolcs Nagy +- * Permission to use, copy, modify, and/or distribute this code +- * for any purpose with or without fee is hereby granted. +- * There is no warranty. +-*/ +- + #include + #include + #include "libc.h" +@@ -12,11 +5,7 @@ + /* + this code uses the same lagged fibonacci generator as the + original bsd random implementation except for the seeding +- +-different seeds produce different sequences with long period +-(other libcs seed the state with a park-miller generator +-when seed=0 some fail to produce good random sequence +-others produce the same sequence as another seed) ++which was broken in the original + */ + + static uint32_t init[] = { +@@ -98,6 +87,7 @@ + n = 63; + x = (uint32_t*)state + 1; + __srandom(seed); ++ savestate(); + UNLOCK(lock); + return old; + } +diff -Nur musl-0.9.15/src/process/posix_spawn.c musl-git/src/process/posix_spawn.c +--- musl-0.9.15/src/process/posix_spawn.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/process/posix_spawn.c 2014-03-10 16:52:06.000000000 +0100 +@@ -166,7 +166,7 @@ + + close(args.p[0]); + +- if (!ec) *res = pid; ++ if (!ec && res) *res = pid; + + pthread_sigmask(SIG_SETMASK, &args.oldmask, 0); + pthread_setcancelstate(cs, 0); +diff -Nur musl-0.9.15/src/process/x32/vfork.s musl-git/src/process/x32/vfork.s +--- musl-0.9.15/src/process/x32/vfork.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/process/x32/vfork.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,12 @@ ++.global __vfork ++.weak vfork ++.type __vfork,@function ++.type vfork,@function ++__vfork: ++vfork: ++ pop %rdx ++ mov $0x4000003a,%eax /* SYS_vfork */ ++ syscall ++ push %rdx ++ mov %rax,%rdi ++ jmp __syscall_ret +diff -Nur musl-0.9.15/src/setjmp/mipsel-sf/longjmp.sub musl-git/src/setjmp/mipsel-sf/longjmp.sub +--- musl-0.9.15/src/setjmp/mipsel-sf/longjmp.sub 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/setjmp/mipsel-sf/longjmp.sub 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1 @@ ++../mips-sf/longjmp.s +diff -Nur musl-0.9.15/src/setjmp/mipsel-sf/setjmp.sub musl-git/src/setjmp/mipsel-sf/setjmp.sub +--- musl-0.9.15/src/setjmp/mipsel-sf/setjmp.sub 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/setjmp/mipsel-sf/setjmp.sub 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1 @@ ++../mips-sf/setjmp.s +diff -Nur musl-0.9.15/src/setjmp/mips-sf/longjmp.s musl-git/src/setjmp/mips-sf/longjmp.s +--- musl-0.9.15/src/setjmp/mips-sf/longjmp.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/setjmp/mips-sf/longjmp.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,25 @@ ++.set noreorder ++ ++.global _longjmp ++.global longjmp ++.type _longjmp,@function ++.type longjmp,@function ++_longjmp: ++longjmp: ++ move $2, $5 ++ bne $2, $0, 1f ++ nop ++ addu $2, $2, 1 ++1: lw $ra, 0($4) ++ lw $sp, 4($4) ++ lw $16, 8($4) ++ lw $17, 12($4) ++ lw $18, 16($4) ++ lw $19, 20($4) ++ lw $20, 24($4) ++ lw $21, 28($4) ++ lw $22, 32($4) ++ lw $23, 36($4) ++ lw $30, 40($4) ++ jr $ra ++ lw $28, 44($4) +diff -Nur musl-0.9.15/src/setjmp/mips-sf/longjmp.sub musl-git/src/setjmp/mips-sf/longjmp.sub +--- musl-0.9.15/src/setjmp/mips-sf/longjmp.sub 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/setjmp/mips-sf/longjmp.sub 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1 @@ ++longjmp.s +diff -Nur musl-0.9.15/src/setjmp/mips-sf/setjmp.s musl-git/src/setjmp/mips-sf/setjmp.s +--- musl-0.9.15/src/setjmp/mips-sf/setjmp.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/setjmp/mips-sf/setjmp.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,25 @@ ++.set noreorder ++ ++.global __setjmp ++.global _setjmp ++.global setjmp ++.type __setjmp,@function ++.type _setjmp,@function ++.type setjmp,@function ++__setjmp: ++_setjmp: ++setjmp: ++ sw $ra, 0($4) ++ sw $sp, 4($4) ++ sw $16, 8($4) ++ sw $17, 12($4) ++ sw $18, 16($4) ++ sw $19, 20($4) ++ sw $20, 24($4) ++ sw $21, 28($4) ++ sw $22, 32($4) ++ sw $23, 36($4) ++ sw $30, 40($4) ++ sw $28, 44($4) ++ jr $ra ++ li $2, 0 +diff -Nur musl-0.9.15/src/setjmp/mips-sf/setjmp.sub musl-git/src/setjmp/mips-sf/setjmp.sub +--- musl-0.9.15/src/setjmp/mips-sf/setjmp.sub 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/setjmp/mips-sf/setjmp.sub 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1 @@ ++setjmp.s +diff -Nur musl-0.9.15/src/setjmp/sh/longjmp.s musl-git/src/setjmp/sh/longjmp.s +--- musl-0.9.15/src/setjmp/sh/longjmp.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/setjmp/sh/longjmp.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,26 @@ ++.global _longjmp ++.global longjmp ++.type _longjmp, @function ++.type longjmp, @function ++_longjmp: ++longjmp: ++ mov.l @r4+, r8 ++ mov.l @r4+, r9 ++ mov.l @r4+, r10 ++ mov.l @r4+, r11 ++ mov.l @r4+, r12 ++ mov.l @r4+, r13 ++ mov.l @r4+, r14 ++ mov.l @r4+, r15 ++ lds.l @r4+, pr ++ fmov.s @r4+, fr12 ++ fmov.s @r4+, fr13 ++ fmov.s @r4+, fr14 ++ fmov.s @r4+, fr15 ++ ++ tst r5, r5 ++ movt r0 ++ add r5, r0 ++ ++ rts ++ nop +diff -Nur musl-0.9.15/src/setjmp/sh/setjmp.s musl-git/src/setjmp/sh/setjmp.s +--- musl-0.9.15/src/setjmp/sh/setjmp.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/setjmp/sh/setjmp.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,25 @@ ++.global __setjmp ++.global _setjmp ++.global setjmp ++.type __setjmp, @function ++.type _setjmp, @function ++.type setjmp, @function ++__setjmp: ++_setjmp: ++setjmp: ++ add #52, r4 ++ fmov.s fr15, @-r4 ++ fmov.s fr14, @-r4 ++ fmov.s fr13, @-r4 ++ fmov.s fr12, @-r4 ++ sts.l pr, @-r4 ++ mov.l r15 @-r4 ++ mov.l r14, @-r4 ++ mov.l r13, @-r4 ++ mov.l r12, @-r4 ++ mov.l r11, @-r4 ++ mov.l r10, @-r4 ++ mov.l r9, @-r4 ++ mov.l r8, @-r4 ++ rts ++ mov #0, r0 +diff -Nur musl-0.9.15/src/setjmp/sheb-nofpu/longjmp.sub musl-git/src/setjmp/sheb-nofpu/longjmp.sub +--- musl-0.9.15/src/setjmp/sheb-nofpu/longjmp.sub 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/setjmp/sheb-nofpu/longjmp.sub 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1 @@ ++../sh-nofpu/longjmp.s +diff -Nur musl-0.9.15/src/setjmp/sheb-nofpu/setjmp.sub musl-git/src/setjmp/sheb-nofpu/setjmp.sub +--- musl-0.9.15/src/setjmp/sheb-nofpu/setjmp.sub 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/setjmp/sheb-nofpu/setjmp.sub 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1 @@ ++../sh-nofpu/setjmp.s +diff -Nur musl-0.9.15/src/setjmp/sh-nofpu/longjmp.s musl-git/src/setjmp/sh-nofpu/longjmp.s +--- musl-0.9.15/src/setjmp/sh-nofpu/longjmp.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/setjmp/sh-nofpu/longjmp.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,22 @@ ++.global _longjmp ++.global longjmp ++.type _longjmp, @function ++.type longjmp, @function ++_longjmp: ++longjmp: ++ mov.l @r4+, r8 ++ mov.l @r4+, r9 ++ mov.l @r4+, r10 ++ mov.l @r4+, r11 ++ mov.l @r4+, r12 ++ mov.l @r4+, r13 ++ mov.l @r4+, r14 ++ mov.l @r4+, r15 ++ lds.l @r4+, pr ++ ++ tst r5, r5 ++ movt r0 ++ add r5, r0 ++ ++ rts ++ nop +diff -Nur musl-0.9.15/src/setjmp/sh-nofpu/longjmp.sub musl-git/src/setjmp/sh-nofpu/longjmp.sub +--- musl-0.9.15/src/setjmp/sh-nofpu/longjmp.sub 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/setjmp/sh-nofpu/longjmp.sub 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1 @@ ++longjmp.s +diff -Nur musl-0.9.15/src/setjmp/sh-nofpu/setjmp.s musl-git/src/setjmp/sh-nofpu/setjmp.s +--- musl-0.9.15/src/setjmp/sh-nofpu/setjmp.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/setjmp/sh-nofpu/setjmp.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,21 @@ ++.global __setjmp ++.global _setjmp ++.global setjmp ++.type __setjmp, @function ++.type _setjmp, @function ++.type setjmp, @function ++__setjmp: ++_setjmp: ++setjmp: ++ add #36, r4 ++ sts.l pr, @-r4 ++ mov.l r15 @-r4 ++ mov.l r14, @-r4 ++ mov.l r13, @-r4 ++ mov.l r12, @-r4 ++ mov.l r11, @-r4 ++ mov.l r10, @-r4 ++ mov.l r9, @-r4 ++ mov.l r8, @-r4 ++ rts ++ mov #0, r0 +diff -Nur musl-0.9.15/src/setjmp/sh-nofpu/setjmp.sub musl-git/src/setjmp/sh-nofpu/setjmp.sub +--- musl-0.9.15/src/setjmp/sh-nofpu/setjmp.sub 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/setjmp/sh-nofpu/setjmp.sub 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1 @@ ++setjmp.s +diff -Nur musl-0.9.15/src/setjmp/x32/longjmp.s musl-git/src/setjmp/x32/longjmp.s +--- musl-0.9.15/src/setjmp/x32/longjmp.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/setjmp/x32/longjmp.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,22 @@ ++/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */ ++.global _longjmp ++.global longjmp ++.type _longjmp,@function ++.type longjmp,@function ++_longjmp: ++longjmp: ++ mov %rsi,%rax /* val will be longjmp return */ ++ test %rax,%rax ++ jnz 1f ++ inc %rax /* if val==0, val=1 per longjmp semantics */ ++1: ++ mov (%rdi),%rbx /* rdi is the jmp_buf, restore regs from it */ ++ mov 8(%rdi),%rbp ++ mov 16(%rdi),%r12 ++ mov 24(%rdi),%r13 ++ mov 32(%rdi),%r14 ++ mov 40(%rdi),%r15 ++ mov 48(%rdi),%rdx /* this ends up being the stack pointer */ ++ mov %rdx,%rsp ++ mov 56(%rdi),%rdx /* this is the instruction pointer */ ++ jmp *%rdx /* goto saved address without altering rsp */ +diff -Nur musl-0.9.15/src/setjmp/x32/setjmp.s musl-git/src/setjmp/x32/setjmp.s +--- musl-0.9.15/src/setjmp/x32/setjmp.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/setjmp/x32/setjmp.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,22 @@ ++/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */ ++.global __setjmp ++.global _setjmp ++.global setjmp ++.type __setjmp,@function ++.type _setjmp,@function ++.type setjmp,@function ++__setjmp: ++_setjmp: ++setjmp: ++ mov %rbx,(%rdi) /* rdi is jmp_buf, move registers onto it */ ++ mov %rbp,8(%rdi) ++ mov %r12,16(%rdi) ++ mov %r13,24(%rdi) ++ mov %r14,32(%rdi) ++ mov %r15,40(%rdi) ++ lea 8(%rsp),%rdx /* this is our rsp WITHOUT current ret addr */ ++ mov %rdx,48(%rdi) ++ mov (%rsp),%rdx /* save return addr ptr for new rip */ ++ mov %rdx,56(%rdi) ++ xor %rax,%rax /* always return 0 */ ++ ret +diff -Nur musl-0.9.15/src/signal/sh/restore.s musl-git/src/signal/sh/restore.s +--- musl-0.9.15/src/signal/sh/restore.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/signal/sh/restore.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,24 @@ ++.global __restore ++.type __restore, @function ++__restore: ++ mov #119, r3 !__NR_sigreturn ++ trapa #16 ++ ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ ++.global __restore_rt ++.type __restore_rt, @function ++__restore_rt: ++ mov #100, r3 !__NR_rt_sigreturn ++ add #73, r3 ++ trapa #16 ++ ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 +diff -Nur musl-0.9.15/src/signal/sh/sigsetjmp.s musl-git/src/signal/sh/sigsetjmp.s +--- musl-0.9.15/src/signal/sh/sigsetjmp.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/signal/sh/sigsetjmp.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,27 @@ ++.global sigsetjmp ++.type sigsetjmp, @function ++sigsetjmp: ++ mov.l r5, @(36,r4) ++ tst r5, r5 ++ bf 2f ++ ++ sts.l pr, @-r15 ++ mov.l r4, @-r15 ++ mov r4, r6 ++ add #40, r6 ++ mov #0, r5 ++ mov #2, r4 ++ mov.l L1, r0 ++ bsrf r0 ++ nop ++1: mov.l @r15+, r4 ++ lds.l @r15+, pr ++ ++2: mov.l L2, r0 ++ braf r0 ++ nop ++3: ++ ++.align 2 ++L1: .long pthread_sigmask@PLT-(1b-.) ++L2: .long setjmp@PLT-(3b-.) +diff -Nur musl-0.9.15/src/signal/sigandset.c musl-git/src/signal/sigandset.c +--- musl-0.9.15/src/signal/sigandset.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/signal/sigandset.c 2014-03-10 16:52:06.000000000 +0100 +@@ -3,7 +3,7 @@ + + #define SST_SIZE (_NSIG/8/sizeof(long)) + +-int sigandset(sigset_t *dest, sigset_t *left, sigset_t *right) ++int sigandset(sigset_t *dest, const sigset_t *left, const sigset_t *right) + { + unsigned long i = 0, *d = (void*) dest, *l = (void*) left, *r = (void*) right; + for(; i < SST_SIZE; i++) d[i] = l[i] & r[i]; +diff -Nur musl-0.9.15/src/signal/sigorset.c musl-git/src/signal/sigorset.c +--- musl-0.9.15/src/signal/sigorset.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/signal/sigorset.c 2014-03-10 16:52:06.000000000 +0100 +@@ -3,7 +3,7 @@ + + #define SST_SIZE (_NSIG/8/sizeof(long)) + +-int sigorset(sigset_t *dest, sigset_t *left, sigset_t *right) ++int sigorset(sigset_t *dest, const sigset_t *left, const sigset_t *right) + { + unsigned long i = 0, *d = (void*) dest, *l = (void*) left, *r = (void*) right; + for(; i < SST_SIZE; i++) d[i] = l[i] | r[i]; +diff -Nur musl-0.9.15/src/signal/x32/restore.s musl-git/src/signal/x32/restore.s +--- musl-0.9.15/src/signal/x32/restore.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/signal/x32/restore.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,8 @@ ++.global __restore_rt ++.global __restore ++.type __restore_rt,@function ++.type __restore,@function ++__restore_rt: ++__restore: ++ movl $0x40000201, %eax /* SYS_rt_sigreturn */ ++ syscall +diff -Nur musl-0.9.15/src/signal/x32/sigsetjmp.s musl-git/src/signal/x32/sigsetjmp.s +--- musl-0.9.15/src/signal/x32/sigsetjmp.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/signal/x32/sigsetjmp.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,14 @@ ++/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */ ++.global sigsetjmp ++.type sigsetjmp,@function ++sigsetjmp: ++ andl %esi,%esi ++ movq %rsi,64(%rdi) ++ jz 1f ++ pushq %rdi ++ leaq 72(%rdi),%rdx ++ xorl %esi,%esi ++ movl $2,%edi ++ call sigprocmask ++ popq %rdi ++1: jmp setjmp +diff -Nur musl-0.9.15/src/stdio/__fdopen.c musl-git/src/stdio/__fdopen.c +--- musl-0.9.15/src/stdio/__fdopen.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/stdio/__fdopen.c 2014-03-10 16:52:06.000000000 +0100 +@@ -32,7 +32,9 @@ + /* Set append mode on fd if opened for append */ + if (*mode == 'a') { + int flags = __syscall(SYS_fcntl, fd, F_GETFL); +- __syscall(SYS_fcntl, fd, F_SETFL, flags | O_APPEND); ++ if (!(flags & O_APPEND)) ++ __syscall(SYS_fcntl, fd, F_SETFL, flags | O_APPEND); ++ f->flags |= F_APP; + } + + f->fd = fd; +diff -Nur musl-0.9.15/src/stdio/ftell.c musl-git/src/stdio/ftell.c +--- musl-0.9.15/src/stdio/ftell.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/stdio/ftell.c 2014-03-10 16:52:06.000000000 +0100 +@@ -4,7 +4,9 @@ + + off_t __ftello_unlocked(FILE *f) + { +- off_t pos = f->seek(f, 0, SEEK_CUR); ++ off_t pos = f->seek(f, 0, ++ (f->flags & F_APP) && f->wpos > f->wbase ++ ? SEEK_END : SEEK_CUR); + if (pos < 0) return pos; + + /* Adjust for data in buffer. */ +diff -Nur musl-0.9.15/src/stdio/vfprintf.c musl-git/src/stdio/vfprintf.c +--- musl-0.9.15/src/stdio/vfprintf.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/stdio/vfprintf.c 2014-03-10 16:52:06.000000000 +0100 +@@ -207,7 +207,8 @@ + + static int fmt_fp(FILE *f, long double y, int w, int p, int fl, int t) + { +- uint32_t big[(LDBL_MAX_EXP+LDBL_MANT_DIG)/9+1]; ++ uint32_t big[(LDBL_MANT_DIG+28)/29 + 1 // mantissa expansion ++ + (LDBL_MAX_EXP+LDBL_MANT_DIG+28+8)/9]; // exponent expansion + uint32_t *a, *d, *r, *z; + int e2=0, e, i, j, l; + char buf[9+LDBL_MANT_DIG/4], *s; +@@ -313,7 +314,7 @@ + } + while (e2<0) { + uint32_t carry=0, *b; +- int sh=MIN(9,-e2); ++ int sh=MIN(9,-e2), need=1+(p+LDBL_MANT_DIG/3+8)/9; + for (d=a; d>sh) + carry; +@@ -323,7 +324,7 @@ + if (carry) *z++ = carry; + /* Avoid (slow!) computation past requested precision */ + b = (t|32)=='f' ? r : a; +- if (z-b > 2+p/9) z = b+2+p/9; ++ if (z-b > need) z = b+need; + e2+=sh; + } + +diff -Nur musl-0.9.15/src/stdio/vfscanf.c musl-git/src/stdio/vfscanf.c +--- musl-0.9.15/src/stdio/vfscanf.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/stdio/vfscanf.c 2014-03-10 16:52:06.000000000 +0100 +@@ -328,3 +328,5 @@ + FUNLOCK(f); + return matches; + } ++ ++weak_alias(vfscanf,__isoc99_vfscanf); +diff -Nur musl-0.9.15/src/thread/arm/clone.s musl-git/src/thread/arm/clone.s +--- musl-0.9.15/src/thread/arm/clone.s 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/thread/arm/clone.s 2014-03-10 16:52:06.000000000 +0100 +@@ -1,10 +1,7 @@ + .text + .global __clone +-.weak clone + .type __clone,%function +-.type clone,%function + __clone: +-clone: + stmfd sp!,{r4,r5,r6,r7} + mov r7,#120 + mov r6,r3 +diff -Nur musl-0.9.15/src/thread/cancel_dummy.c musl-git/src/thread/cancel_dummy.c +--- musl-0.9.15/src/thread/cancel_dummy.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/thread/cancel_dummy.c 2014-03-10 16:52:06.000000000 +0100 +@@ -1,6 +1,9 @@ + #include "pthread_impl.h" ++#include "syscall.h" + +-static long sccp(long nr, long u, long v, long w, long x, long y, long z) ++static long sccp(syscall_arg_t nr, ++ syscall_arg_t u, syscall_arg_t v, syscall_arg_t w, ++ syscall_arg_t x, syscall_arg_t y, syscall_arg_t z) + { + return (__syscall)(nr, u, v, w, x, y, z); + } +diff -Nur musl-0.9.15/src/thread/cancel_impl.c musl-git/src/thread/cancel_impl.c +--- musl-0.9.15/src/thread/cancel_impl.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/thread/cancel_impl.c 2014-03-10 16:52:06.000000000 +0100 +@@ -1,4 +1,5 @@ + #include "pthread_impl.h" ++#include "syscall.h" + + void __cancel() + { +@@ -8,9 +9,13 @@ + pthread_exit(PTHREAD_CANCELED); + } + +-long __syscall_cp_asm(volatile void *, long, long, long, long, long, long, long); ++long __syscall_cp_asm(volatile void *, syscall_arg_t, ++ syscall_arg_t, syscall_arg_t, syscall_arg_t, ++ syscall_arg_t, syscall_arg_t, syscall_arg_t); + +-long (__syscall_cp)(long nr, long u, long v, long w, long x, long y, long z) ++long (__syscall_cp)(syscall_arg_t nr, ++ syscall_arg_t u, syscall_arg_t v, syscall_arg_t w, ++ syscall_arg_t x, syscall_arg_t y, syscall_arg_t z) + { + pthread_t self; + long r; +diff -Nur musl-0.9.15/src/thread/clone.c musl-git/src/thread/clone.c +--- musl-0.9.15/src/thread/clone.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/thread/clone.c 2014-03-10 16:52:06.000000000 +0100 +@@ -1,10 +1,7 @@ + #include +-#include "libc.h" ++#include "pthread_impl.h" + + int __clone(int (*func)(void *), void *stack, int flags, void *arg, ...) + { +- errno = ENOSYS; +- return -1; ++ return -ENOSYS; + } +- +-weak_alias(__clone, clone); +diff -Nur musl-0.9.15/src/thread/i386/clone.s musl-git/src/thread/i386/clone.s +--- musl-0.9.15/src/thread/i386/clone.s 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/thread/i386/clone.s 2014-03-10 16:52:06.000000000 +0100 +@@ -1,10 +1,7 @@ + .text + .global __clone +-.weak clone + .type __clone,@function +-.type clone,@function + __clone: +-clone: + push %ebp + mov %esp,%ebp + push %ebx +diff -Nur musl-0.9.15/src/thread/microblaze/clone.s musl-git/src/thread/microblaze/clone.s +--- musl-0.9.15/src/thread/microblaze/clone.s 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/thread/microblaze/clone.s 2014-03-10 16:52:06.000000000 +0100 +@@ -1,14 +1,11 @@ + .global __clone +-.weak clone + .type __clone,@function +-.type clone,@function + + # r5, r6, r7, r8, r9, r10, stack + # fn, st, fl, ar, pt, tl, ct + # fl, st, __, pt, ct, tl + + __clone: +-clone: + andi r6, r6, -16 + addi r6, r6, -16 + swi r5, r6, 0 +@@ -23,7 +20,7 @@ + beqi r3, 1f + rtsd r15, 8 + nop +- ++ + 1: lwi r3, r1, 0 + lwi r5, r1, 4 + brald r15, r3 +diff -Nur musl-0.9.15/src/thread/sh/clone.s musl-git/src/thread/sh/clone.s +--- musl-0.9.15/src/thread/sh/clone.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/thread/sh/clone.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,47 @@ ++.text ++.global __clone ++.type __clone, @function ++__clone: ++! incoming: fn stack flags arg ptid tls ctid ++! r4 r5 r6 r7 @r15 @(4,r15) @(8,r15) ++ ++ mov #-16, r0 ++ and r0, r5 ++ ++ mov r4, r1 ! r1 = fn ++ mov r7, r2 ! r2 = arg ++ ++ mov #120, r3 ! r3 = __NR_clone ++ mov r6, r4 ! r4 = flags ++ !mov r5, r5 ! r5 = stack ++ mov.l @r15, r6 ! r6 = ptid ++ mov.l @(8,r15), r7 ! r7 = ctid ++ mov.l @(4,r15), r0 ! r0 = tls ++ trapa #21 ++ ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ ++ cmp/eq #0, r0 ++ bt 1f ++ ++ ! we are the parent, return ++ rts ++ nop ++ ++1: ! we are the child, call fn(arg) ++ jsr @r1 ++ mov r2, r4 ++ ++ mov #1, r3 ! __NR_exit ++ mov r0, r4 ++ trapa #17 ++ ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 +diff -Nur musl-0.9.15/src/thread/sh/__set_thread_area.s musl-git/src/thread/sh/__set_thread_area.s +--- musl-0.9.15/src/thread/sh/__set_thread_area.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/thread/sh/__set_thread_area.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,5 @@ ++.global __set_thread_area ++.type __set_thread_area, @function ++__set_thread_area: ++ rts ++ ldc r4, gbr +diff -Nur musl-0.9.15/src/thread/sh/syscall_cp.s musl-git/src/thread/sh/syscall_cp.s +--- musl-0.9.15/src/thread/sh/syscall_cp.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/thread/sh/syscall_cp.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,39 @@ ++.text ++.global __syscall_cp_asm ++.type __syscall_cp_asm, @function ++__syscall_cp_asm: ++ ++.global __cp_begin ++__cp_begin: ++ mov.l @r4, r4 ++ tst r4, r4 ++ bt 2f ++ ++ mov.l L1, r0 ++ braf r0 ++ nop ++1: ++ ++.align 2 ++L1: .long __cancel@PLT-(1b-.) ++ ++2: mov r5, r3 ++ mov r6, r4 ++ mov r7, r5 ++ mov.l @r15, r6 ++ mov.l @(4,r15), r7 ++ mov.l @(8,r15), r0 ++ mov.l @(12,r15), r1 ++ trapa #22 ++ ++.global __cp_end ++__cp_end: ++ ! work around hardware bug ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ ++ rts ++ nop +diff -Nur musl-0.9.15/src/thread/sh/__unmapself.s musl-git/src/thread/sh/__unmapself.s +--- musl-0.9.15/src/thread/sh/__unmapself.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/thread/sh/__unmapself.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,22 @@ ++.text ++.global __unmapself ++.type __unmapself, @function ++__unmapself: ++ mov #91, r3 ! SYS_munmap ++ trapa #18 ++ ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ ++ mov #1, r3 ! SYS_exit ++ mov #0, r4 ++ trapa #17 ++ ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 +diff -Nur musl-0.9.15/src/thread/__wait.c musl-git/src/thread/__wait.c +--- musl-0.9.15/src/thread/__wait.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/thread/__wait.c 2014-03-10 16:52:06.000000000 +0100 +@@ -10,6 +10,6 @@ + } + if (waiters) a_inc(waiters); + while (*addr==val) +- __syscall(SYS_futex, (long)addr, FUTEX_WAIT|priv, val, 0); ++ __syscall(SYS_futex, addr, FUTEX_WAIT|priv, val, 0); + if (waiters) a_dec(waiters); + } +diff -Nur musl-0.9.15/src/thread/x32/clone.s musl-git/src/thread/x32/clone.s +--- musl-0.9.15/src/thread/x32/clone.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/thread/x32/clone.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,25 @@ ++.text ++.global __clone ++.type __clone,@function ++__clone: ++ movl $0x40000038,%eax /* SYS_clone */ ++ mov %rdi,%r11 ++ mov %rdx,%rdi ++ mov %r8,%rdx ++ mov %r9,%r8 ++ mov 8(%rsp),%r10 ++ mov %r11,%r9 ++ and $-16,%rsi ++ sub $8,%rsi ++ mov %rcx,(%rsi) ++ syscall ++ test %eax,%eax ++ jnz 1f ++ xor %ebp,%ebp ++ pop %rdi ++ call *%r9 ++ mov %eax,%edi ++ movl $0x4000003c,%eax /* SYS_exit */ ++ syscall ++ hlt ++1: ret +diff -Nur musl-0.9.15/src/thread/x32/__set_thread_area.s musl-git/src/thread/x32/__set_thread_area.s +--- musl-0.9.15/src/thread/x32/__set_thread_area.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/thread/x32/__set_thread_area.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,10 @@ ++/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */ ++.text ++.global __set_thread_area ++.type __set_thread_area,@function ++__set_thread_area: ++ mov %rdi,%rsi /* shift for syscall */ ++ movl $0x1002,%edi /* SET_FS register */ ++ movl $0x4000009e,%eax /* set fs segment to */ ++ syscall /* arch_prctl(SET_FS, arg)*/ ++ ret +diff -Nur musl-0.9.15/src/thread/x32/syscall_cp.s musl-git/src/thread/x32/syscall_cp.s +--- musl-0.9.15/src/thread/x32/syscall_cp.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/thread/x32/syscall_cp.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,23 @@ ++.text ++.global __syscall_cp_internal ++.type __syscall_cp_internal,@function ++__syscall_cp_internal: ++ ++.global __cp_begin ++__cp_begin: ++ mov (%rdi),%eax ++ test %eax,%eax ++ jnz __cancel ++ mov %rdi,%r11 ++ mov %rsi,%rax ++ mov %rdx,%rdi ++ mov %rcx,%rsi ++ mov %r8,%rdx ++ mov %r9,%r10 ++ mov 8(%rsp),%r8 ++ mov 16(%rsp),%r9 ++ mov %r11,8(%rsp) ++ syscall ++.global __cp_end ++__cp_end: ++ ret +diff -Nur musl-0.9.15/src/thread/x32/__unmapself.s musl-git/src/thread/x32/__unmapself.s +--- musl-0.9.15/src/thread/x32/__unmapself.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/thread/x32/__unmapself.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,10 @@ ++/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */ ++.text ++.global __unmapself ++.type __unmapself,@function ++__unmapself: ++ movl $0x4000000b,%eax /* SYS_munmap */ ++ syscall /* munmap(arg2,arg3) */ ++ xor %rdi,%rdi /* exit() args: always return success */ ++ movl $0x4000003c,%eax /* SYS_exit */ ++ syscall /* exit(0) */ +diff -Nur musl-0.9.15/src/thread/x86_64/clone.s musl-git/src/thread/x86_64/clone.s +--- musl-0.9.15/src/thread/x86_64/clone.s 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/thread/x86_64/clone.s 2014-03-10 16:52:06.000000000 +0100 +@@ -1,10 +1,7 @@ + .text + .global __clone +-.weak clone + .type __clone,@function +-.type clone,@function + __clone: +-clone: + xor %eax,%eax + mov $56,%al + mov %rdi,%r11 +diff -Nur musl-0.9.15/src/time/timer_delete.c musl-git/src/time/timer_delete.c +--- musl-0.9.15/src/time/timer_delete.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/time/timer_delete.c 2014-03-10 16:52:06.000000000 +0100 +@@ -10,5 +10,5 @@ + __wake(&td->timer_id, 1, 1); + return 0; + } +- return __syscall(SYS_timer_delete, (long)t); ++ return __syscall(SYS_timer_delete, t); + } +diff -Nur musl-0.9.15/src/time/timer_getoverrun.c musl-git/src/time/timer_getoverrun.c +--- musl-0.9.15/src/time/timer_getoverrun.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/time/timer_getoverrun.c 2014-03-10 16:52:06.000000000 +0100 +@@ -8,5 +8,5 @@ + pthread_t td = (void *)((uintptr_t)t << 1); + t = (void *)(uintptr_t)(td->timer_id & INT_MAX); + } +- return syscall(SYS_timer_getoverrun, (long)t); ++ return syscall(SYS_timer_getoverrun, t); + } +diff -Nur musl-0.9.15/src/time/timer_gettime.c musl-git/src/time/timer_gettime.c +--- musl-0.9.15/src/time/timer_gettime.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/time/timer_gettime.c 2014-03-10 16:52:06.000000000 +0100 +@@ -8,5 +8,5 @@ + pthread_t td = (void *)((uintptr_t)t << 1); + t = (void *)(uintptr_t)(td->timer_id & INT_MAX); + } +- return syscall(SYS_timer_gettime, (long)t, val); ++ return syscall(SYS_timer_gettime, t, val); + } +diff -Nur musl-0.9.15/src/time/timer_settime.c musl-git/src/time/timer_settime.c +--- musl-0.9.15/src/time/timer_settime.c 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/src/time/timer_settime.c 2014-03-10 16:52:06.000000000 +0100 +@@ -8,5 +8,5 @@ + pthread_t td = (void *)((uintptr_t)t << 1); + t = (void *)(uintptr_t)(td->timer_id & INT_MAX); + } +- return syscall(SYS_timer_settime, (long)t, flags, val, old); ++ return syscall(SYS_timer_settime, t, flags, val, old); + } +diff -Nur musl-0.9.15/src/unistd/sh/pipe.s musl-git/src/unistd/sh/pipe.s +--- musl-0.9.15/src/unistd/sh/pipe.s 1970-01-01 01:00:00.000000000 +0100 ++++ musl-git/src/unistd/sh/pipe.s 2014-03-10 16:52:06.000000000 +0100 +@@ -0,0 +1,27 @@ ++.global pipe ++.type pipe, @function ++pipe: ++ mov #42, r3 ++ trapa #17 ++ ++ ! work around hardware bug ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ or r0, r0 ++ ++ cmp/pz r0 ++ bt 1f ++ ++ mov.l L1, r1 ++ braf r1 ++ mov r0, r4 ++ ++1: mov.l r0, @(0,r4) ++ mov.l r1, @(4,r4) ++ rts ++ mov #0, r0 ++ ++.align 2 ++L1: .long __syscall_ret@PLT-(1b-.) +diff -Nur musl-0.9.15/tools/install.sh musl-git/tools/install.sh +--- musl-0.9.15/tools/install.sh 2014-01-03 21:12:18.000000000 +0100 ++++ musl-git/tools/install.sh 2014-03-10 16:52:06.000000000 +0100 +@@ -51,6 +51,7 @@ + ln -s "$1" "$tmp" + else + cat < "$1" > "$tmp" ++chmod "$mode" "$tmp" + fi + + mv -f "$tmp" "$2" +@@ -60,6 +61,4 @@ + exit 1 + } + +-test "$symlink" || chmod "$mode" "$2" +- + exit 0 diff --git a/toolchain/musl/patches/xxx-hotfix-sh.patch b/toolchain/musl/patches/xxx-hotfix-sh.patch deleted file mode 100644 index 0c60604d0..000000000 --- a/toolchain/musl/patches/xxx-hotfix-sh.patch +++ /dev/null @@ -1,80 +0,0 @@ -* thx to nsz from #musl -diff -Nur musl-git/arch/sh/bits/user.h musl-sh/arch/sh/bits/user.h ---- musl-git/arch/sh/bits/user.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-sh/arch/sh/bits/user.h 2014-03-07 15:08:42.000000000 +0100 -@@ -0,0 +1,75 @@ -+#undef __WORDSIZE -+#define __WORDSIZE 32 -+ -+#define REG_REG0 0 -+#define REG_REG15 15 -+#define REG_PC 16 -+#define REG_PR 17 -+#define REG_SR 18 -+#define REG_GBR 19 -+#define REG_MACH 20 -+#define REG_MACL 21 -+#define REG_SYSCALL 22 -+#define REG_FPREG0 23 -+#define REG_FPREG15 38 -+#define REG_XFREG0 39 -+#define REG_XFREG15 54 -+#define REG_FPSCR 55 -+#define REG_FPUL 56 -+ -+struct pt_regs { -+ unsigned long regs[16]; -+ unsigned long pc; -+ unsigned long pr; -+ unsigned long sr; -+ unsigned long gbr; -+ unsigned long mach; -+ unsigned long macl; -+ long tra; -+}; -+ -+struct pt_dspregs { -+ unsigned long a1; -+ unsigned long a0g; -+ unsigned long a1g; -+ unsigned long m0; -+ unsigned long m1; -+ unsigned long a0; -+ unsigned long x0; -+ unsigned long x1; -+ unsigned long y0; -+ unsigned long y1; -+ unsigned long dsr; -+ unsigned long rs; -+ unsigned long re; -+ unsigned long mod; -+}; -+ -+struct user_fpu_struct { -+ unsigned long fp_regs[16]; -+ unsigned long xfp_regs[16]; -+ unsigned long fpscr; -+ unsigned long fpul; -+}; -+ -+#define ELF_NGREG 23 -+typedef unsigned long elf_greg_t; -+typedef elf_greg_t elf_gregset_t[ELF_NGREG]; -+typedef struct user_fpu_struct elf_fpregset_t; -+ -+struct user { -+ struct pt_regs regs; -+ struct user_fpu_struct fpu; -+ int u_fpvalid; -+ unsigned long u_tsize; -+ unsigned long u_dsize; -+ unsigned long u_ssize; -+ unsigned long start_code; -+ unsigned long start_data; -+ unsigned long start_stack; -+ long int signal; -+ unsigned long u_ar0; -+ struct user_fpu_struct *u_fpstate; -+ unsigned long magic; -+ char u_comm[32]; -+}; -- cgit v1.2.3