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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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/superh/atomic.h musl-git/arch/superh/atomic.h --- musl-0.9.15/arch/superh/atomic.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/atomic.h 2014-02-25 15:24:14.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/superh/bits/alltypes.h.in musl-git/arch/superh/bits/alltypes.h.in --- musl-0.9.15/arch/superh/bits/alltypes.h.in 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/alltypes.h.in 2014-02-25 15:24:14.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/superh/bits/endian.h musl-git/arch/superh/bits/endian.h --- musl-0.9.15/arch/superh/bits/endian.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/endian.h 2014-02-25 15:24:14.000000000 +0100 @@ -0,0 +1,5 @@ +#if __LITTLE_ENDIAN__ +#define __BYTE_ORDER __LITTLE_ENDIAN +#else +#define __BYTE_ORDER __BIG_ENDIAN +#endif diff -Nur musl-0.9.15/arch/superh/bits/errno.h musl-git/arch/superh/bits/errno.h --- musl-0.9.15/arch/superh/bits/errno.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/errno.h 2014-02-25 15:24:14.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/superh/bits/fcntl.h musl-git/arch/superh/bits/fcntl.h --- musl-0.9.15/arch/superh/bits/fcntl.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/fcntl.h 2014-02-25 15:24:14.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/superh/bits/fenv.h musl-git/arch/superh/bits/fenv.h --- musl-0.9.15/arch/superh/bits/fenv.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/fenv.h 2014-02-25 15:24:14.000000000 +0100 @@ -0,0 +1,17 @@ +#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 + +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/superh/bits/float.h musl-git/arch/superh/bits/float.h --- musl-0.9.15/arch/superh/bits/float.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/float.h 2014-02-25 15:24:14.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/superh/bits/ioctl.h musl-git/arch/superh/bits/ioctl.h --- musl-0.9.15/arch/superh/bits/ioctl.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/ioctl.h 2014-02-25 15:24:14.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/superh/bits/ipc.h musl-git/arch/superh/bits/ipc.h --- musl-0.9.15/arch/superh/bits/ipc.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/ipc.h 2014-02-25 15:24:14.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/superh/bits/limits.h musl-git/arch/superh/bits/limits.h --- musl-0.9.15/arch/superh/bits/limits.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/limits.h 2014-02-25 15:24:14.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/superh/bits/mman.h musl-git/arch/superh/bits/mman.h --- musl-0.9.15/arch/superh/bits/mman.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/mman.h 2014-02-25 15:24:14.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/superh/bits/msg.h musl-git/arch/superh/bits/msg.h --- musl-0.9.15/arch/superh/bits/msg.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/msg.h 2014-02-25 15:24:14.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/superh/bits/posix.h musl-git/arch/superh/bits/posix.h --- musl-0.9.15/arch/superh/bits/posix.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/posix.h 2014-02-25 15:24:14.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/superh/bits/setjmp.h musl-git/arch/superh/bits/setjmp.h --- musl-0.9.15/arch/superh/bits/setjmp.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/setjmp.h 2014-02-25 15:24:14.000000000 +0100 @@ -0,0 +1 @@ +typedef unsigned long __jmp_buf[13]; diff -Nur musl-0.9.15/arch/superh/bits/shm.h musl-git/arch/superh/bits/shm.h --- musl-0.9.15/arch/superh/bits/shm.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/shm.h 2014-02-25 15:24:14.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/superh/bits/signal.h musl-git/arch/superh/bits/signal.h --- musl-0.9.15/arch/superh/bits/signal.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/signal.h 2014-02-25 15:24:14.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/superh/bits/socket.h musl-git/arch/superh/bits/socket.h --- musl-0.9.15/arch/superh/bits/socket.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/socket.h 2014-02-25 15:24:14.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/superh/bits/statfs.h musl-git/arch/superh/bits/statfs.h --- musl-0.9.15/arch/superh/bits/statfs.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/statfs.h 2014-02-25 15:24:14.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/superh/bits/stat.h musl-git/arch/superh/bits/stat.h --- musl-0.9.15/arch/superh/bits/stat.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/stat.h 2014-02-25 15:24:14.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/superh/bits/stdarg.h musl-git/arch/superh/bits/stdarg.h --- musl-0.9.15/arch/superh/bits/stdarg.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/stdarg.h 2014-02-25 15:24:14.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/superh/bits/stdint.h musl-git/arch/superh/bits/stdint.h --- musl-0.9.15/arch/superh/bits/stdint.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/stdint.h 2014-02-25 15:24:14.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/superh/bits/syscall.h musl-git/arch/superh/bits/syscall.h --- musl-0.9.15/arch/superh/bits/syscall.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/syscall.h 2014-02-25 15:24:14.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/superh/bits/termios.h musl-git/arch/superh/bits/termios.h --- musl-0.9.15/arch/superh/bits/termios.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/bits/termios.h 2014-02-25 15:24:14.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/superh/crt_arch.h musl-git/arch/superh/crt_arch.h --- musl-0.9.15/arch/superh/crt_arch.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/crt_arch.h 2014-02-25 15:24:14.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/superh/pthread_arch.h musl-git/arch/superh/pthread_arch.h --- musl-0.9.15/arch/superh/pthread_arch.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/pthread_arch.h 2014-02-25 15:24:14.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/superh/reloc.h musl-git/arch/superh/reloc.h --- musl-0.9.15/arch/superh/reloc.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/reloc.h 2014-02-25 15:24:14.000000000 +0100 @@ -0,0 +1,47 @@ +#if __BYTE_ORDER == __LITTLE_ENDIAN +#define ENDIAN_SUFFIX "l" +#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/superh/src/atomic.c musl-git/arch/superh/src/atomic.c --- musl-0.9.15/arch/superh/src/atomic.c 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/src/atomic.c 2014-02-25 15:24:14.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/superh/src/__fpsrc_values.c musl-git/arch/superh/src/__fpsrc_values.c --- musl-0.9.15/arch/superh/src/__fpsrc_values.c 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/src/__fpsrc_values.c 2014-02-25 15:24:14.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/superh/syscall_arch.h musl-git/arch/superh/syscall_arch.h --- musl-0.9.15/arch/superh/syscall_arch.h 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/arch/superh/syscall_arch.h 2014-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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/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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.000000000 +0100 @@ -224,10 +224,12 @@ case "$target" in 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 ;; +sh-*) ARCH=superh ;; unknown) fail "$0: unable to detect target arch; try $0 --target=..." ;; *) fail "$0: unknown or unsupported target \"$target\"" ;; esac @@ -381,6 +383,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 +413,17 @@ 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 +test "$ARCH" = "superh" && trycppif __LITTLE_ENDIAN__ "$t" \ +&& SUBARCH=${SUBARCH}el + test "$SUBARCH" \ && printf "configured for %s variant: %s\n" "$ARCH" "$ARCH$SUBARCH" 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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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/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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.000000000 +0100 @@ -0,0 +1 @@ +../fenv.c diff -Nur musl-0.9.15/src/fenv/superh/fenv.s musl-git/src/fenv/superh/fenv.s --- musl-0.9.15/src/fenv/superh/fenv.s 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/src/fenv/superh/fenv.s 2014-02-25 15:24:14.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/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-02-25 15:24:14.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-02-25 15:24:14.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/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-02-25 15:24:14.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/superh/syscall.s musl-git/src/internal/superh/syscall.s --- musl-0.9.15/src/internal/superh/syscall.s 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/src/internal/superh/syscall.s 2014-02-25 15:24:14.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/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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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/superh/dlsym.s musl-git/src/ldso/superh/dlsym.s --- musl-0.9.15/src/ldso/superh/dlsym.s 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/src/ldso/superh/dlsym.s 2014-02-25 15:24:14.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/superh/start.s musl-git/src/ldso/superh/start.s --- musl-0.9.15/src/ldso/superh/start.s 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/src/ldso/superh/start.s 2014-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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/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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.000000000 +0100 @@ -0,0 +1 @@ +setjmp.s diff -Nur musl-0.9.15/src/setjmp/superh/longjmp.s musl-git/src/setjmp/superh/longjmp.s --- musl-0.9.15/src/setjmp/superh/longjmp.s 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/src/setjmp/superh/longjmp.s 2014-02-25 15:24:14.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/superh/setjmp.s musl-git/src/setjmp/superh/setjmp.s --- musl-0.9.15/src/setjmp/superh/setjmp.s 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/src/setjmp/superh/setjmp.s 2014-02-25 15:24:14.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/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-02-25 15:24:14.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-02-25 15:24:14.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/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-02-25 15:24:14.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-02-25 15:24:14.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/superh/restore.s musl-git/src/signal/superh/restore.s --- musl-0.9.15/src/signal/superh/restore.s 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/src/signal/superh/restore.s 2014-02-25 15:24:14.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/superh/sigsetjmp.s musl-git/src/signal/superh/sigsetjmp.s --- musl-0.9.15/src/signal/superh/sigsetjmp.s 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/src/signal/superh/sigsetjmp.s 2014-02-25 15:24:14.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/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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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/superh/clone.s musl-git/src/thread/superh/clone.s --- musl-0.9.15/src/thread/superh/clone.s 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/src/thread/superh/clone.s 2014-02-25 15:24:14.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/superh/__set_thread_area.s musl-git/src/thread/superh/__set_thread_area.s --- musl-0.9.15/src/thread/superh/__set_thread_area.s 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/src/thread/superh/__set_thread_area.s 2014-02-25 15:24:14.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/superh/syscall_cp.s musl-git/src/thread/superh/syscall_cp.s --- musl-0.9.15/src/thread/superh/syscall_cp.s 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/src/thread/superh/syscall_cp.s 2014-02-25 15:24:14.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/superh/__unmapself.s musl-git/src/thread/superh/__unmapself.s --- musl-0.9.15/src/thread/superh/__unmapself.s 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/src/thread/superh/__unmapself.s 2014-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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-02-25 15:24:14.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/superh/pipe.s musl-git/src/unistd/superh/pipe.s --- musl-0.9.15/src/unistd/superh/pipe.s 1970-01-01 01:00:00.000000000 +0100 +++ musl-git/src/unistd/superh/pipe.s 2014-02-25 15:24:14.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-02-25 15:24:14.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