|
@@ -0,0 +1,8039 @@
|
|
|
+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 <stdint.h>
|
|
|
++
|
|
|
++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 <stdint.h>
|
|
|
++
|
|
|
++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 <stdint.h>
|
|
|
++#include <string.h>
|
|
|
++#include <elf.h>
|
|
|
++
|
|
|
++#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 <sys/syscall.h>
|
|
|
++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 <sys/types.h>
|
|
|
+ #include <sys/socket.h>
|
|
|
+-#endif
|
|
|
++#include <stdint.h>
|
|
|
++#include <endian.h>
|
|
|
++
|
|
|
++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 <endian.h>
|
|
|
+-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 <features.h>
|
|
|
+ #include <stdint.h>
|
|
|
+
|
|
|
+-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 <bits/alltypes.h>
|
|
|
+
|
|
|
+ #include <sys/ipc.h>
|
|
|
++
|
|
|
++#ifdef _GNU_SOURCE
|
|
|
++#define __used_ids used_ids
|
|
|
++#define __swap_attempts swap_attempts
|
|
|
++#define __swap_successes swap_successes
|
|
|
++#endif
|
|
|
++
|
|
|
+ #include <bits/shm.h>
|
|
|
+
|
|
|
+ #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 <bits/alltypes.h>
|
|
|
+-
|
|
|
+-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 <features.h>
|
|
|
++
|
|
|
+ #define __NEED_pid_t
|
|
|
+ #define __NEED_time_t
|
|
|
+ #define __NEED_suseconds_t
|
|
|
+@@ -12,19 +14,17 @@
|
|
|
+
|
|
|
+ #include <bits/alltypes.h>
|
|
|
+
|
|
|
+-#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 <stdint.h>
|
|
|
++#include <stdlib.h>
|
|
|
++#include <unistd.h>
|
|
|
++
|
|
|
++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 <fcntl.h>
|
|
|
+ #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 <fcntl.h>
|
|
|
+ #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 <sys/syscall.h>
|
|
|
+ #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 <dlfcn.h>
|
|
|
+
|
|
|
+-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 <stdarg.h>
|
|
|
++#include <unistd.h>
|
|
|
++#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 <fcntl.h>
|
|
|
+ #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 <sys/mman.h>
|
|
|
+ #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 <time.h>
|
|
|
+ #include <sys/time.h>
|
|
|
+
|
|
|
+-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 <sys/socket.h>
|
|
|
++#include <errno.h>
|
|
|
++#include <fcntl.h>
|
|
|
+ #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 <stdlib.h>
|
|
|
+ #include <stdint.h>
|
|
|
+ #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 <errno.h>
|
|
|
+-#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
|