From 5618dc67c9b25d9eea4fad7294dda30375a66e41 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 19 Mar 2014 22:02:30 +0100 Subject: fixes for aranym --- target/config/Config.in | 1 - target/m68k/kernel/aranym-m68k | 7 +------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/target/config/Config.in b/target/config/Config.in index 38004d7e3..75f41c0ca 100644 --- a/target/config/Config.in +++ b/target/config/Config.in @@ -736,7 +736,6 @@ config ADK_TARGET_ROOTFS_INITRAMFS depends on !ADK_HARDWARE_VBOX depends on !ADK_TARGET_SYSTEM_RASPBERRY_PI select ADK_KERNEL_BLK_DEV_INITRD - select ADK_KERNEL_BLK_DEV_RAM if ADK_TARGET_SYSTEM_ARANYM_M68K help create an read-only initramfs system. diff --git a/target/m68k/kernel/aranym-m68k b/target/m68k/kernel/aranym-m68k index 93bf0022f..13757da5c 100644 --- a/target/m68k/kernel/aranym-m68k +++ b/target/m68k/kernel/aranym-m68k @@ -4,12 +4,7 @@ CONFIG_M68KCLASSIC=y CONFIG_M68040=y CONFIG_FPU=y CONFIG_ATARI=y -CONFIG_NET_VENDOR_AMD=y -CONFIG_NET_CADENCE=y +CONFIG_NFETH=y CONFIG_SERIO=y CONFIG_SERIO_SERPORT=y CONFIG_SERIO_LIBPS2=y -CONFIG_SERIAL_8250=y -CONFIG_SERIAL_8250_CONSOLE=y -CONFIG_SERIAL_8250_NR_UARTS=4 -CONFIG_SERIAL_8250_RUNTIME_UARTS=4 -- cgit v1.2.3 From ad3bd9a98cddb728aef34eadd10b533c63bd474a Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 20 Mar 2014 16:04:17 +0100 Subject: create symlinks for usr/lib, too --- mk/build.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/mk/build.mk b/mk/build.mk index 4cdccd8fd..41d482272 100644 --- a/mk/build.mk +++ b/mk/build.mk @@ -172,6 +172,7 @@ ${STAGING_TARGET_DIR} ${STAGING_TARGET_DIR}/etc ${STAGING_HOST_DIR}: ${STAGING_HOST_DIR}/{bin,lib,usr/bin,usr/lib,usr/include} for i in lib64 lib32 libx32;do \ cd ${STAGING_TARGET_DIR}/; ln -sf lib $$i; \ + cd ${STAGING_TARGET_DIR}/usr; ln -sf lib $$i; \ done ${STAGING_TARGET_DIR}/etc/ipkg.conf: ${STAGING_TARGET_DIR}/etc -- cgit v1.2.3 From 64c3768a17e93e4788106d49e42e96f5c7a33450 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 20 Mar 2014 16:04:27 +0100 Subject: need to remove any libiberty.a from toolchain build --- package/binutils/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/binutils/Makefile b/package/binutils/Makefile index 5734e198d..1a6014607 100644 --- a/package/binutils/Makefile +++ b/package/binutils/Makefile @@ -39,8 +39,8 @@ CONFIGURE_ARGS+= --disable-werror \ # disable honour cflags stuff XAKE_FLAGS+= GCC_HONOUR_COPTS=s -post-build: - $(CP) ${WRKBUILD}/libiberty/libiberty.a $(STAGING_TARGET_DIR)/usr/lib +pre-build: + @-rm $(STAGING_TARGET_DIR)/usr/lib/libiberty.a libbfd-install: ${INSTALL_DIR} ${IDIR_LIBBFD}/usr/lib -- cgit v1.2.3 From 676259549621ff73676d0cda40371594da4ea079 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 20 Mar 2014 16:06:02 +0100 Subject: add some aranym fine tuning --- .gitignore | 1 + target/config/Config.in.runtime | 3 ++- target/m68k/Makefile | 8 ++++++++ target/m68k/kernel/aranym-m68k | 1 + 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 55f82fdd7..b2a8d1a21 100644 --- a/.gitignore +++ b/.gitignore @@ -53,3 +53,4 @@ /target/config/Config.in.system /target/config/Config.in.native /target/config/Config.in.arch +/target/m68k/aranym.cfg diff --git a/target/config/Config.in.runtime b/target/config/Config.in.runtime index 721f623de..7acdd26ed 100644 --- a/target/config/Config.in.runtime +++ b/target/config/Config.in.runtime @@ -59,6 +59,7 @@ config ADK_RUNTIME_GETTY_VGA default y if ADK_TARGET_SYSTEM_RASPBERRY_PI default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG default y if ADK_TARGET_SYSTEM_IBM_X40 + default y if ADK_TARGET_SYSTEM_ARANYM_M68K default n help Start getty on VGA console. (tty1-tty6) @@ -69,6 +70,7 @@ config ADK_RUNTIME_GETTY_SERIAL default n if ADK_TARGET_SYSTEM_RASPBERRY_PI default n if ADK_TARGET_SYSTEM_LEMOTE_YEELONG default n if ADK_TARGET_SYSTEM_IBM_X40 + default n if ADK_TARGET_SYSTEM_ARANYM_M68K default y help Start getty on serial console. @@ -80,7 +82,6 @@ config ADK_RUNTIME_CONSOLE_SERIAL_DEVICE default "ttyAMA0" if ADK_TARGET_QEMU_ARM_MODEL_VERSATILEPB || ADK_TARGET_QEMU_ARM_MODEL_VEXPRESS_A9 default "ttySC1" if ADK_TARGET_SYSTEM_QEMU_SH4 || ADK_TARGET_SYSTEM_QEMU_SH4EB default "ttymxc0" if ADK_TARGET_SYSTEM_CUBOX_I - default "nfcon0" if ADK_TARGET_SYSTEM_ARANYM_M68K default "ttyS0" config ADK_RUNTIME_CONSOLE_SERIAL_SPEED diff --git a/target/m68k/Makefile b/target/m68k/Makefile index 0e7324c25..78206042c 100644 --- a/target/m68k/Makefile +++ b/target/m68k/Makefile @@ -26,6 +26,14 @@ imageinstall: $(FW_DIR)/$(INITRAMFS) @cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL) @echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}' @echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}' +ifeq ($(ADK_TARGET_SYSTEM_ARANYM_M68K),y) + @sed -e "s#@@KERNEL@@#$(FW_DIR)/$(TARGET_KERNEL)#" \ + -e "s#@@INITRAMFS@@#${FW_DIR}/${INITRAMFS}#" \ + $(TOPDIR)/target/m68k/aranym.cfg.in \ + > $(TOPDIR)/target/m68k/aranym.cfg + @echo 'Start aranym with: aranym-mmu -l -c target/m68k/aranym.cfg' + @echo 'Ungrab mouse with middle mouse click' +endif endif ifeq ($(ADK_TARGET_FS),initramfs-piggyback) imageinstall: createinitramfs diff --git a/target/m68k/kernel/aranym-m68k b/target/m68k/kernel/aranym-m68k index 13757da5c..ac513fdc6 100644 --- a/target/m68k/kernel/aranym-m68k +++ b/target/m68k/kernel/aranym-m68k @@ -4,6 +4,7 @@ CONFIG_M68KCLASSIC=y CONFIG_M68040=y CONFIG_FPU=y CONFIG_ATARI=y +CONFIG_NATFEAT=y CONFIG_NFETH=y CONFIG_SERIO=y CONFIG_SERIO_SERPORT=y -- cgit v1.2.3 From 7f1edcf1ad7c4d291a3e8230132b7afcaef88424 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 20 Mar 2014 16:06:28 +0100 Subject: add example config for aranym --- target/m68k/aranym.cfg.in | 195 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 target/m68k/aranym.cfg.in diff --git a/target/m68k/aranym.cfg.in b/target/m68k/aranym.cfg.in new file mode 100644 index 000000000..a2fd30170 --- /dev/null +++ b/target/m68k/aranym.cfg.in @@ -0,0 +1,195 @@ +[GLOBAL] +FastRAM = 32 +Floppy = +TOS = ROM +EmuTOS = etos512k.img +Bootstrap = mintara.prg +BootstrapArgs = +BootDrive = +GMTime = No + +[STARTUP] +GrabMouse = No +Debugger = No + +[IKBD] +WheelEiffel = No +AltGr = Yes + +[HOTKEYS] +Setup = 19:0 +Quit = 19:0x1 +Reboot = 19:0x40 +Ungrab = 27:0x141 +Debug = 19:0x100 +Screenshot = 316:0 +Fullscreen = 302:0 + +[JIT] +JIT = Yes +JITFPU = Yes +JITCacheSize = 8192 +JITLazyFlush = 1 +JITBlackList = +JITInline = No + +[VIDEO] +FullScreen = No +BootColorDepth = -1 +VidelRefresh = 2 +VidelMonitor = -1 +SingleBlitComposing = No +SingleBlitRefresh = No + +[TOS] +Cookie_MCH = 50000 +RedirConsole = No + +[IDE0] +Present = No +IsCDROM = No +ByteSwap = No +ReadOnly = No +Path = +Cylinders = 0 +Heads = 0 +SectorsPerTrack = 0 +ModelName = Master + +[IDE1] +Present = No +IsCDROM = No +ByteSwap = No +ReadOnly = No +Path = +Cylinders = 0 +Heads = 0 +SectorsPerTrack = 0 +ModelName = Slave + +[PARTITION0] +Path = +Present = No +PartID = BGM +ByteSwap = No +ReadOnly = No + +[HOSTFS] +A = +B = +C = +D = +E = +F = +G = +H = +I = +J = +K = +L = +M = +N = +O = +P = +Q = +R = +S = +T = +U = +V = +W = +X = +Y = +Z = + +[OPENGL] +Enabled = No +Filtered = No +Library = + +[ETH0] +Type = bridge +Tunnel = tap0 +HostIP = 172.24.30.12 +AtariIP = 172.24.42.46 +Netmask = 255.255.0.0 +MAC = 00:41:45:54:48:30 + +[LILO] +Kernel = @@KERNEL@@ +Args = console=tty debug=par +Ramdisk = @@INITRAMFS@@ + +[MIDI] +Type = none +File = +Sequencer = /dev/sequencer + +[CDROMS] +A = -1 +B = -1 +C = -1 +D = -1 +E = -1 +F = -1 +G = -1 +H = -1 +I = -1 +J = -1 +K = -1 +L = -1 +M = -1 +N = -1 +O = -1 +P = -1 +Q = -1 +R = -1 +S = -1 +T = -1 +U = -1 +V = -1 +W = -1 +X = -1 +Y = -1 +Z = -1 + +[AUTOZOOM] +Enabled = No +IntegerCoefs = No +FixedSize = No +Width = 640 +Height = 480 + +[NFOSMESA] +ChannelSize = 0 +LibGL = libGL.so +LibOSMesa = libOSMesa.so + +[PARALLEL] +Type = file +File = stderr +Parport = /dev/parport0 + +[SERIAL] +Serport = /dev/ttyS0 + +[NATFEATS] +CDROM = sdl +Vdi = soft + +[NFVDI] +UseHostMouseCursor = No + +[AUDIO] +Frequency = 22050 +Channels = 2 +Bits = 16 +Samples = 1024 + +[JOYSTICKS] +Ikbd0 = -1 +Ikbd1 = 0 +JoypadA = -1 +JoypadAButtons = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 +JoypadB = -1 +JoypadBButtons = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 -- cgit v1.2.3 From 094cc8184b8bbfe02fa05c34d4c83d036161eb4c Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 20 Mar 2014 16:12:08 +0100 Subject: DEVICE must be substituted more than once in the line --- package/base-files/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 0dee1aa94..7c0a7f1a7 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/mk/rootfs.mk PKG_NAME:= base-files PKG_VERSION:= 1.0 -PKG_RELEASE:= 74 +PKG_RELEASE:= 75 PKG_SECTION:= base PKG_DESCR:= basic files and scripts PKG_BUILDDEP:= pkgconf-host file-host @@ -61,7 +61,7 @@ endif cat ./files/inittab.vga >> $(IDIR_BASE_FILES)/etc/inittab test -z $(ADK_RUNTIME_GETTY_SERIAL) || \ cat ./files/inittab.serial >> $(IDIR_BASE_FILES)/etc/inittab - $(SED) 's#@DEVICE@#$(ADK_RUNTIME_CONSOLE_SERIAL_DEVICE)#' $(IDIR_BASE_FILES)/etc/inittab + $(SED) 's#@DEVICE@#$(ADK_RUNTIME_CONSOLE_SERIAL_DEVICE)#g' $(IDIR_BASE_FILES)/etc/inittab $(SED) 's#@SPEED@#$(ADK_RUNTIME_CONSOLE_SERIAL_SPEED)#' $(IDIR_BASE_FILES)/etc/inittab test -z $(ADK_RUNTIME_HOSTNAME) || \ echo $(ADK_RUNTIME_HOSTNAME) > $(IDIR_BASE_FILES)/etc/hostname; \ -- cgit v1.2.3 From 3a22b41909e8810e589cf03c73dbaa788bb5ce8a Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 20 Mar 2014 16:12:25 +0100 Subject: update musl to 1.0.0 --- toolchain/musl/Makefile | 6 - toolchain/musl/Makefile.inc | 5 +- toolchain/musl/patches/musl-git-20140319.patch | 8864 ------------------------ 3 files changed, 2 insertions(+), 8873 deletions(-) delete mode 100644 toolchain/musl/patches/musl-git-20140319.patch diff --git a/toolchain/musl/Makefile b/toolchain/musl/Makefile index f13a2613d..6701c502a 100644 --- a/toolchain/musl/Makefile +++ b/toolchain/musl/Makefile @@ -9,12 +9,6 @@ include ${TOPDIR}/mk/buildhlp.mk ifeq ($(CPU_ARCH),ppc) GNU_TARGET_NAME:= $(subst ppc,powerpc,$(GNU_TARGET_NAME)) endif -ifeq ($(CPU_ARCH),mips64el) -GNU_TARGET_NAME:= $(subst mips64el,mips,$(GNU_TARGET_NAME)) -endif -ifeq ($(CPU_ARCH),mips64) -GNU_TARGET_NAME:= $(subst mips64,mips,$(GNU_TARGET_NAME)) -endif $(WRKBUILD)/.headers: (cd $(WRKBUILD); CC='$(TARGET_CC)' CROSS_COMPILE='$(TARGET_CROSS)' \ diff --git a/toolchain/musl/Makefile.inc b/toolchain/musl/Makefile.inc index 506280532..40cf4fcf0 100644 --- a/toolchain/musl/Makefile.inc +++ b/toolchain/musl/Makefile.inc @@ -2,8 +2,7 @@ # material, please see the LICENCE file in the top-level directory. PKG_NAME:= musl -PKG_VERSION:= 0.9.15 +PKG_VERSION:= 1.0.0 PKG_RELEASE:= 1 -PKG_MD5SUM:= 06f590a38c85722ee9343db2416425f4 +PKG_MD5SUM:= e54664fdf211d27737e328c4462b545e PKG_SITES:= http://www.musl-libc.org/releases/ -DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz diff --git a/toolchain/musl/patches/musl-git-20140319.patch b/toolchain/musl/patches/musl-git-20140319.patch deleted file mode 100644 index f319d904a..000000000 --- a/toolchain/musl/patches/musl-git-20140319.patch +++ /dev/null @@ -1,8864 +0,0 @@ -diff -Nur musl-0.9.15/arch/arm/bits/sem.h musl-git/arch/arm/bits/sem.h ---- musl-0.9.15/arch/arm/bits/sem.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/arm/bits/sem.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,16 @@ -+struct semid_ds { -+ struct ipc_perm sem_perm; -+ 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(time_t)-sizeof(short)]; -+#else -+ char __sem_nsems_pad[sizeof(time_t)-sizeof(short)]; -+ unsigned short sem_nsems; -+#endif -+ time_t __unused3; -+ time_t __unused4; -+}; -diff -Nur musl-0.9.15/arch/arm/bits/shm.h musl-git/arch/arm/bits/shm.h ---- musl-0.9.15/arch/arm/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/arm/bits/shm.h 2014-03-19 07:42:48.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/signal.h musl-git/arch/arm/bits/signal.h ---- musl-0.9.15/arch/arm/bits/signal.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/arm/bits/signal.h 2014-03-19 07:42:48.000000000 +0100 -@@ -18,6 +18,12 @@ - } mcontext_t; - #endif - -+struct sigaltstack { -+ void *ss_sp; -+ int ss_flags; -+ size_t ss_size; -+}; -+ - typedef struct __ucontext { - unsigned long uc_flags; - struct __ucontext *uc_link; -diff -Nur musl-0.9.15/arch/arm/bits/termios.h musl-git/arch/arm/bits/termios.h ---- musl-0.9.15/arch/arm/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/arm/bits/termios.h 2014-03-19 07:42:48.000000000 +0100 -@@ -42,6 +42,7 @@ - #define IXANY 0004000 - #define IXOFF 0010000 - #define IMAXBEL 0020000 -+#define IUTF8 0040000 - - #define OPOST 0000001 - #define OLCUC 0000002 -@@ -75,9 +76,6 @@ - #define VT0 0000000 - #define VT1 0040000 - --/* ?? */ --#define XTABS 0014000 -- - #define B0 0000000 - #define B50 0000001 - #define B75 0000002 -@@ -125,8 +123,6 @@ - #define HUPCL 0002000 - #define CLOCAL 0004000 - --#define CRTSCTS 020000000000 -- - #define ISIG 0000001 - #define ICANON 0000002 - #define ECHO 0000010 -@@ -137,14 +133,11 @@ - #define TOSTOP 0000400 - #define IEXTEN 0100000 - --/* Extensions? */ --#define CBAUDEX 0010000 - #define ECHOCTL 0001000 - #define ECHOPRT 0002000 - #define ECHOKE 0004000 - #define FLUSHO 0010000 - #define PENDIN 0040000 --#define EXTPROC 0200000 - - #define TCOOFF 0 - #define TCOON 1 -@@ -158,3 +151,10 @@ - #define TCSANOW 0 - #define TCSADRAIN 1 - #define TCSAFLUSH 2 -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define CBAUDEX 0010000 -+#define CRTSCTS 020000000000 -+#define EXTPROC 0200000 -+#define XTABS 0014000 -+#endif -diff -Nur musl-0.9.15/arch/arm/syscall_arch.h musl-git/arch/arm/syscall_arch.h ---- musl-0.9.15/arch/arm/syscall_arch.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/arm/syscall_arch.h 2014-03-19 07:42:48.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/sem.h musl-git/arch/i386/bits/sem.h ---- musl-0.9.15/arch/i386/bits/sem.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/i386/bits/sem.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,16 @@ -+struct semid_ds { -+ struct ipc_perm sem_perm; -+ 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(time_t)-sizeof(short)]; -+#else -+ char __sem_nsems_pad[sizeof(time_t)-sizeof(short)]; -+ unsigned short sem_nsems; -+#endif -+ time_t __unused3; -+ time_t __unused4; -+}; -diff -Nur musl-0.9.15/arch/i386/bits/shm.h musl-git/arch/i386/bits/shm.h ---- musl-0.9.15/arch/i386/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/i386/bits/shm.h 2014-03-19 07:42:48.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/signal.h musl-git/arch/i386/bits/signal.h ---- musl-0.9.15/arch/i386/bits/signal.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/i386/bits/signal.h 2014-03-19 07:42:48.000000000 +0100 -@@ -53,6 +53,12 @@ - } mcontext_t; - #endif - -+struct sigaltstack { -+ void *ss_sp; -+ int ss_flags; -+ size_t ss_size; -+}; -+ - typedef struct __ucontext { - unsigned long uc_flags; - struct __ucontext *uc_link; -diff -Nur musl-0.9.15/arch/i386/bits/termios.h musl-git/arch/i386/bits/termios.h ---- musl-0.9.15/arch/i386/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/i386/bits/termios.h 2014-03-19 07:42:48.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/sem.h musl-git/arch/microblaze/bits/sem.h ---- musl-0.9.15/arch/microblaze/bits/sem.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/microblaze/bits/sem.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,16 @@ -+struct semid_ds { -+ struct ipc_perm sem_perm; -+ 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(time_t)-sizeof(short)]; -+#else -+ char __sem_nsems_pad[sizeof(time_t)-sizeof(short)]; -+ unsigned short sem_nsems; -+#endif -+ time_t __unused3; -+ time_t __unused4; -+}; -diff -Nur musl-0.9.15/arch/microblaze/bits/shm.h musl-git/arch/microblaze/bits/shm.h ---- musl-0.9.15/arch/microblaze/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/microblaze/bits/shm.h 2014-03-19 07:42:48.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/signal.h musl-git/arch/microblaze/bits/signal.h ---- musl-0.9.15/arch/microblaze/bits/signal.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/microblaze/bits/signal.h 2014-03-19 07:42:48.000000000 +0100 -@@ -21,6 +21,12 @@ - } mcontext_t; - #endif - -+struct sigaltstack { -+ void *ss_sp; -+ int ss_flags; -+ size_t ss_size; -+}; -+ - typedef struct __ucontext { - unsigned long uc_flags; - struct __ucontext *uc_link; -diff -Nur musl-0.9.15/arch/microblaze/bits/termios.h musl-git/arch/microblaze/bits/termios.h ---- musl-0.9.15/arch/microblaze/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/microblaze/bits/termios.h 2014-03-19 07:42:48.000000000 +0100 -@@ -42,6 +42,7 @@ - #define IXANY 0004000 - #define IXOFF 0010000 - #define IMAXBEL 0020000 -+#define IUTF8 0040000 - - #define OPOST 0000001 - #define OLCUC 0000002 -@@ -75,9 +76,6 @@ - #define VT0 0000000 - #define VT1 0040000 - --/* ?? */ --#define XTABS 0014000 -- - #define B0 0000000 - #define B50 0000001 - #define B75 0000002 -@@ -125,8 +123,6 @@ - #define HUPCL 0002000 - #define CLOCAL 0004000 - --#define CRTSCTS 020000000000 -- - #define ISIG 0000001 - #define ICANON 0000002 - #define ECHO 0000010 -@@ -137,14 +133,11 @@ - #define TOSTOP 0000400 - #define IEXTEN 0100000 - --/* Extensions? */ --#define CBAUDEX 0010000 - #define ECHOCTL 0001000 - #define ECHOPRT 0002000 - #define ECHOKE 0004000 - #define FLUSHO 0010000 - #define PENDIN 0040000 --#define EXTPROC 0200000 - - #define TCOOFF 0 - #define TCOON 1 -@@ -158,3 +151,10 @@ - #define TCSANOW 0 - #define TCSADRAIN 1 - #define TCSAFLUSH 2 -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define CBAUDEX 0010000 -+#define CRTSCTS 020000000000 -+#define EXTPROC 0200000 -+#define XTABS 0014000 -+#endif -diff -Nur musl-0.9.15/arch/microblaze/syscall_arch.h musl-git/arch/microblaze/syscall_arch.h ---- musl-0.9.15/arch/microblaze/syscall_arch.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/microblaze/syscall_arch.h 2014-03-19 07:42:48.000000000 +0100 -@@ -3,6 +3,8 @@ - ((union { long long ll; long l[2]; }){ .ll = x }).l[1] - #define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x)) - -+long (__syscall)(long, ...); -+ - #ifndef __clang__ - - static __inline long __syscall0(long n) -diff -Nur musl-0.9.15/arch/mips/bits/fenv.h musl-git/arch/mips/bits/fenv.h ---- musl-0.9.15/arch/mips/bits/fenv.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/mips/bits/fenv.h 2014-03-19 07:42:48.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/sem.h musl-git/arch/mips/bits/sem.h ---- musl-0.9.15/arch/mips/bits/sem.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/mips/bits/sem.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,14 @@ -+struct semid_ds { -+ struct ipc_perm sem_perm; -+ time_t sem_otime; -+ time_t sem_ctime; -+#if __BYTE_ORDER == __LITTLE_ENDIAN -+ unsigned short sem_nsems; -+ char __sem_nsems_pad[sizeof(time_t)-sizeof(short)]; -+#else -+ char __sem_nsems_pad[sizeof(time_t)-sizeof(short)]; -+ unsigned short sem_nsems; -+#endif -+ time_t __unused3; -+ time_t __unused4; -+}; -diff -Nur musl-0.9.15/arch/mips/bits/setjmp.h musl-git/arch/mips/bits/setjmp.h ---- musl-0.9.15/arch/mips/bits/setjmp.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/mips/bits/setjmp.h 2014-03-19 07:42:48.000000000 +0100 -@@ -1 +1 @@ --typedef unsigned long long __jmp_buf[15]; -+typedef unsigned long long __jmp_buf[13]; -diff -Nur musl-0.9.15/arch/mips/bits/shm.h musl-git/arch/mips/bits/shm.h ---- musl-0.9.15/arch/mips/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/mips/bits/shm.h 2014-03-19 07:42:48.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/signal.h musl-git/arch/mips/bits/signal.h ---- musl-0.9.15/arch/mips/bits/signal.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/mips/bits/signal.h 2014-03-19 07:42:48.000000000 +0100 -@@ -38,13 +38,18 @@ - } mcontext_t; - #endif - -+struct sigaltstack { -+ void *ss_sp; -+ size_t ss_size; -+ int ss_flags; -+}; -+ - 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 uc_regspace[128]; - } ucontext_t; - - #define SA_NOCLDSTOP 1 -diff -Nur musl-0.9.15/arch/mips/bits/statfs.h musl-git/arch/mips/bits/statfs.h ---- musl-0.9.15/arch/mips/bits/statfs.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/mips/bits/statfs.h 2014-03-19 07:42:48.000000000 +0100 -@@ -1,7 +1,8 @@ - struct statfs { -- unsigned long f_type, f_bsize; -- fsblkcnt_t f_blocks, f_bfree, f_bavail; -+ unsigned long f_type, f_bsize, f_frsize; -+ fsblkcnt_t f_blocks, f_bfree; - fsfilcnt_t f_files, f_ffree; -+ fsblkcnt_t f_bavail; - fsid_t f_fsid; -- unsigned long f_namelen, f_frsize, f_flags, f_spare[4]; -+ unsigned long f_namelen, f_flags, f_spare[5]; - }; -diff -Nur musl-0.9.15/arch/mips/bits/termios.h musl-git/arch/mips/bits/termios.h ---- musl-0.9.15/arch/mips/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/mips/bits/termios.h 2014-03-19 07:42:48.000000000 +0100 -@@ -77,9 +77,6 @@ - #define VT0 0000000 - #define VT1 0040000 - --/* ?? */ --#define XTABS 0014000 -- - #define B0 0000000 - #define B50 0000001 - #define B75 0000002 -@@ -129,12 +126,6 @@ - #define PARODD 0001000 - #define HUPCL 0002000 - #define CLOCAL 0004000 --#define CBAUDEX 0010000 -- --#define CIBAUD 002003600000 --#define CMSPAR 010000000000 --#define CRTSCTS 020000000000 --#define IBSHIFT 16 - - #define ISIG 0000001 - #define ICANON 0000002 -@@ -152,9 +143,6 @@ - #define PENDIN 0040000 - #define TOSTOP 0100000 - #define ITOSTOP 0100000 --#define EXTPROC 0200000 -- --#define TIOCSER_TEMT 1 - - #define TCOOFF 0 - #define TCOON 1 -@@ -168,3 +156,14 @@ - #define TCSANOW 0 - #define TCSADRAIN 1 - #define TCSAFLUSH 2 -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define CBAUDEX 0010000 -+#define CIBAUD 002003600000 -+#define IBSHIFT 16 -+#define CMSPAR 010000000000 -+#define CRTSCTS 020000000000 -+#define EXTPROC 0200000 -+#define XTABS 0014000 -+#define TIOCSER_TEMT 1 -+#endif -diff -Nur musl-0.9.15/arch/mips/reloc.h musl-git/arch/mips/reloc.h ---- musl-0.9.15/arch/mips/reloc.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/mips/reloc.h 2014-03-19 07:42:48.000000000 +0100 -@@ -8,7 +8,13 @@ - #define ENDIAN_SUFFIX "" - #endif - --#define LDSO_ARCH "mips" ENDIAN_SUFFIX -+#ifdef __mips_soft_float -+#define FP_SUFFIX "-sf" -+#else -+#define FP_SUFFIX "" -+#endif -+ -+#define LDSO_ARCH "mips" ENDIAN_SUFFIX FP_SUFFIX - - #define IS_COPY(x) ((x)==R_MIPS_COPY) - #define IS_PLT(x) 1 -diff -Nur musl-0.9.15/arch/mips/syscall_arch.h musl-git/arch/mips/syscall_arch.h ---- musl-0.9.15/arch/mips/syscall_arch.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/mips/syscall_arch.h 2014-03-19 07:42:48.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/ipc.h musl-git/arch/powerpc/bits/ipc.h ---- musl-0.9.15/arch/powerpc/bits/ipc.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/powerpc/bits/ipc.h 2014-03-19 07:42:48.000000000 +0100 -@@ -7,8 +7,9 @@ - gid_t cgid; - mode_t mode; - int __ipc_perm_seq; -- long __pad1; -- long __pad2; -+ int __pad1; -+ long long __pad2; -+ long long __pad3; - }; - - #define IPC_64 0x100 -diff -Nur musl-0.9.15/arch/powerpc/bits/msg.h musl-git/arch/powerpc/bits/msg.h ---- musl-0.9.15/arch/powerpc/bits/msg.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/powerpc/bits/msg.h 2014-03-19 07:42:48.000000000 +0100 -@@ -1,12 +1,12 @@ - struct msqid_ds - { - struct ipc_perm msg_perm; -- time_t msg_stime; - int __unused1; -- time_t msg_rtime; -+ time_t msg_stime; - int __unused2; -- time_t msg_ctime; -+ time_t msg_rtime; - int __unused3; -+ time_t msg_ctime; - unsigned long msg_cbytes; - msgqnum_t msg_qnum; - msglen_t msg_qbytes; -diff -Nur musl-0.9.15/arch/powerpc/bits/sem.h musl-git/arch/powerpc/bits/sem.h ---- musl-0.9.15/arch/powerpc/bits/sem.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/powerpc/bits/sem.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,10 @@ -+struct semid_ds { -+ struct ipc_perm sem_perm; -+ int __unused1; -+ time_t sem_otime; -+ int __unused2; -+ time_t sem_ctime; -+ unsigned short __sem_nsems_pad, sem_nsems; -+ long __unused3; -+ long __unused4; -+}; -diff -Nur musl-0.9.15/arch/powerpc/bits/shm.h musl-git/arch/powerpc/bits/shm.h ---- musl-0.9.15/arch/powerpc/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/powerpc/bits/shm.h 2014-03-19 07:42:48.000000000 +0100 -@@ -3,16 +3,28 @@ - struct shmid_ds - { - struct ipc_perm shm_perm; -- size_t shm_segsz; -- time_t shm_atime; - int __unused1; -- time_t shm_dtime; -+ time_t shm_atime; - int __unused2; -- time_t shm_ctime; -+ time_t shm_dtime; - int __unused3; -+ time_t shm_ctime; -+ int __unused4; -+ size_t shm_segsz; - 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/powerpc/bits/signal.h musl-git/arch/powerpc/bits/signal.h ---- musl-0.9.15/arch/powerpc/bits/signal.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/powerpc/bits/signal.h 2014-03-19 07:42:48.000000000 +0100 -@@ -49,6 +49,12 @@ - - #endif - -+struct sigaltstack { -+ void *ss_sp; -+ int ss_flags; -+ size_t ss_size; -+}; -+ - typedef struct __ucontext { - unsigned long uc_flags; - struct __ucontext *uc_link; -diff -Nur musl-0.9.15/arch/powerpc/bits/socket.h musl-git/arch/powerpc/bits/socket.h ---- musl-0.9.15/arch/powerpc/bits/socket.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/powerpc/bits/socket.h 2014-03-19 07:42:48.000000000 +0100 -@@ -1,12 +1,12 @@ - struct msghdr - { - void *msg_name; -- int msg_namelen; -+ socklen_t msg_namelen; - struct iovec *msg_iov; -- unsigned long msg_iovlen; -+ int msg_iovlen; - void *msg_control; -- unsigned long msg_controllen; -- unsigned msg_flags; -+ socklen_t msg_controllen; -+ int msg_flags; - }; - - struct cmsghdr -diff -Nur musl-0.9.15/arch/powerpc/bits/termios.h musl-git/arch/powerpc/bits/termios.h ---- musl-0.9.15/arch/powerpc/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/powerpc/bits/termios.h 2014-03-19 07:42:48.000000000 +0100 -@@ -66,7 +66,6 @@ - #define TAB1 00002000 - #define TAB2 00004000 - #define TAB3 00006000 --#define XTABS 00006000 - #define CRDLY 00030000 - #define CR0 00000000 - #define CR1 00010000 -@@ -101,7 +100,6 @@ - #define B38400 0000017 - #define EXTA B19200 - #define EXTB B38400 --#define CBAUDEX 0000000 - #define B57600 00020 - #define B115200 00021 - #define B230400 00022 -@@ -120,9 +118,6 @@ - #define B4000000 00036 - #define BOTHER 00037 - --#define CIBAUD 077600000 --#define IBSHIFT 16 -- - #define CSIZE 00001400 - #define CS5 00000000 - #define CS6 00000400 -@@ -136,8 +131,6 @@ - #define HUPCL 00040000 - - #define CLOCAL 00100000 --#define CMSPAR 010000000000 --#define CRTSCTS 020000000000 - - #define ISIG 0x00000080 - #define ICANON 0x00000100 -@@ -154,7 +147,6 @@ - #define FLUSHO 0x00800000 - #define PENDIN 0x20000000 - #define IEXTEN 0x00000400 --#define EXTPROC 0x10000000 - - #define TCOOFF 0 - #define TCOON 1 -@@ -168,3 +160,13 @@ - #define TCSANOW 0 - #define TCSADRAIN 1 - #define TCSAFLUSH 2 -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define CBAUDEX 0000000 -+#define CIBAUD 077600000 -+#define IBSHIFT 16 -+#define CMSPAR 010000000000 -+#define CRTSCTS 020000000000 -+#define EXTPROC 0x10000000 -+#define XTABS 00006000 -+#endif -diff -Nur musl-0.9.15/arch/sh/atomic.h musl-git/arch/sh/atomic.h ---- musl-0.9.15/arch/sh/atomic.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/atomic.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,87 @@ -+#ifndef _INTERNAL_ATOMIC_H -+#define _INTERNAL_ATOMIC_H -+ -+#include -+ -+static inline int a_ctz_l(unsigned long x) -+{ -+ static const char debruijn32[32] = { -+ 0, 1, 23, 2, 29, 24, 19, 3, 30, 27, 25, 11, 20, 8, 4, 13, -+ 31, 22, 28, 18, 26, 10, 7, 12, 21, 17, 9, 6, 16, 5, 15, 14 -+ }; -+ return debruijn32[(x&-x)*0x076be629 >> 27]; -+} -+ -+static inline int a_ctz_64(uint64_t x) -+{ -+ uint32_t y = x; -+ if (!y) { -+ y = x>>32; -+ return 32 + a_ctz_l(y); -+ } -+ return a_ctz_l(y); -+} -+ -+int __sh_cas(volatile int *, int, int); -+int __sh_swap(volatile int *, int); -+int __sh_fetch_add(volatile int *, int); -+void __sh_store(volatile int *, int); -+void __sh_and(volatile int *, int); -+void __sh_or(volatile int *, int); -+ -+#define a_cas(p,t,s) __sh_cas(p,t,s) -+#define a_swap(x,v) __sh_swap(x,v) -+#define a_fetch_add(x,v) __sh_fetch_add(x, v) -+#define a_store(x,v) __sh_store(x, v) -+#define a_and(x,v) __sh_and(x, v) -+#define a_or(x,v) __sh_or(x, v) -+ -+static inline void *a_cas_p(volatile void *p, void *t, void *s) -+{ -+ return (void *)a_cas(p, (int)t, (int)s); -+} -+ -+static inline long a_cas_l(volatile void *p, long t, long s) -+{ -+ return a_cas(p, t, s); -+} -+ -+static inline void a_inc(volatile int *x) -+{ -+ a_fetch_add(x, 1); -+} -+ -+static inline void a_dec(volatile int *x) -+{ -+ a_fetch_add(x, -1); -+} -+ -+static inline void a_spin() -+{ -+} -+ -+static inline void a_crash() -+{ -+ *(volatile char *)0=0; -+} -+ -+static inline void a_or_l(volatile void *p, long v) -+{ -+ a_or(p, v); -+} -+ -+static inline void a_and_64(volatile uint64_t *p, uint64_t v) -+{ -+ union { uint64_t v; uint32_t r[2]; } u = { v }; -+ a_and((int *)p, u.r[0]); -+ a_and((int *)p+1, u.r[1]); -+} -+ -+static inline void a_or_64(volatile uint64_t *p, uint64_t v) -+{ -+ union { uint64_t v; uint32_t r[2]; } u = { v }; -+ a_or((int *)p, u.r[0]); -+ a_or((int *)p+1, u.r[1]); -+} -+ -+#endif -diff -Nur musl-0.9.15/arch/sh/bits/alltypes.h.in musl-git/arch/sh/bits/alltypes.h.in ---- musl-0.9.15/arch/sh/bits/alltypes.h.in 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/alltypes.h.in 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,23 @@ -+#define _Addr int -+#define _Int64 long long -+#define _Reg int -+ -+TYPEDEF __builtin_va_list va_list; -+TYPEDEF __builtin_va_list __isoc_va_list; -+ -+#ifndef __cplusplus -+TYPEDEF long wchar_t; -+#endif -+TYPEDEF unsigned wint_t; -+ -+TYPEDEF float float_t; -+TYPEDEF double double_t; -+ -+TYPEDEF long time_t; -+TYPEDEF long suseconds_t; -+ -+TYPEDEF struct { union { int __i[9]; unsigned __s[9]; } __u; } pthread_attr_t; -+TYPEDEF struct { union { int __i[6]; void *__p[6]; } __u; } pthread_mutex_t; -+TYPEDEF struct { union { int __i[12]; void *__p[12]; } __u; } pthread_cond_t; -+TYPEDEF struct { union { int __i[8]; void *__p[8]; } __u; } pthread_rwlock_t; -+TYPEDEF struct { union { int __i[5]; void *__p[5]; } __u; } pthread_barrier_t; -diff -Nur musl-0.9.15/arch/sh/bits/endian.h musl-git/arch/sh/bits/endian.h ---- musl-0.9.15/arch/sh/bits/endian.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/endian.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,5 @@ -+#if __BIG_ENDIAN__ -+#define __BYTE_ORDER __BIG_ENDIAN -+#else -+#define __BYTE_ORDER __LITTLE_ENDIAN -+#endif -diff -Nur musl-0.9.15/arch/sh/bits/errno.h musl-git/arch/sh/bits/errno.h ---- musl-0.9.15/arch/sh/bits/errno.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/errno.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,134 @@ -+#define EPERM 1 -+#define ENOENT 2 -+#define ESRCH 3 -+#define EINTR 4 -+#define EIO 5 -+#define ENXIO 6 -+#define E2BIG 7 -+#define ENOEXEC 8 -+#define EBADF 9 -+#define ECHILD 10 -+#define EAGAIN 11 -+#define ENOMEM 12 -+#define EACCES 13 -+#define EFAULT 14 -+#define ENOTBLK 15 -+#define EBUSY 16 -+#define EEXIST 17 -+#define EXDEV 18 -+#define ENODEV 19 -+#define ENOTDIR 20 -+#define EISDIR 21 -+#define EINVAL 22 -+#define ENFILE 23 -+#define EMFILE 24 -+#define ENOTTY 25 -+#define ETXTBSY 26 -+#define EFBIG 27 -+#define ENOSPC 28 -+#define ESPIPE 29 -+#define EROFS 30 -+#define EMLINK 31 -+#define EPIPE 32 -+#define EDOM 33 -+#define ERANGE 34 -+#define EDEADLK 35 -+#define ENAMETOOLONG 36 -+#define ENOLCK 37 -+#define ENOSYS 38 -+#define ENOTEMPTY 39 -+#define ELOOP 40 -+#define EWOULDBLOCK EAGAIN -+#define ENOMSG 42 -+#define EIDRM 43 -+#define ECHRNG 44 -+#define EL2NSYNC 45 -+#define EL3HLT 46 -+#define EL3RST 47 -+#define ELNRNG 48 -+#define EUNATCH 49 -+#define ENOCSI 50 -+#define EL2HLT 51 -+#define EBADE 52 -+#define EBADR 53 -+#define EXFULL 54 -+#define ENOANO 55 -+#define EBADRQC 56 -+#define EBADSLT 57 -+#define EDEADLOCK EDEADLK -+#define EBFONT 59 -+#define ENOSTR 60 -+#define ENODATA 61 -+#define ETIME 62 -+#define ENOSR 63 -+#define ENONET 64 -+#define ENOPKG 65 -+#define EREMOTE 66 -+#define ENOLINK 67 -+#define EADV 68 -+#define ESRMNT 69 -+#define ECOMM 70 -+#define EPROTO 71 -+#define EMULTIHOP 72 -+#define EDOTDOT 73 -+#define EBADMSG 74 -+#define EOVERFLOW 75 -+#define ENOTUNIQ 76 -+#define EBADFD 77 -+#define EREMCHG 78 -+#define ELIBACC 79 -+#define ELIBBAD 80 -+#define ELIBSCN 81 -+#define ELIBMAX 82 -+#define ELIBEXEC 83 -+#define EILSEQ 84 -+#define ERESTART 85 -+#define ESTRPIPE 86 -+#define EUSERS 87 -+#define ENOTSOCK 88 -+#define EDESTADDRREQ 89 -+#define EMSGSIZE 90 -+#define EPROTOTYPE 91 -+#define ENOPROTOOPT 92 -+#define EPROTONOSUPPORT 93 -+#define ESOCKTNOSUPPORT 94 -+#define EOPNOTSUPP 95 -+#define ENOTSUP EOPNOTSUPP -+#define EPFNOSUPPORT 96 -+#define EAFNOSUPPORT 97 -+#define EADDRINUSE 98 -+#define EADDRNOTAVAIL 99 -+#define ENETDOWN 100 -+#define ENETUNREACH 101 -+#define ENETRESET 102 -+#define ECONNABORTED 103 -+#define ECONNRESET 104 -+#define ENOBUFS 105 -+#define EISCONN 106 -+#define ENOTCONN 107 -+#define ESHUTDOWN 108 -+#define ETOOMANYREFS 109 -+#define ETIMEDOUT 110 -+#define ECONNREFUSED 111 -+#define EHOSTDOWN 112 -+#define EHOSTUNREACH 113 -+#define EALREADY 114 -+#define EINPROGRESS 115 -+#define ESTALE 116 -+#define EUCLEAN 117 -+#define ENOTNAM 118 -+#define ENAVAIL 119 -+#define EISNAM 120 -+#define EREMOTEIO 121 -+#define EDQUOT 122 -+#define ENOMEDIUM 123 -+#define EMEDIUMTYPE 124 -+#define ECANCELED 125 -+#define ENOKEY 126 -+#define EKEYEXPIRED 127 -+#define EKEYREVOKED 128 -+#define EKEYREJECTED 129 -+#define EOWNERDEAD 130 -+#define ENOTRECOVERABLE 131 -+#define ERFKILL 132 -+#define EHWPOISON 133 -diff -Nur musl-0.9.15/arch/sh/bits/fcntl.h musl-git/arch/sh/bits/fcntl.h ---- musl-0.9.15/arch/sh/bits/fcntl.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/fcntl.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,39 @@ -+#define O_CREAT 0100 -+#define O_EXCL 0200 -+#define O_NOCTTY 0400 -+#define O_TRUNC 01000 -+#define O_APPEND 02000 -+#define O_NONBLOCK 04000 -+#define O_DSYNC 010000 -+#define O_SYNC 04010000 -+#define O_RSYNC 04010000 -+#define O_DIRECTORY 0200000 -+#define O_NOFOLLOW 0400000 -+#define O_CLOEXEC 02000000 -+ -+#define O_ASYNC 020000 -+#define O_DIRECT 040000 -+#define O_LARGEFILE 0100000 -+#define O_NOATIME 01000000 -+#define O_TMPFILE 020200000 -+#define O_NDELAY O_NONBLOCK -+ -+#define F_DUPFD 0 -+#define F_GETFD 1 -+#define F_SETFD 2 -+#define F_GETFL 3 -+#define F_SETFL 4 -+ -+#define F_SETOWN 8 -+#define F_GETOWN 9 -+#define F_SETSIG 10 -+#define F_GETSIG 11 -+ -+#define F_GETLK 12 -+#define F_SETLK 13 -+#define F_SETLKW 14 -+ -+#define F_SETOWN_EX 15 -+#define F_GETOWN_EX 16 -+ -+#define F_GETOWNER_UIDS 17 -diff -Nur musl-0.9.15/arch/sh/bits/fenv.h musl-git/arch/sh/bits/fenv.h ---- musl-0.9.15/arch/sh/bits/fenv.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/fenv.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,26 @@ -+#ifndef __SH_FPU_ANY__ -+ -+#define FE_ALL_EXCEPT 0 -+#define FE_TONEAREST 0 -+ -+#else -+ -+#define FE_TONEAREST 0 -+#define FE_TOWARDZERO 1 -+ -+#define FE_INEXACT 0x04 -+#define FE_UNDERFLOW 0x08 -+#define FE_OVERFLOW 0x10 -+#define FE_DIVBYZERO 0x20 -+#define FE_INVALID 0x40 -+#define FE_ALL_EXCEPT 0x7c -+ -+#endif -+ -+typedef unsigned long fexcept_t; -+ -+typedef struct { -+ unsigned long __cw; -+} fenv_t; -+ -+#define FE_DFL_ENV ((const fenv_t *) -1) -diff -Nur musl-0.9.15/arch/sh/bits/float.h musl-git/arch/sh/bits/float.h ---- musl-0.9.15/arch/sh/bits/float.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/float.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,17 @@ -+#define FLT_ROUNDS 1 -+#define FLT_EVAL_METHOD 0 -+ -+#define LDBL_TRUE_MIN 4.94065645841246544177e-324L -+#define LDBL_MIN 2.22507385850720138309e-308L -+#define LDBL_MAX 1.79769313486231570815e+308L -+#define LDBL_EPSILON 2.22044604925031308085e-16L -+ -+#define LDBL_MANT_DIG 53 -+#define LDBL_MIN_EXP (-1021) -+#define LDBL_MAX_EXP 1024 -+ -+#define LDBL_DIG 15 -+#define LDBL_MIN_10_EXP (-307) -+#define LDBL_MAX_10_EXP 308 -+ -+#define DECIMAL_DIG 17 -diff -Nur musl-0.9.15/arch/sh/bits/ioctl.h musl-git/arch/sh/bits/ioctl.h ---- musl-0.9.15/arch/sh/bits/ioctl.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/ioctl.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,205 @@ -+#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) ) -+#define _IOC_NONE 0U -+#define _IOC_WRITE 1U -+#define _IOC_READ 2U -+ -+#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0) -+#define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c)) -+#define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c)) -+#define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c)) -+ -+#define FIOCLEX _IO('f', 1) -+#define FIONCLEX _IO('f', 2) -+#define FIOASYNC _IOW('f', 125, int) -+#define FIONBIO _IOW('f', 126, int) -+#define FIONREAD _IOR('f', 127, int) -+#define TIOCINQ FIONREAD -+#define FIOQSIZE _IOR('f', 128, char[8]) -+ -+#define TCGETA _IOR('t', 23, char[18]) -+#define TCSETA _IOW('t', 24, char[18]) -+#define TCSETAW _IOW('t', 25, char[18]) -+#define TCSETAF _IOW('t', 28, char[18]) -+ -+#define TCSBRK _IO('t', 29) -+#define TCXONC _IO('t', 30) -+#define TCFLSH _IO('t', 31) -+ -+#define TIOCSWINSZ _IOW('t', 103, char[8]) -+#define TIOCGWINSZ _IOR('t', 104, char[8]) -+#define TIOCSTART _IO('t', 110) -+#define TIOCSTOP _IO('t', 111) -+#define TIOCOUTQ _IOR('t', 115, int) -+ -+#define TIOCSPGRP _IOW('t', 118, int) -+#define TIOCGPGRP _IOR('t', 119, int) -+ -+#define TIOCEXCL _IO('T', 12) -+#define TIOCNXCL _IO('T', 13) -+#define TIOCSCTTY _IO('T', 14) -+ -+#define TIOCSTI _IOW('T', 18, char) -+#define TIOCMGET _IOR('T', 21, unsigned int) -+#define TIOCMBIS _IOW('T', 22, unsigned int) -+#define TIOCMBIC _IOW('T', 23, unsigned int) -+#define TIOCMSET _IOW('T', 24, unsigned int) -+#define TIOCM_LE 0x001 -+#define TIOCM_DTR 0x002 -+#define TIOCM_RTS 0x004 -+#define TIOCM_ST 0x008 -+#define TIOCM_SR 0x010 -+#define TIOCM_CTS 0x020 -+#define TIOCM_CAR 0x040 -+#define TIOCM_RNG 0x080 -+#define TIOCM_DSR 0x100 -+#define TIOCM_CD TIOCM_CAR -+#define TIOCM_RI TIOCM_RNG -+#define TIOCM_OUT1 0x2000 -+#define TIOCM_OUT2 0x4000 -+#define TIOCM_LOOP 0x8000 -+ -+#define TIOCGSOFTCAR _IOR('T', 25, unsigned int) -+#define TIOCSSOFTCAR _IOW('T', 26, unsigned int) -+#define TIOCLINUX _IOW('T', 28, char) -+#define TIOCCONS _IO('T', 29) -+#define TIOCGSERIAL _IOR('T', 30, char[60]) -+#define TIOCSSERIAL _IOW('T', 31, char[60]) -+#define TIOCPKT _IOW('T', 32, int) -+#define TIOCPKT_DATA 0 -+#define TIOCPKT_FLUSHREAD 1 -+#define TIOCPKT_FLUSHWRITE 2 -+#define TIOCPKT_STOP 4 -+#define TIOCPKT_START 8 -+#define TIOCPKT_NOSTOP 16 -+#define TIOCPKT_DOSTOP 32 -+#define TIOCPKT_IOCTL 64 -+ -+#define TIOCNOTTY _IO('T', 34) -+#define TIOCSETD _IOW('T', 35, int) -+#define TIOCGETD _IOR('T', 36, int) -+#define TCSBRKP _IOW('T', 37, int) -+#define TIOCSBRK _IO('T', 39) -+#define TIOCCBRK _IO('T', 40) -+#define TIOCGSID _IOR('T', 41, int) -+#define TCGETS _IOR('T', 42, char[44]) -+#define TCSETS _IOW('T', 43, char[44]) -+#define TCSETSW _IOW('T', 44, char[44]) -+#define TCSETSF _IOW('T', 45, char[44]) -+#define TIOCGPTN _IOR('T', 48, unsigned int) -+#define TIOCSPTLCK _IOW('T', 49, int) -+#define TIOCGDEV _IOR('T', 50, unsigned int) -+#define TIOCSIG _IOW('T', 54, int) -+#define TIOCVHANGUP _IO('T', 55) -+#define TIOCGPKT _IOR('T', 56, int) -+#define TIOCGPTLCK _IOR('T', 57, int) -+#define TIOCGEXCL _IOR('T', 64, int) -+ -+#define TIOCSERCONFIG _IO('T', 83) -+#define TIOCSERGWILD _IOR('T', 84, int) -+#define TIOCSERSWILD _IOW('T', 85, int) -+#define TIOCGLCKTRMIOS _IO('T', 86) -+#define TIOCSLCKTRMIOS _IO('T', 87) -+#define TIOCSERGSTRUCT _IOR('T', 88, char[216]) -+#define TIOCSERGETLSR _IOR('T', 89, unsigned int) -+#define TIOCSER_TEMT 0x01 -+#define TIOCSERGETMULTI _IOR('T', 90, char[168]) -+#define TIOCSERSETMULTI _IOW('T', 91, char[168]) -+ -+#define TIOCMIWAIT _IO('T', 92) -+#define TIOCGICOUNT _IO('T', 93) -+ -+struct winsize { -+ unsigned short ws_row; -+ unsigned short ws_col; -+ unsigned short ws_xpixel; -+ unsigned short ws_ypixel; -+}; -+ -+#define TIOCM_MODEM_BITS TIOCM_OUT2 -+ -+#define N_TTY 0 -+#define N_SLIP 1 -+#define N_MOUSE 2 -+#define N_PPP 3 -+#define N_STRIP 4 -+#define N_AX25 5 -+#define N_X25 6 -+#define N_6PACK 7 -+#define N_MASC 8 -+#define N_R3964 9 -+#define N_PROFIBUS_FDL 10 -+#define N_IRDA 11 -+#define N_SMSBLOCK 12 -+#define N_HDLC 13 -+#define N_SYNC_PPP 14 -+#define N_HCI 15 -+ -+#define FIOGETOWN _IOR('f', 123, int) -+#define FIOSETOWN _IOW('f', 124, int) -+ -+#define SIOCATMARK _IOR('s', 7, int) -+#define SIOCSPGRP _IOW('s', 8, int) -+#define SIOCGPGRP _IOW('s', 9, int) -+#define SIOCGSTAMP _IOR('s', 100, char[8]) -+ -+#define SIOCADDRT 0x890B -+#define SIOCDELRT 0x890C -+#define SIOCRTMSG 0x890D -+ -+#define SIOCGIFNAME 0x8910 -+#define SIOCSIFLINK 0x8911 -+#define SIOCGIFCONF 0x8912 -+#define SIOCGIFFLAGS 0x8913 -+#define SIOCSIFFLAGS 0x8914 -+#define SIOCGIFADDR 0x8915 -+#define SIOCSIFADDR 0x8916 -+#define SIOCGIFDSTADDR 0x8917 -+#define SIOCSIFDSTADDR 0x8918 -+#define SIOCGIFBRDADDR 0x8919 -+#define SIOCSIFBRDADDR 0x891a -+#define SIOCGIFNETMASK 0x891b -+#define SIOCSIFNETMASK 0x891c -+#define SIOCGIFMETRIC 0x891d -+#define SIOCSIFMETRIC 0x891e -+#define SIOCGIFMEM 0x891f -+#define SIOCSIFMEM 0x8920 -+#define SIOCGIFMTU 0x8921 -+#define SIOCSIFMTU 0x8922 -+#define SIOCSIFHWADDR 0x8924 -+#define SIOCGIFENCAP 0x8925 -+#define SIOCSIFENCAP 0x8926 -+#define SIOCGIFHWADDR 0x8927 -+#define SIOCGIFSLAVE 0x8929 -+#define SIOCSIFSLAVE 0x8930 -+#define SIOCADDMULTI 0x8931 -+#define SIOCDELMULTI 0x8932 -+#define SIOCGIFINDEX 0x8933 -+#define SIOGIFINDEX SIOCGIFINDEX -+#define SIOCSIFPFLAGS 0x8934 -+#define SIOCGIFPFLAGS 0x8935 -+#define SIOCDIFADDR 0x8936 -+#define SIOCSIFHWBROADCAST 0x8937 -+#define SIOCGIFCOUNT 0x8938 -+ -+#define SIOCGIFBR 0x8940 -+#define SIOCSIFBR 0x8941 -+ -+#define SIOCGIFTXQLEN 0x8942 -+#define SIOCSIFTXQLEN 0x8943 -+ -+#define SIOCDARP 0x8953 -+#define SIOCGARP 0x8954 -+#define SIOCSARP 0x8955 -+ -+#define SIOCDRARP 0x8960 -+#define SIOCGRARP 0x8961 -+#define SIOCSRARP 0x8962 -+ -+#define SIOCGIFMAP 0x8970 -+#define SIOCSIFMAP 0x8971 -+ -+#define SIOCADDDLCI 0x8980 -+#define SIOCDELDLCI 0x8981 -+ -+#define SIOCDEVPRIVATE 0x89F0 -+#define SIOCPROTOPRIVATE 0x89E0 -diff -Nur musl-0.9.15/arch/sh/bits/ipc.h musl-git/arch/sh/bits/ipc.h ---- musl-0.9.15/arch/sh/bits/ipc.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/ipc.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,14 @@ -+struct ipc_perm -+{ -+ key_t __ipc_perm_key; -+ uid_t uid; -+ gid_t gid; -+ uid_t cuid; -+ gid_t cgid; -+ mode_t mode; -+ int __ipc_perm_seq; -+ long __pad1; -+ long __pad2; -+}; -+ -+#define IPC_64 0x100 -diff -Nur musl-0.9.15/arch/sh/bits/limits.h musl-git/arch/sh/bits/limits.h ---- musl-0.9.15/arch/sh/bits/limits.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/limits.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,8 @@ -+#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ -+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define PAGE_SIZE 4096 -+#define LONG_BIT 32 -+#endif -+ -+#define LONG_MAX 0x7fffffffL -+#define LLONG_MAX 0x7fffffffffffffffLL -diff -Nur musl-0.9.15/arch/sh/bits/mman.h musl-git/arch/sh/bits/mman.h ---- musl-0.9.15/arch/sh/bits/mman.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/mman.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,62 @@ -+#define MAP_FAILED ((void *) -1) -+ -+#define PROT_NONE 0 -+#define PROT_READ 1 -+#define PROT_WRITE 2 -+#define PROT_EXEC 4 -+#define PROT_GROWSDOWN 0x01000000 -+#define PROT_GROWSUP 0x02000000 -+ -+#define MAP_SHARED 0x01 -+#define MAP_PRIVATE 0x02 -+#define MAP_FIXED 0x10 -+ -+#define MAP_TYPE 0x0f -+#define MAP_FILE 0x00 -+#define MAP_ANON 0x20 -+#define MAP_ANONYMOUS MAP_ANON -+#define MAP_32BIT 0x40 -+#define MAP_NORESERVE 0x4000 -+#define MAP_GROWSDOWN 0x0100 -+#define MAP_DENYWRITE 0x0800 -+#define MAP_EXECUTABLE 0x1000 -+#define MAP_LOCKED 0x2000 -+#define MAP_POPULATE 0x8000 -+#define MAP_NONBLOCK 0x10000 -+#define MAP_STACK 0x20000 -+#define MAP_HUGETLB 0x40000 -+ -+#define POSIX_MADV_NORMAL 0 -+#define POSIX_MADV_RANDOM 1 -+#define POSIX_MADV_SEQUENTIAL 2 -+#define POSIX_MADV_WILLNEED 3 -+#define POSIX_MADV_DONTNEED 4 -+ -+#define MS_ASYNC 1 -+#define MS_INVALIDATE 2 -+#define MS_SYNC 4 -+ -+#define MCL_CURRENT 1 -+#define MCL_FUTURE 2 -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define MADV_NORMAL 0 -+#define MADV_RANDOM 1 -+#define MADV_SEQUENTIAL 2 -+#define MADV_WILLNEED 3 -+#define MADV_DONTNEED 4 -+#define MADV_REMOVE 9 -+#define MADV_DONTFORK 10 -+#define MADV_DOFORK 11 -+#define MADV_MERGEABLE 12 -+#define MADV_UNMERGEABLE 13 -+#define MADV_HUGEPAGE 14 -+#define MADV_NOHUGEPAGE 15 -+#define MADV_DONTDUMP 16 -+#define MADV_DODUMP 17 -+#define MADV_HWPOISON 100 -+#define MADV_SOFT_OFFLINE 101 -+ -+#define MREMAP_MAYMOVE 1 -+#define MREMAP_FIXED 2 -+#endif -diff -Nur musl-0.9.15/arch/sh/bits/msg.h musl-git/arch/sh/bits/msg.h ---- musl-0.9.15/arch/sh/bits/msg.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/msg.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,16 @@ -+struct msqid_ds -+{ -+ struct ipc_perm msg_perm; -+ time_t msg_stime; -+ int __unused1; -+ time_t msg_rtime; -+ int __unused2; -+ time_t msg_ctime; -+ int __unused3; -+ unsigned long msg_cbytes; -+ msgqnum_t msg_qnum; -+ msglen_t msg_qbytes; -+ pid_t msg_lspid; -+ pid_t msg_lrpid; -+ unsigned long __unused[2]; -+}; -diff -Nur musl-0.9.15/arch/sh/bits/posix.h musl-git/arch/sh/bits/posix.h ---- musl-0.9.15/arch/sh/bits/posix.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/posix.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,2 @@ -+#define _POSIX_V6_ILP32_OFFBIG 1 -+#define _POSIX_V7_ILP32_OFFBIG 1 -diff -Nur musl-0.9.15/arch/sh/bits/sem.h musl-git/arch/sh/bits/sem.h ---- musl-0.9.15/arch/sh/bits/sem.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/sem.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,16 @@ -+struct semid_ds { -+ struct ipc_perm sem_perm; -+ 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(time_t)-sizeof(short)]; -+#else -+ char __sem_nsems_pad[sizeof(time_t)-sizeof(short)]; -+ unsigned short sem_nsems; -+#endif -+ time_t __unused3; -+ time_t __unused4; -+}; -diff -Nur musl-0.9.15/arch/sh/bits/setjmp.h musl-git/arch/sh/bits/setjmp.h ---- musl-0.9.15/arch/sh/bits/setjmp.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/setjmp.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1 @@ -+typedef unsigned long __jmp_buf[13]; -diff -Nur musl-0.9.15/arch/sh/bits/shm.h musl-git/arch/sh/bits/shm.h ---- musl-0.9.15/arch/sh/bits/shm.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/shm.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,28 @@ -+#define SHMLBA 16384 -+ -+struct shmid_ds -+{ -+ struct ipc_perm shm_perm; -+ size_t shm_segsz; -+ time_t shm_atime; -+ int __unused1; -+ time_t shm_dtime; -+ int __unused2; -+ time_t shm_ctime; -+ int __unused3; -+ pid_t shm_cpid; -+ pid_t shm_lpid; -+ unsigned long shm_nattch; -+ unsigned long __pad1; -+ unsigned long __pad2; -+}; -+ -+struct shminfo { -+ unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; -+}; -+ -+struct shm_info { -+ int __used_ids; -+ unsigned long shm_tot, shm_rss, shm_swp; -+ unsigned long __swap_attempts, __swap_successes; -+}; -diff -Nur musl-0.9.15/arch/sh/bits/signal.h musl-git/arch/sh/bits/signal.h ---- musl-0.9.15/arch/sh/bits/signal.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/signal.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,82 @@ -+#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 -+ -+struct sigaltstack { -+ void *ss_sp; -+ int ss_flags; -+ size_t ss_size; -+}; -+ -+typedef struct __ucontext { -+ unsigned long uc_flags; -+ struct __ucontext *uc_link; -+ stack_t uc_stack; -+ mcontext_t uc_mcontext; -+ sigset_t uc_sigmask; -+} ucontext_t; -+ -+#define SA_NOCLDSTOP 1 -+#define SA_NOCLDWAIT 2 -+#define SA_SIGINFO 4 -+#define SA_ONSTACK 0x08000000 -+#define SA_RESTART 0x10000000 -+#define SA_NODEFER 0x40000000 -+#define SA_RESETHAND 0x80000000 -+#define SA_RESTORER 0x04000000 -+ -+#endif -+ -+#define SIGHUP 1 -+#define SIGINT 2 -+#define SIGQUIT 3 -+#define SIGILL 4 -+#define SIGTRAP 5 -+#define SIGABRT 6 -+#define SIGIOT SIGABRT -+#define SIGBUS 7 -+#define SIGFPE 8 -+#define SIGKILL 9 -+#define SIGUSR1 10 -+#define SIGSEGV 11 -+#define SIGUSR2 12 -+#define SIGPIPE 13 -+#define SIGALRM 14 -+#define SIGTERM 15 -+#define SIGSTKFLT 16 -+#define SIGCHLD 17 -+#define SIGCONT 18 -+#define SIGSTOP 19 -+#define SIGTSTP 20 -+#define SIGTTIN 21 -+#define SIGTTOU 22 -+#define SIGURG 23 -+#define SIGXCPU 24 -+#define SIGXFSZ 25 -+#define SIGVTALRM 26 -+#define SIGPROF 27 -+#define SIGWINCH 28 -+#define SIGIO 29 -+#define SIGPOLL 29 -+#define SIGPWR 30 -+#define SIGSYS 31 -+#define SIGUNUSED SIGSYS -+ -+#define _NSIG 65 -diff -Nur musl-0.9.15/arch/sh/bits/socket.h musl-git/arch/sh/bits/socket.h ---- musl-0.9.15/arch/sh/bits/socket.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/socket.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,17 @@ -+struct msghdr -+{ -+ void *msg_name; -+ socklen_t msg_namelen; -+ struct iovec *msg_iov; -+ int msg_iovlen; -+ void *msg_control; -+ socklen_t msg_controllen; -+ int msg_flags; -+}; -+ -+struct cmsghdr -+{ -+ socklen_t cmsg_len; -+ int cmsg_level; -+ int cmsg_type; -+}; -diff -Nur musl-0.9.15/arch/sh/bits/statfs.h musl-git/arch/sh/bits/statfs.h ---- musl-0.9.15/arch/sh/bits/statfs.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/statfs.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,7 @@ -+struct statfs { -+ unsigned long f_type, f_bsize; -+ fsblkcnt_t f_blocks, f_bfree, f_bavail; -+ fsfilcnt_t f_files, f_ffree; -+ fsid_t f_fsid; -+ unsigned long f_namelen, f_frsize, f_flags, f_spare[4]; -+}; -diff -Nur musl-0.9.15/arch/sh/bits/stat.h musl-git/arch/sh/bits/stat.h ---- musl-0.9.15/arch/sh/bits/stat.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/stat.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,22 @@ -+/* copied from kernel definition, but with padding replaced -+ * by the corresponding correctly-sized userspace types. */ -+ -+struct stat -+{ -+ dev_t st_dev; -+ int __st_dev_padding; -+ long __st_ino_truncated; -+ mode_t st_mode; -+ nlink_t st_nlink; -+ uid_t st_uid; -+ gid_t st_gid; -+ dev_t st_rdev; -+ int __st_rdev_padding; -+ off_t st_size; -+ blksize_t st_blksize; -+ blkcnt_t st_blocks; -+ struct timespec st_atim; -+ struct timespec st_mtim; -+ struct timespec st_ctim; -+ ino_t st_ino; -+}; -diff -Nur musl-0.9.15/arch/sh/bits/stdarg.h musl-git/arch/sh/bits/stdarg.h ---- musl-0.9.15/arch/sh/bits/stdarg.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/stdarg.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,4 @@ -+#define va_start(v,l) __builtin_va_start(v,l) -+#define va_end(v) __builtin_va_end(v) -+#define va_arg(v,l) __builtin_va_arg(v,l) -+#define va_copy(d,s) __builtin_va_copy(d,s) -diff -Nur musl-0.9.15/arch/sh/bits/stdint.h musl-git/arch/sh/bits/stdint.h ---- musl-0.9.15/arch/sh/bits/stdint.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/stdint.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,20 @@ -+typedef int32_t int_fast16_t; -+typedef int32_t int_fast32_t; -+typedef uint32_t uint_fast16_t; -+typedef uint32_t uint_fast32_t; -+ -+#define INT_FAST16_MIN INT32_MIN -+#define INT_FAST32_MIN INT32_MIN -+ -+#define INT_FAST16_MAX INT32_MAX -+#define INT_FAST32_MAX INT32_MAX -+ -+#define UINT_FAST16_MAX UINT32_MAX -+#define UINT_FAST32_MAX UINT32_MAX -+ -+#define INTPTR_MIN INT32_MIN -+#define INTPTR_MAX INT32_MAX -+#define UINTPTR_MAX UINT32_MAX -+#define PTRDIFF_MIN INT32_MIN -+#define PTRDIFF_MAX INT32_MAX -+#define SIZE_MAX UINT32_MAX -diff -Nur musl-0.9.15/arch/sh/bits/syscall.h musl-git/arch/sh/bits/syscall.h ---- musl-0.9.15/arch/sh/bits/syscall.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/syscall.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,684 @@ -+#define __NR_restart_syscall 0 -+#define __NR_exit 1 -+#define __NR_fork 2 -+#define __NR_read 3 -+#define __NR_write 4 -+#define __NR_open 5 -+#define __NR_close 6 -+#define __NR_waitpid 7 -+#define __NR_creat 8 -+#define __NR_link 9 -+#define __NR_unlink 10 -+#define __NR_execve 11 -+#define __NR_chdir 12 -+#define __NR_time 13 -+#define __NR_mknod 14 -+#define __NR_chmod 15 -+#define __NR_lchown 16 -+#define __NR_oldstat 18 -+#define __NR_lseek 19 -+#define __NR_getpid 20 -+#define __NR_mount 21 -+#define __NR_umount 22 -+#define __NR_setuid 23 -+#define __NR_getuid 24 -+#define __NR_stime 25 -+#define __NR_ptrace 26 -+#define __NR_alarm 27 -+#define __NR_oldfstat 28 -+#define __NR_pause 29 -+#define __NR_utime 30 -+#define __NR_access 33 -+#define __NR_nice 34 -+#define __NR_sync 36 -+#define __NR_kill 37 -+#define __NR_rename 38 -+#define __NR_mkdir 39 -+#define __NR_rmdir 40 -+#define __NR_dup 41 -+#define __NR_pipe 42 -+#define __NR_times 43 -+#define __NR_brk 45 -+#define __NR_setgid 46 -+#define __NR_getgid 47 -+#define __NR_signal 48 -+#define __NR_geteuid 49 -+#define __NR_getegid 50 -+#define __NR_acct 51 -+#define __NR_umount2 52 -+#define __NR_ioctl 54 -+#define __NR_fcntl 55 -+#define __NR_setpgid 57 -+#define __NR_umask 60 -+#define __NR_chroot 61 -+#define __NR_ustat 62 -+#define __NR_dup2 63 -+#define __NR_getppid 64 -+#define __NR_getpgrp 65 -+#define __NR_setsid 66 -+#define __NR_sigaction 67 -+#define __NR_sgetmask 68 -+#define __NR_ssetmask 69 -+#define __NR_setreuid 70 -+#define __NR_setregid 71 -+#define __NR_sigsuspend 72 -+#define __NR_sigpending 73 -+#define __NR_sethostname 74 -+#define __NR_setrlimit 75 -+#define __NR_getrlimit 76 -+#define __NR_getrusage 77 -+#define __NR_gettimeofday 78 -+#define __NR_settimeofday 79 -+#define __NR_getgroups 80 -+#define __NR_setgroups 81 -+#define __NR_symlink 83 -+#define __NR_oldlstat 84 -+#define __NR_readlink 85 -+#define __NR_uselib 86 -+#define __NR_swapon 87 -+#define __NR_reboot 88 -+#define __NR_readdir 89 -+#define __NR_mmap 90 -+#define __NR_munmap 91 -+#define __NR_truncate 92 -+#define __NR_ftruncate 93 -+#define __NR_fchmod 94 -+#define __NR_fchown 95 -+#define __NR_getpriority 96 -+#define __NR_setpriority 97 -+#define __NR_statfs 99 -+#define __NR_fstatfs 100 -+#define __NR_socketcall 102 -+#define __NR_syslog 103 -+#define __NR_setitimer 104 -+#define __NR_getitimer 105 -+#define __NR_stat 106 -+#define __NR_lstat 107 -+#define __NR_fstat 108 -+#define __NR_olduname 109 -+#define __NR_vhangup 111 -+#define __NR_wait4 114 -+#define __NR_swapoff 115 -+#define __NR_sysinfo 116 -+#define __NR_ipc 117 -+#define __NR_fsync 118 -+#define __NR_sigreturn 119 -+#define __NR_clone 120 -+#define __NR_setdomainname 121 -+#define __NR_uname 122 -+#define __NR_cacheflush 123 -+#define __NR_adjtimex 124 -+#define __NR_mprotect 125 -+#define __NR_sigprocmask 126 -+#define __NR_init_module 128 -+#define __NR_delete_module 129 -+#define __NR_quotactl 131 -+#define __NR_getpgid 132 -+#define __NR_fchdir 133 -+#define __NR_bdflush 134 -+#define __NR_sysfs 135 -+#define __NR_personality 136 -+#define __NR_setfsuid 138 -+#define __NR_setfsgid 139 -+#define __NR__llseek 140 -+#define __NR_getdents 141 -+#define __NR__newselect 142 -+#define __NR_flock 143 -+#define __NR_msync 144 -+#define __NR_readv 145 -+#define __NR_writev 146 -+#define __NR_getsid 147 -+#define __NR_fdatasync 148 -+#define __NR__sysctl 149 -+#define __NR_mlock 150 -+#define __NR_munlock 151 -+#define __NR_mlockall 152 -+#define __NR_munlockall 153 -+#define __NR_sched_setparam 154 -+#define __NR_sched_getparam 155 -+#define __NR_sched_setscheduler 156 -+#define __NR_sched_getscheduler 157 -+#define __NR_sched_yield 158 -+#define __NR_sched_get_priority_max 159 -+#define __NR_sched_get_priority_min 160 -+#define __NR_sched_rr_get_interval 161 -+#define __NR_nanosleep 162 -+#define __NR_mremap 163 -+#define __NR_setresuid 164 -+#define __NR_getresuid 165 -+#define __NR_poll 168 -+#define __NR_nfsservctl 169 -+#define __NR_setresgid 170 -+#define __NR_getresgid 171 -+#define __NR_prctl 172 -+#define __NR_rt_sigreturn 173 -+#define __NR_rt_sigaction 174 -+#define __NR_rt_sigprocmask 175 -+#define __NR_rt_sigpending 176 -+#define __NR_rt_sigtimedwait 177 -+#define __NR_rt_sigqueueinfo 178 -+#define __NR_rt_sigsuspend 179 -+#define __NR_pread64 180 -+#define __NR_pwrite64 181 -+#define __NR_chown 182 -+#define __NR_getcwd 183 -+#define __NR_capget 184 -+#define __NR_capset 185 -+#define __NR_sigaltstack 186 -+#define __NR_sendfile 187 -+#define __NR_vfork 190 -+#define __NR_ugetrlimit 191 -+#define __NR_mmap2 192 -+#define __NR_truncate64 193 -+#define __NR_ftruncate64 194 -+#define __NR_stat64 195 -+#define __NR_lstat64 196 -+#define __NR_fstat64 197 -+#define __NR_lchown32 198 -+#define __NR_getuid32 199 -+#define __NR_getgid32 200 -+#define __NR_geteuid32 201 -+#define __NR_getegid32 202 -+#define __NR_setreuid32 203 -+#define __NR_setregid32 204 -+#define __NR_getgroups32 205 -+#define __NR_setgroups32 206 -+#define __NR_fchown32 207 -+#define __NR_setresuid32 208 -+#define __NR_getresuid32 209 -+#define __NR_setresgid32 210 -+#define __NR_getresgid32 211 -+#define __NR_chown32 212 -+#define __NR_setuid32 213 -+#define __NR_setgid32 214 -+#define __NR_setfsuid32 215 -+#define __NR_setfsgid32 216 -+#define __NR_pivot_root 217 -+#define __NR_mincore 218 -+#define __NR_madvise 219 -+#define __NR_getdents64 220 -+#define __NR_fcntl64 221 -+#define __NR_gettid 224 -+#define __NR_readahead 225 -+#define __NR_setxattr 226 -+#define __NR_lsetxattr 227 -+#define __NR_fsetxattr 228 -+#define __NR_getxattr 229 -+#define __NR_lgetxattr 230 -+#define __NR_fgetxattr 231 -+#define __NR_listxattr 232 -+#define __NR_llistxattr 233 -+#define __NR_flistxattr 234 -+#define __NR_removexattr 235 -+#define __NR_lremovexattr 236 -+#define __NR_fremovexattr 237 -+#define __NR_tkill 238 -+#define __NR_sendfile64 239 -+#define __NR_futex 240 -+#define __NR_sched_setaffinity 241 -+#define __NR_sched_getaffinity 242 -+#define __NR_io_setup 245 -+#define __NR_io_destroy 246 -+#define __NR_io_getevents 247 -+#define __NR_io_submit 248 -+#define __NR_io_cancel 249 -+#define __NR_fadvise64 250 -+#define __NR_exit_group 252 -+#define __NR_lookup_dcookie 253 -+#define __NR_epoll_create 254 -+#define __NR_epoll_ctl 255 -+#define __NR_epoll_wait 256 -+#define __NR_remap_file_pages 257 -+#define __NR_set_tid_address 258 -+#define __NR_timer_create 259 -+#define __NR_timer_settime 260 -+#define __NR_timer_gettime 261 -+#define __NR_timer_getoverrun 262 -+#define __NR_timer_delete 263 -+#define __NR_clock_settime 264 -+#define __NR_clock_gettime 265 -+#define __NR_clock_getres 266 -+#define __NR_clock_nanosleep 267 -+#define __NR_statfs64 268 -+#define __NR_fstatfs64 269 -+#define __NR_tgkill 270 -+#define __NR_utimes 271 -+#define __NR_fadvise64_64 272 -+#define __NR_mbind 274 -+#define __NR_get_mempolicy 275 -+#define __NR_set_mempolicy 276 -+#define __NR_mq_open 277 -+#define __NR_mq_unlink 278 -+#define __NR_mq_timedsend 279 -+#define __NR_mq_timedreceive 280 -+#define __NR_mq_notify 281 -+#define __NR_mq_getsetattr 282 -+#define __NR_kexec_load 283 -+#define __NR_waitid 284 -+#define __NR_add_key 285 -+#define __NR_request_key 286 -+#define __NR_keyctl 287 -+#define __NR_ioprio_set 288 -+#define __NR_ioprio_get 289 -+#define __NR_inotify_init 290 -+#define __NR_inotify_add_watch 291 -+#define __NR_inotify_rm_watch 292 -+#define __NR_migrate_pages 294 -+#define __NR_openat 295 -+#define __NR_mkdirat 296 -+#define __NR_mknodat 297 -+#define __NR_fchownat 298 -+#define __NR_futimesat 299 -+#define __NR_fstatat64 300 -+#define __NR_unlinkat 301 -+#define __NR_renameat 302 -+#define __NR_linkat 303 -+#define __NR_symlinkat 304 -+#define __NR_readlinkat 305 -+#define __NR_fchmodat 306 -+#define __NR_faccessat 307 -+#define __NR_pselect6 308 -+#define __NR_ppoll 309 -+#define __NR_unshare 310 -+#define __NR_set_robust_list 311 -+#define __NR_get_robust_list 312 -+#define __NR_splice 313 -+#define __NR_sync_file_range 314 -+#define __NR_tee 315 -+#define __NR_vmsplice 316 -+#define __NR_move_pages 317 -+#define __NR_getcpu 318 -+#define __NR_epoll_pwait 319 -+#define __NR_utimensat 320 -+#define __NR_signalfd 321 -+#define __NR_timerfd_create 322 -+#define __NR_eventfd 323 -+#define __NR_fallocate 324 -+#define __NR_timerfd_settime 325 -+#define __NR_timerfd_gettime 326 -+#define __NR_signalfd4 327 -+#define __NR_eventfd2 328 -+#define __NR_epoll_create1 329 -+#define __NR_dup3 330 -+#define __NR_pipe2 331 -+#define __NR_inotify_init1 332 -+#define __NR_preadv 333 -+#define __NR_pwritev 334 -+#define __NR_rt_tgsigqueueinfo 335 -+#define __NR_perf_event_open 336 -+#define __NR_fanotify_init 337 -+#define __NR_fanotify_mark 338 -+#define __NR_prlimit64 339 -+#define __NR_socket 340 -+#define __NR_bind 341 -+#define __NR_connect 342 -+#define __NR_listen 343 -+#define __NR_accept 344 -+#define __NR_getsockname 345 -+#define __NR_getpeername 346 -+#define __NR_socketpair 347 -+#define __NR_send 348 -+#define __NR_sendto 349 -+#define __NR_recv 350 -+#define __NR_recvfrom 351 -+#define __NR_shutdown 352 -+#define __NR_setsockopt 353 -+#define __NR_getsockopt 354 -+#define __NR_sendmsg 355 -+#define __NR_recvmsg 356 -+#define __NR_recvmmsg 357 -+#define __NR_accept4 358 -+#define __NR_name_to_handle_at 359 -+#define __NR_open_by_handle_at 360 -+#define __NR_clock_adjtime 361 -+#define __NR_syncfs 362 -+#define __NR_sendmmsg 363 -+#define __NR_setns 364 -+#define __NR_process_vm_readv 365 -+#define __NR_process_vm_writev 366 -+#define __NR_kcmp 367 -+#define __NR_finit_module 368 -+ -+ -+/* Repeated with SYS_ prefix */ -+ -+#define SYS_restart_syscall 0 -+#define SYS_exit 1 -+#define SYS_fork 2 -+#define SYS_read 3 -+#define SYS_write 4 -+#define SYS_open 5 -+#define SYS_close 6 -+#define SYS_waitpid 7 -+#define SYS_creat 8 -+#define SYS_link 9 -+#define SYS_unlink 10 -+#define SYS_execve 11 -+#define SYS_chdir 12 -+#define SYS_time 13 -+#define SYS_mknod 14 -+#define SYS_chmod 15 -+#define SYS_lchown 16 -+#define SYS_oldstat 18 -+#define SYS_lseek 19 -+#define SYS_getpid 20 -+#define SYS_mount 21 -+#define SYS_umount 22 -+#define SYS_setuid 23 -+#define SYS_getuid 24 -+#define SYS_stime 25 -+#define SYS_ptrace 26 -+#define SYS_alarm 27 -+#define SYS_oldfstat 28 -+#define SYS_pause 29 -+#define SYS_utime 30 -+#define SYS_access 33 -+#define SYS_nice 34 -+#define SYS_sync 36 -+#define SYS_kill 37 -+#define SYS_rename 38 -+#define SYS_mkdir 39 -+#define SYS_rmdir 40 -+#define SYS_dup 41 -+#define SYS_pipe 42 -+#define SYS_times 43 -+#define SYS_brk 45 -+#define SYS_setgid 46 -+#define SYS_getgid 47 -+#define SYS_signal 48 -+#define SYS_geteuid 49 -+#define SYS_getegid 50 -+#define SYS_acct 51 -+#define SYS_umount2 52 -+#define SYS_ioctl 54 -+#define SYS_fcntl 55 -+#define SYS_setpgid 57 -+#define SYS_umask 60 -+#define SYS_chroot 61 -+#define SYS_ustat 62 -+#define SYS_dup2 63 -+#define SYS_getppid 64 -+#define SYS_getpgrp 65 -+#define SYS_setsid 66 -+#define SYS_sigaction 67 -+#define SYS_sgetmask 68 -+#define SYS_ssetmask 69 -+#define SYS_setreuid 70 -+#define SYS_setregid 71 -+#define SYS_sigsuspend 72 -+#define SYS_sigpending 73 -+#define SYS_sethostname 74 -+#define SYS_setrlimit 75 -+#define SYS_getrlimit 76 -+#define SYS_getrusage 77 -+#define SYS_gettimeofday 78 -+#define SYS_settimeofday 79 -+#define SYS_getgroups 80 -+#define SYS_setgroups 81 -+#define SYS_symlink 83 -+#define SYS_oldlstat 84 -+#define SYS_readlink 85 -+#define SYS_uselib 86 -+#define SYS_swapon 87 -+#define SYS_reboot 88 -+#define SYS_readdir 89 -+#define SYS_mmap 90 -+#define SYS_munmap 91 -+#define SYS_truncate 92 -+#define SYS_ftruncate 93 -+#define SYS_fchmod 94 -+#define SYS_fchown 95 -+#define SYS_getpriority 96 -+#define SYS_setpriority 97 -+#define SYS_statfs 99 -+#define SYS_fstatfs 100 -+#define SYS_socketcall 102 -+#define SYS_syslog 103 -+#define SYS_setitimer 104 -+#define SYS_getitimer 105 -+#define SYS_stat 106 -+#define SYS_lstat 107 -+#define SYS_fstat 108 -+#define SYS_olduname 109 -+#define SYS_vhangup 111 -+#define SYS_wait4 114 -+#define SYS_swapoff 115 -+#define SYS_sysinfo 116 -+#define SYS_ipc 117 -+#define SYS_fsync 118 -+#define SYS_sigreturn 119 -+#define SYS_clone 120 -+#define SYS_setdomainname 121 -+#define SYS_uname 122 -+#define SYS_cacheflush 123 -+#define SYS_adjtimex 124 -+#define SYS_mprotect 125 -+#define SYS_sigprocmask 126 -+#define SYS_init_module 128 -+#define SYS_delete_module 129 -+#define SYS_quotactl 131 -+#define SYS_getpgid 132 -+#define SYS_fchdir 133 -+#define SYS_bdflush 134 -+#define SYS_sysfs 135 -+#define SYS_personality 136 -+#define SYS_setfsuid 138 -+#define SYS_setfsgid 139 -+#define SYS__llseek 140 -+#define SYS_getdents 141 -+#define SYS__newselect 142 -+#define SYS_flock 143 -+#define SYS_msync 144 -+#define SYS_readv 145 -+#define SYS_writev 146 -+#define SYS_getsid 147 -+#define SYS_fdatasync 148 -+#define SYS__sysctl 149 -+#define SYS_mlock 150 -+#define SYS_munlock 151 -+#define SYS_mlockall 152 -+#define SYS_munlockall 153 -+#define SYS_sched_setparam 154 -+#define SYS_sched_getparam 155 -+#define SYS_sched_setscheduler 156 -+#define SYS_sched_getscheduler 157 -+#define SYS_sched_yield 158 -+#define SYS_sched_get_priority_max 159 -+#define SYS_sched_get_priority_min 160 -+#define SYS_sched_rr_get_interval 161 -+#define SYS_nanosleep 162 -+#define SYS_mremap 163 -+#define SYS_setresuid 164 -+#define SYS_getresuid 165 -+#define SYS_poll 168 -+#define SYS_nfsservctl 169 -+#define SYS_setresgid 170 -+#define SYS_getresgid 171 -+#define SYS_prctl 172 -+#define SYS_rt_sigreturn 173 -+#define SYS_rt_sigaction 174 -+#define SYS_rt_sigprocmask 175 -+#define SYS_rt_sigpending 176 -+#define SYS_rt_sigtimedwait 177 -+#define SYS_rt_sigqueueinfo 178 -+#define SYS_rt_sigsuspend 179 -+#define SYS_pread64 180 -+#define SYS_pwrite64 181 -+#define SYS_chown 182 -+#define SYS_getcwd 183 -+#define SYS_capget 184 -+#define SYS_capset 185 -+#define SYS_sigaltstack 186 -+#define SYS_sendfile 187 -+#define SYS_vfork 190 -+#define SYS_ugetrlimit 191 -+#define SYS_mmap2 192 -+#define SYS_truncate64 193 -+#define SYS_ftruncate64 194 -+#define SYS_stat64 195 -+#define SYS_lstat64 196 -+#define SYS_fstat64 197 -+#define SYS_lchown32 198 -+#define SYS_getuid32 199 -+#define SYS_getgid32 200 -+#define SYS_geteuid32 201 -+#define SYS_getegid32 202 -+#define SYS_setreuid32 203 -+#define SYS_setregid32 204 -+#define SYS_getgroups32 205 -+#define SYS_setgroups32 206 -+#define SYS_fchown32 207 -+#define SYS_setresuid32 208 -+#define SYS_getresuid32 209 -+#define SYS_setresgid32 210 -+#define SYS_getresgid32 211 -+#define SYS_chown32 212 -+#define SYS_setuid32 213 -+#define SYS_setgid32 214 -+#define SYS_setfsuid32 215 -+#define SYS_setfsgid32 216 -+#define SYS_pivot_root 217 -+#define SYS_mincore 218 -+#define SYS_madvise 219 -+#define SYS_getdents64 220 -+#define SYS_fcntl64 221 -+#define SYS_gettid 224 -+#define SYS_readahead 225 -+#define SYS_setxattr 226 -+#define SYS_lsetxattr 227 -+#define SYS_fsetxattr 228 -+#define SYS_getxattr 229 -+#define SYS_lgetxattr 230 -+#define SYS_fgetxattr 231 -+#define SYS_listxattr 232 -+#define SYS_llistxattr 233 -+#define SYS_flistxattr 234 -+#define SYS_removexattr 235 -+#define SYS_lremovexattr 236 -+#define SYS_fremovexattr 237 -+#define SYS_tkill 238 -+#define SYS_sendfile64 239 -+#define SYS_futex 240 -+#define SYS_sched_setaffinity 241 -+#define SYS_sched_getaffinity 242 -+#define SYS_io_setup 245 -+#define SYS_io_destroy 246 -+#define SYS_io_getevents 247 -+#define SYS_io_submit 248 -+#define SYS_io_cancel 249 -+#define SYS_fadvise64 250 -+#define SYS_exit_group 252 -+#define SYS_lookup_dcookie 253 -+#define SYS_epoll_create 254 -+#define SYS_epoll_ctl 255 -+#define SYS_epoll_wait 256 -+#define SYS_remap_file_pages 257 -+#define SYS_set_tid_address 258 -+#define SYS_timer_create 259 -+#define SYS_timer_settime 260 -+#define SYS_timer_gettime 261 -+#define SYS_timer_getoverrun 262 -+#define SYS_timer_delete 263 -+#define SYS_clock_settime 264 -+#define SYS_clock_gettime 265 -+#define SYS_clock_getres 266 -+#define SYS_clock_nanosleep 267 -+#define SYS_statfs64 268 -+#define SYS_fstatfs64 269 -+#define SYS_tgkill 270 -+#define SYS_utimes 271 -+#define SYS_fadvise64_64 272 -+#define SYS_mbind 274 -+#define SYS_get_mempolicy 275 -+#define SYS_set_mempolicy 276 -+#define SYS_mq_open 277 -+#define SYS_mq_unlink 278 -+#define SYS_mq_timedsend 279 -+#define SYS_mq_timedreceive 280 -+#define SYS_mq_notify 281 -+#define SYS_mq_getsetattr 282 -+#define SYS_kexec_load 283 -+#define SYS_waitid 284 -+#define SYS_add_key 285 -+#define SYS_request_key 286 -+#define SYS_keyctl 287 -+#define SYS_ioprio_set 288 -+#define SYS_ioprio_get 289 -+#define SYS_inotify_init 290 -+#define SYS_inotify_add_watch 291 -+#define SYS_inotify_rm_watch 292 -+#define SYS_migrate_pages 294 -+#define SYS_openat 295 -+#define SYS_mkdirat 296 -+#define SYS_mknodat 297 -+#define SYS_fchownat 298 -+#define SYS_futimesat 299 -+#define SYS_fstatat64 300 -+#define SYS_unlinkat 301 -+#define SYS_renameat 302 -+#define SYS_linkat 303 -+#define SYS_symlinkat 304 -+#define SYS_readlinkat 305 -+#define SYS_fchmodat 306 -+#define SYS_faccessat 307 -+#define SYS_pselect6 308 -+#define SYS_ppoll 309 -+#define SYS_unshare 310 -+#define SYS_set_robust_list 311 -+#define SYS_get_robust_list 312 -+#define SYS_splice 313 -+#define SYS_sync_file_range 314 -+#define SYS_tee 315 -+#define SYS_vmsplice 316 -+#define SYS_move_pages 317 -+#define SYS_getcpu 318 -+#define SYS_epoll_pwait 319 -+#define SYS_utimensat 320 -+#define SYS_signalfd 321 -+#define SYS_timerfd_create 322 -+#define SYS_eventfd 323 -+#define SYS_fallocate 324 -+#define SYS_timerfd_settime 325 -+#define SYS_timerfd_gettime 326 -+#define SYS_signalfd4 327 -+#define SYS_eventfd2 328 -+#define SYS_epoll_create1 329 -+#define SYS_dup3 330 -+#define SYS_pipe2 331 -+#define SYS_inotify_init1 332 -+#define SYS_preadv 333 -+#define SYS_pwritev 334 -+#define SYS_rt_tgsigqueueinfo 335 -+#define SYS_perf_event_open 336 -+#define SYS_fanotify_init 337 -+#define SYS_fanotify_mark 338 -+#define SYS_prlimit64 339 -+#define SYS_socket 340 -+#define SYS_bind 341 -+#define SYS_connect 342 -+#define SYS_listen 343 -+#define SYS_accept 344 -+#define SYS_getsockname 345 -+#define SYS_getpeername 346 -+#define SYS_socketpair 347 -+#define SYS_send 348 -+#define SYS_sendto 349 -+#define SYS_recv 350 -+#define SYS_recvfrom 351 -+#define SYS_shutdown 352 -+#define SYS_setsockopt 353 -+#define SYS_getsockopt 354 -+#define SYS_sendmsg 355 -+#define SYS_recvmsg 356 -+#define SYS_recvmmsg 357 -+#define SYS_accept4 358 -+#define SYS_name_to_handle_at 359 -+#define SYS_open_by_handle_at 360 -+#define SYS_clock_adjtime 361 -+#define SYS_syncfs 362 -+#define SYS_sendmmsg 363 -+#define SYS_setns 364 -+#define SYS_process_vm_readv 365 -+#define SYS_process_vm_writev 366 -+#define SYS_kcmp 367 -+#define SYS_finit_module 368 -diff -Nur musl-0.9.15/arch/sh/bits/termios.h musl-git/arch/sh/bits/termios.h ---- musl-0.9.15/arch/sh/bits/termios.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/termios.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,160 @@ -+struct termios -+{ -+ tcflag_t c_iflag; -+ tcflag_t c_oflag; -+ tcflag_t c_cflag; -+ tcflag_t c_lflag; -+ cc_t c_line; -+ cc_t c_cc[NCCS]; -+ speed_t __c_ispeed; -+ speed_t __c_ospeed; -+}; -+ -+#define VINTR 0 -+#define VQUIT 1 -+#define VERASE 2 -+#define VKILL 3 -+#define VEOF 4 -+#define VTIME 5 -+#define VMIN 6 -+#define VSWTC 7 -+#define VSTART 8 -+#define VSTOP 9 -+#define VSUSP 10 -+#define VEOL 11 -+#define VREPRINT 12 -+#define VDISCARD 13 -+#define VWERASE 14 -+#define VLNEXT 15 -+#define VEOL2 16 -+ -+#define IGNBRK 0000001 -+#define BRKINT 0000002 -+#define IGNPAR 0000004 -+#define PARMRK 0000010 -+#define INPCK 0000020 -+#define ISTRIP 0000040 -+#define INLCR 0000100 -+#define IGNCR 0000200 -+#define ICRNL 0000400 -+#define IUCLC 0001000 -+#define IXON 0002000 -+#define IXANY 0004000 -+#define IXOFF 0010000 -+#define IMAXBEL 0020000 -+#define IUTF8 0040000 -+ -+#define OPOST 0000001 -+#define OLCUC 0000002 -+#define ONLCR 0000004 -+#define OCRNL 0000010 -+#define ONOCR 0000020 -+#define ONLRET 0000040 -+#define OFILL 0000100 -+#define OFDEL 0000200 -+#define NLDLY 0000400 -+#define NL0 0000000 -+#define NL1 0000400 -+#define CRDLY 0003000 -+#define CR0 0000000 -+#define CR1 0001000 -+#define CR2 0002000 -+#define CR3 0003000 -+#define TABDLY 0014000 -+#define TAB0 0000000 -+#define TAB1 0004000 -+#define TAB2 0010000 -+#define TAB3 0014000 -+#define BSDLY 0020000 -+#define BS0 0000000 -+#define BS1 0020000 -+#define FFDLY 0100000 -+#define FF0 0000000 -+#define FF1 0100000 -+ -+#define VTDLY 0040000 -+#define VT0 0000000 -+#define VT1 0040000 -+ -+#define B0 0000000 -+#define B50 0000001 -+#define B75 0000002 -+#define B110 0000003 -+#define B134 0000004 -+#define B150 0000005 -+#define B200 0000006 -+#define B300 0000007 -+#define B600 0000010 -+#define B1200 0000011 -+#define B1800 0000012 -+#define B2400 0000013 -+#define B4800 0000014 -+#define B9600 0000015 -+#define B19200 0000016 -+#define B38400 0000017 -+ -+#define B57600 0010001 -+#define B115200 0010002 -+#define B230400 0010003 -+#define B460800 0010004 -+#define B500000 0010005 -+#define B576000 0010006 -+#define B921600 0010007 -+#define B1000000 0010010 -+#define B1152000 0010011 -+#define B1500000 0010012 -+#define B2000000 0010013 -+#define B2500000 0010014 -+#define B3000000 0010015 -+#define B3500000 0010016 -+#define B4000000 0010017 -+ -+#define CBAUD 0010017 -+ -+#define CSIZE 0000060 -+#define CS5 0000000 -+#define CS6 0000020 -+#define CS7 0000040 -+#define CS8 0000060 -+#define CSTOPB 0000100 -+#define CREAD 0000200 -+#define PARENB 0000400 -+#define PARODD 0001000 -+#define HUPCL 0002000 -+#define CLOCAL 0004000 -+ -+#define ISIG 0000001 -+#define ICANON 0000002 -+#define ECHO 0000010 -+#define ECHOE 0000020 -+#define ECHOK 0000040 -+#define ECHONL 0000100 -+#define NOFLSH 0000200 -+#define TOSTOP 0000400 -+#define IEXTEN 0100000 -+ -+#define ECHOCTL 0001000 -+#define ECHOPRT 0002000 -+#define ECHOKE 0004000 -+#define FLUSHO 0010000 -+#define PENDIN 0040000 -+ -+#define TCOOFF 0 -+#define TCOON 1 -+#define TCIOFF 2 -+#define TCION 3 -+ -+#define TCIFLUSH 0 -+#define TCOFLUSH 1 -+#define TCIOFLUSH 2 -+ -+#define TCSANOW 0 -+#define TCSADRAIN 1 -+#define TCSAFLUSH 2 -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define CBAUDEX 0010000 -+#define CRTSCTS 020000000000 -+#define EXTPROC 0200000 -+#define XTABS 0014000 -+#endif -diff -Nur musl-0.9.15/arch/sh/bits/user.h musl-git/arch/sh/bits/user.h ---- musl-0.9.15/arch/sh/bits/user.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/bits/user.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,75 @@ -+#undef __WORDSIZE -+#define __WORDSIZE 32 -+ -+#define REG_REG0 0 -+#define REG_REG15 15 -+#define REG_PC 16 -+#define REG_PR 17 -+#define REG_SR 18 -+#define REG_GBR 19 -+#define REG_MACH 20 -+#define REG_MACL 21 -+#define REG_SYSCALL 22 -+#define REG_FPREG0 23 -+#define REG_FPREG15 38 -+#define REG_XFREG0 39 -+#define REG_XFREG15 54 -+#define REG_FPSCR 55 -+#define REG_FPUL 56 -+ -+struct pt_regs { -+ unsigned long regs[16]; -+ unsigned long pc; -+ unsigned long pr; -+ unsigned long sr; -+ unsigned long gbr; -+ unsigned long mach; -+ unsigned long macl; -+ long tra; -+}; -+ -+struct pt_dspregs { -+ unsigned long a1; -+ unsigned long a0g; -+ unsigned long a1g; -+ unsigned long m0; -+ unsigned long m1; -+ unsigned long a0; -+ unsigned long x0; -+ unsigned long x1; -+ unsigned long y0; -+ unsigned long y1; -+ unsigned long dsr; -+ unsigned long rs; -+ unsigned long re; -+ unsigned long mod; -+}; -+ -+struct user_fpu_struct { -+ unsigned long fp_regs[16]; -+ unsigned long xfp_regs[16]; -+ unsigned long fpscr; -+ unsigned long fpul; -+}; -+ -+#define ELF_NGREG 23 -+typedef unsigned long elf_greg_t; -+typedef elf_greg_t elf_gregset_t[ELF_NGREG]; -+typedef struct user_fpu_struct elf_fpregset_t; -+ -+struct user { -+ struct pt_regs regs; -+ struct user_fpu_struct fpu; -+ int u_fpvalid; -+ unsigned long u_tsize; -+ unsigned long u_dsize; -+ unsigned long u_ssize; -+ unsigned long start_code; -+ unsigned long start_data; -+ unsigned long start_stack; -+ long int signal; -+ unsigned long u_ar0; -+ struct user_fpu_struct *u_fpstate; -+ unsigned long magic; -+ char u_comm[32]; -+}; -diff -Nur musl-0.9.15/arch/sh/crt_arch.h musl-git/arch/sh/crt_arch.h ---- musl-0.9.15/arch/sh/crt_arch.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/crt_arch.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,12 @@ -+__asm__("\ -+.global _start \n\ -+_start: \n\ -+ mov r15, r4 \n\ -+ mov #-16, r0 \n\ -+ and r0, r15 \n\ -+ bsr __cstart \n\ -+ nop \n\ -+"); -+ -+/* used by gcc for switching the FPU between single and double precision */ -+const unsigned long __fpscr_values[2] = { 0, 0x80000 }; -diff -Nur musl-0.9.15/arch/sh/pthread_arch.h musl-git/arch/sh/pthread_arch.h ---- musl-0.9.15/arch/sh/pthread_arch.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/pthread_arch.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,11 @@ -+static inline struct pthread *__pthread_self() -+{ -+ char *self; -+ __asm__ __volatile__ ("stc gbr,%0" : "=r" (self) ); -+ return (struct pthread *) (self + 8 - sizeof(struct pthread)); -+} -+ -+#define TLS_ABOVE_TP -+#define TP_ADJ(p) ((char *)(p) + sizeof(struct pthread) - 8) -+ -+#define CANCEL_REG_IP 17 -diff -Nur musl-0.9.15/arch/sh/reloc.h musl-git/arch/sh/reloc.h ---- musl-0.9.15/arch/sh/reloc.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/reloc.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,47 @@ -+#if __BYTE_ORDER == __BIG_ENDIAN -+#define ENDIAN_SUFFIX "eb" -+#else -+#define ENDIAN_SUFFIX "" -+#endif -+ -+#define LDSO_ARCH "sh" ENDIAN_SUFFIX -+ -+#define IS_COPY(x) ((x) == R_SH_COPY) -+#define IS_PLT(x) ((x) == R_SH_JMP_SLOT) -+ -+static inline void do_single_reloc( -+ struct dso *self, unsigned char *base_addr, -+ size_t *reloc_addr, int type, size_t addend, -+ Sym *sym, size_t sym_size, -+ struct symdef def, size_t sym_val) -+{ -+ switch(type) { -+ case R_SH_GLOB_DAT: -+ case R_SH_JMP_SLOT: -+ *reloc_addr = sym_val; -+ break; -+ case R_SH_RELATIVE: -+ *reloc_addr = (size_t)base_addr + addend; -+ break; -+ case R_SH_DIR32: -+ *reloc_addr = sym_val + addend; -+ break; -+ case R_SH_REL32: -+ *reloc_addr = sym_val + addend - (size_t)reloc_addr + (size_t)base_addr; -+ break; -+ case R_SH_COPY: -+ memcpy(reloc_addr, (void *)sym_val, sym_size); -+ break; -+ case R_SH_TLS_DTPMOD32: -+ *reloc_addr += def.dso ? def.dso->tls_id : self->tls_id; -+ break; -+ case R_SH_TLS_DTPOFF32: -+ *reloc_addr += def.sym->st_value; -+ break; -+ case R_SH_TLS_TPOFF32: -+ *reloc_addr += def.sym -+ ? def.sym->st_value + def.dso->tls_offset + 8 -+ : self->tls_offset + 8; -+ break; -+ } -+} -diff -Nur musl-0.9.15/arch/sh/src/atomic.c musl-git/arch/sh/src/atomic.c ---- musl-0.9.15/arch/sh/src/atomic.c 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/src/atomic.c 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,146 @@ -+#include "libc.h" -+ -+#define LLSC_CLOBBERS "r0", "t", "memory" -+#define LLSC_START(mem) \ -+ "0: movli.l @" mem ", r0\n" -+#define LLSC_END(mem) \ -+ "1: movco.l r0, @" mem "\n" \ -+ " bf 0b\n" \ -+ " synco\n" -+ -+/* gusa is a hack in the kernel which lets you create a sequence of instructions -+ * which will be restarted if the process is preempted in the middle of the -+ * sequence. It will do for implementing atomics on non-smp systems. ABI is: -+ * r0 = address of first instruction after the atomic sequence -+ * r1 = original stack pointer -+ * r15 = -1 * length of atomic sequence in bytes -+ */ -+#define GUSA_CLOBBERS "r0", "r1", "memory" -+#define GUSA_START(mem,old,nop) \ -+ " .align 2\n" \ -+ " mova 1f, r0\n" \ -+ nop \ -+ " mov r15, r1\n" \ -+ " mov #(0f-1f), r15\n" \ -+ "0: mov.l @" mem ", " old "\n" -+/* the target of mova must be 4 byte aligned, so we may need a nop */ -+#define GUSA_START_ODD(mem,old) GUSA_START(mem,old,"") -+#define GUSA_START_EVEN(mem,old) GUSA_START(mem,old,"\tnop\n") -+#define GUSA_END(mem,new) \ -+ " mov.l " new ", @" mem "\n" \ -+ "1: mov r1, r15\n" -+ -+#define CPU_HAS_LLSC 0x0040 -+ -+int __sh_cas(volatile int *p, int t, int s) -+{ -+ int old; -+ if (__hwcap & CPU_HAS_LLSC) { -+ __asm__ __volatile__( -+ LLSC_START("%1") -+ " mov r0, %0\n" -+ " cmp/eq %0, %2\n" -+ " bf 1f\n" -+ " mov %3, r0\n" -+ LLSC_END("%1") -+ : "=&r"(old) : "r"(p), "r"(t), "r"(s) : LLSC_CLOBBERS); -+ } else { -+ __asm__ __volatile__( -+ GUSA_START_EVEN("%1", "%0") -+ " cmp/eq %0, %2\n" -+ " bf 1f\n" -+ GUSA_END("%1", "%3") -+ : "=&r"(old) : "r"(p), "r"(t), "r"(s) : GUSA_CLOBBERS, "t"); -+ } -+ return old; -+} -+ -+int __sh_swap(volatile int *x, int v) -+{ -+ int old; -+ if (__hwcap & CPU_HAS_LLSC) { -+ __asm__ __volatile__( -+ LLSC_START("%1") -+ " mov r0, %0\n" -+ " mov %2, r0\n" -+ LLSC_END("%1") -+ : "=&r"(old) : "r"(x), "r"(v) : LLSC_CLOBBERS); -+ } else { -+ __asm__ __volatile__( -+ GUSA_START_EVEN("%1", "%0") -+ GUSA_END("%1", "%2") -+ : "=&r"(old) : "r"(x), "r"(v) : GUSA_CLOBBERS); -+ } -+ return old; -+} -+ -+int __sh_fetch_add(volatile int *x, int v) -+{ -+ int old, dummy; -+ if (__hwcap & CPU_HAS_LLSC) { -+ __asm__ __volatile__( -+ LLSC_START("%1") -+ " mov r0, %0\n" -+ " add %2, r0\n" -+ LLSC_END("%1") -+ : "=&r"(old) : "r"(x), "r"(v) : LLSC_CLOBBERS); -+ } else { -+ __asm__ __volatile__( -+ GUSA_START_EVEN("%2", "%0") -+ " mov %0, %1\n" -+ " add %3, %1\n" -+ GUSA_END("%2", "%1") -+ : "=&r"(old), "=&r"(dummy) : "r"(x), "r"(v) : GUSA_CLOBBERS); -+ } -+ return old; -+} -+ -+void __sh_store(volatile int *p, int x) -+{ -+ if (__hwcap & CPU_HAS_LLSC) { -+ __asm__ __volatile__( -+ " mov.l %1, @%0\n" -+ " synco\n" -+ : : "r"(p), "r"(x) : "memory"); -+ } else { -+ __asm__ __volatile__( -+ " mov.l %1, @%0\n" -+ : : "r"(p), "r"(x) : "memory"); -+ } -+} -+ -+void __sh_and(volatile int *x, int v) -+{ -+ int dummy; -+ if (__hwcap & CPU_HAS_LLSC) { -+ __asm__ __volatile__( -+ LLSC_START("%0") -+ " and %1, r0\n" -+ LLSC_END("%0") -+ : : "r"(x), "r"(v) : LLSC_CLOBBERS); -+ } else { -+ __asm__ __volatile__( -+ GUSA_START_ODD("%1", "%0") -+ " and %2, %0\n" -+ GUSA_END("%1", "%0") -+ : "=&r"(dummy) : "r"(x), "r"(v) : GUSA_CLOBBERS); -+ } -+} -+ -+void __sh_or(volatile int *x, int v) -+{ -+ int dummy; -+ if (__hwcap & CPU_HAS_LLSC) { -+ __asm__ __volatile__( -+ LLSC_START("%0") -+ " or %1, r0\n" -+ LLSC_END("%0") -+ : : "r"(x), "r"(v) : LLSC_CLOBBERS); -+ } else { -+ __asm__ __volatile__( -+ GUSA_START_ODD("%1", "%0") -+ " or %2, %0\n" -+ GUSA_END("%1", "%0") -+ : "=&r"(dummy) : "r"(x), "r"(v) : GUSA_CLOBBERS); -+ } -+} -diff -Nur musl-0.9.15/arch/sh/src/__fpscr_values.c musl-git/arch/sh/src/__fpscr_values.c ---- musl-0.9.15/arch/sh/src/__fpscr_values.c 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/src/__fpscr_values.c 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,5 @@ -+#include "libc.h" -+ -+/* used by gcc for switching the FPU between single and double precision */ -+const unsigned long __fpscr_values[2] ATTR_LIBC_VISIBILITY = { 0, 0x80000 }; -+ -diff -Nur musl-0.9.15/arch/sh/syscall_arch.h musl-git/arch/sh/syscall_arch.h ---- musl-0.9.15/arch/sh/syscall_arch.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/sh/syscall_arch.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,87 @@ -+#define __SYSCALL_LL_E(x) \ -+((union { long long ll; long l[2]; }){ .ll = x }).l[0], \ -+((union { long long ll; long l[2]; }){ .ll = x }).l[1] -+#define __SYSCALL_LL_O(x) __SYSCALL_LL_E((x)) -+ -+/* The extra OR instructions are to work around a hardware bug: -+ * http://documentation.renesas.com/doc/products/mpumcu/tu/tnsh7456ae.pdf -+ */ -+#define __asm_syscall(trapno, ...) do { \ -+ __asm__ __volatile__ ( \ -+ "trapa #" #trapno "\n" \ -+ "or r0, r0\n" \ -+ "or r0, r0\n" \ -+ "or r0, r0\n" \ -+ "or r0, r0\n" \ -+ "or r0, r0\n" \ -+ : "=r"(r0) : __VA_ARGS__ : "memory"); \ -+ return r0; \ -+ } while (0) -+ -+static inline long __syscall0(long n) -+{ -+ register long r3 __asm__("r3") = n; -+ register long r0 __asm__("r0"); -+ __asm_syscall(16, "r"(r3)); -+} -+ -+static inline long __syscall1(long n, long a) -+{ -+ register long r3 __asm__("r3") = n; -+ register long r4 __asm__("r4") = a; -+ register long r0 __asm__("r0"); -+ __asm_syscall(17, "r"(r3), "r"(r4)); -+} -+ -+static inline long __syscall2(long n, long a, long b) -+{ -+ register long r3 __asm__("r3") = n; -+ register long r4 __asm__("r4") = a; -+ register long r5 __asm__("r5") = b; -+ register long r0 __asm__("r0"); -+ __asm_syscall(18, "r"(r3), "r"(r4), "r"(r5)); -+} -+ -+static inline long __syscall3(long n, long a, long b, long c) -+{ -+ register long r3 __asm__("r3") = n; -+ register long r4 __asm__("r4") = a; -+ register long r5 __asm__("r5") = b; -+ register long r6 __asm__("r6") = c; -+ register long r0 __asm__("r0"); -+ __asm_syscall(19, "r"(r3), "r"(r4), "r"(r5), "r"(r6)); -+} -+ -+static inline long __syscall4(long n, long a, long b, long c, long d) -+{ -+ register long r3 __asm__("r3") = n; -+ register long r4 __asm__("r4") = a; -+ register long r5 __asm__("r5") = b; -+ register long r6 __asm__("r6") = c; -+ register long r7 __asm__("r7") = d; -+ register long r0 __asm__("r0"); -+ __asm_syscall(20, "r"(r3), "r"(r4), "r"(r5), "r"(r6), "r"(r7)); -+} -+ -+static inline long __syscall5(long n, long a, long b, long c, long d, long e) -+{ -+ register long r3 __asm__("r3") = n; -+ register long r4 __asm__("r4") = a; -+ register long r5 __asm__("r5") = b; -+ register long r6 __asm__("r6") = c; -+ register long r7 __asm__("r7") = d; -+ register long r0 __asm__("r0") = e; -+ __asm_syscall(21, "r"(r3), "r"(r4), "r"(r5), "r"(r6), "r"(r7), "0"(r0)); -+} -+ -+static inline long __syscall6(long n, long a, long b, long c, long d, long e, long f) -+{ -+ register long r3 __asm__("r3") = n; -+ register long r4 __asm__("r4") = a; -+ register long r5 __asm__("r5") = b; -+ register long r6 __asm__("r6") = c; -+ register long r7 __asm__("r7") = d; -+ register long r0 __asm__("r0") = e; -+ register long r1 __asm__("r1") = f; -+ __asm_syscall(22, "r"(r3), "r"(r4), "r"(r5), "r"(r6), "r"(r7), "0"(r0), "r"(r1)); -+} -diff -Nur musl-0.9.15/arch/x32/atomic.h musl-git/arch/x32/atomic.h ---- musl-0.9.15/arch/x32/atomic.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/atomic.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,125 @@ -+#ifndef _INTERNAL_ATOMIC_H -+#define _INTERNAL_ATOMIC_H -+ -+#include -+ -+static inline int a_ctz_64(uint64_t x) -+{ -+ __asm__( "bsf %1,%0" : "=r"(x) : "r"(x) ); -+ return x; -+} -+ -+static inline int a_ctz_l(unsigned long x) -+{ -+ __asm__( "bsf %1,%0" : "=r"(x) : "r"(x) ); -+ return x; -+} -+ -+static inline void a_and_64(volatile uint64_t *p, uint64_t v) -+{ -+ __asm__( "lock ; and %1, %0" -+ : "=m"(*p) : "r"(v) : "memory" ); -+} -+ -+static inline void a_or_64(volatile uint64_t *p, uint64_t v) -+{ -+ __asm__( "lock ; or %1, %0" -+ : "=m"(*p) : "r"(v) : "memory" ); -+} -+ -+static inline void a_store_l(volatile void *p, long x) -+{ -+ __asm__( "mov %1, %0" : "=m"(*(long *)p) : "r"(x) : "memory" ); -+} -+ -+static inline void a_or_l(volatile void *p, long v) -+{ -+ __asm__( "lock ; or %1, %0" -+ : "=m"(*(long *)p) : "r"(v) : "memory" ); -+} -+ -+static inline void *a_cas_p(volatile void *p, void *t, void *s) -+{ -+ __asm__( "lock ; cmpxchg %3, %1" -+ : "=a"(t), "=m"(*(long *)p) : "a"(t), "r"(s) : "memory" ); -+ return t; -+} -+ -+static inline long a_cas_l(volatile void *p, long t, long s) -+{ -+ __asm__( "lock ; cmpxchg %3, %1" -+ : "=a"(t), "=m"(*(long *)p) : "a"(t), "r"(s) : "memory" ); -+ return t; -+} -+ -+static inline int a_cas(volatile int *p, int t, int s) -+{ -+ __asm__( "lock ; cmpxchg %3, %1" -+ : "=a"(t), "=m"(*p) : "a"(t), "r"(s) : "memory" ); -+ return t; -+} -+ -+static inline void *a_swap_p(void *volatile *x, void *v) -+{ -+ __asm__( "xchg %0, %1" : "=r"(v), "=m"(*(void **)x) : "0"(v) : "memory" ); -+ return v; -+} -+static inline long a_swap_l(volatile void *x, long v) -+{ -+ __asm__( "xchg %0, %1" : "=r"(v), "=m"(*(long *)x) : "0"(v) : "memory" ); -+ return v; -+} -+ -+static inline void a_or(volatile void *p, int v) -+{ -+ __asm__( "lock ; or %1, %0" -+ : "=m"(*(int *)p) : "r"(v) : "memory" ); -+} -+ -+static inline void a_and(volatile void *p, int v) -+{ -+ __asm__( "lock ; and %1, %0" -+ : "=m"(*(int *)p) : "r"(v) : "memory" ); -+} -+ -+static inline int a_swap(volatile int *x, int v) -+{ -+ __asm__( "xchg %0, %1" : "=r"(v), "=m"(*x) : "0"(v) : "memory" ); -+ return v; -+} -+ -+#define a_xchg a_swap -+ -+static inline int a_fetch_add(volatile int *x, int v) -+{ -+ __asm__( "lock ; xadd %0, %1" : "=r"(v), "=m"(*x) : "0"(v) : "memory" ); -+ return v; -+} -+ -+static inline void a_inc(volatile int *x) -+{ -+ __asm__( "lock ; incl %0" : "=m"(*x) : "m"(*x) : "memory" ); -+} -+ -+static inline void a_dec(volatile int *x) -+{ -+ __asm__( "lock ; decl %0" : "=m"(*x) : "m"(*x) : "memory" ); -+} -+ -+static inline void a_store(volatile int *p, int x) -+{ -+ __asm__( "mov %1, %0" : "=m"(*p) : "r"(x) : "memory" ); -+} -+ -+static inline void a_spin() -+{ -+ __asm__ __volatile__( "pause" : : : "memory" ); -+} -+ -+static inline void a_crash() -+{ -+ __asm__ __volatile__( "hlt" : : : "memory" ); -+} -+ -+ -+#endif -diff -Nur musl-0.9.15/arch/x32/bits/alltypes.h.in musl-git/arch/x32/bits/alltypes.h.in ---- musl-0.9.15/arch/x32/bits/alltypes.h.in 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/alltypes.h.in 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,28 @@ -+#define _Addr int -+#define _Int64 long long -+#define _Reg long long -+ -+TYPEDEF __builtin_va_list va_list; -+TYPEDEF __builtin_va_list __isoc_va_list; -+ -+#ifndef __cplusplus -+TYPEDEF long wchar_t; -+#endif -+TYPEDEF unsigned wint_t; -+ -+#if defined(__FLT_EVAL_METHOD__) && __FLT_EVAL_METHOD__ == 2 -+TYPEDEF long double float_t; -+TYPEDEF long double double_t; -+#else -+TYPEDEF float float_t; -+TYPEDEF double double_t; -+#endif -+ -+TYPEDEF long long time_t; -+TYPEDEF long long suseconds_t; -+ -+TYPEDEF struct { union { int __i[14]; unsigned long __s[7]; } __u; } pthread_attr_t; -+TYPEDEF struct { union { int __i[10]; void *__p[5]; } __u; } pthread_mutex_t; -+TYPEDEF struct { union { int __i[12]; void *__p[6]; } __u; } pthread_cond_t; -+TYPEDEF struct { union { int __i[14]; void *__p[7]; } __u; } pthread_rwlock_t; -+TYPEDEF struct { union { int __i[8]; void *__p[4]; } __u; } pthread_barrier_t; -diff -Nur musl-0.9.15/arch/x32/bits/endian.h musl-git/arch/x32/bits/endian.h ---- musl-0.9.15/arch/x32/bits/endian.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/endian.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1 @@ -+#define __BYTE_ORDER __LITTLE_ENDIAN -diff -Nur musl-0.9.15/arch/x32/bits/errno.h musl-git/arch/x32/bits/errno.h ---- musl-0.9.15/arch/x32/bits/errno.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/errno.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,134 @@ -+#define EPERM 1 -+#define ENOENT 2 -+#define ESRCH 3 -+#define EINTR 4 -+#define EIO 5 -+#define ENXIO 6 -+#define E2BIG 7 -+#define ENOEXEC 8 -+#define EBADF 9 -+#define ECHILD 10 -+#define EAGAIN 11 -+#define ENOMEM 12 -+#define EACCES 13 -+#define EFAULT 14 -+#define ENOTBLK 15 -+#define EBUSY 16 -+#define EEXIST 17 -+#define EXDEV 18 -+#define ENODEV 19 -+#define ENOTDIR 20 -+#define EISDIR 21 -+#define EINVAL 22 -+#define ENFILE 23 -+#define EMFILE 24 -+#define ENOTTY 25 -+#define ETXTBSY 26 -+#define EFBIG 27 -+#define ENOSPC 28 -+#define ESPIPE 29 -+#define EROFS 30 -+#define EMLINK 31 -+#define EPIPE 32 -+#define EDOM 33 -+#define ERANGE 34 -+#define EDEADLK 35 -+#define ENAMETOOLONG 36 -+#define ENOLCK 37 -+#define ENOSYS 38 -+#define ENOTEMPTY 39 -+#define ELOOP 40 -+#define EWOULDBLOCK EAGAIN -+#define ENOMSG 42 -+#define EIDRM 43 -+#define ECHRNG 44 -+#define EL2NSYNC 45 -+#define EL3HLT 46 -+#define EL3RST 47 -+#define ELNRNG 48 -+#define EUNATCH 49 -+#define ENOCSI 50 -+#define EL2HLT 51 -+#define EBADE 52 -+#define EBADR 53 -+#define EXFULL 54 -+#define ENOANO 55 -+#define EBADRQC 56 -+#define EBADSLT 57 -+#define EDEADLOCK EDEADLK -+#define EBFONT 59 -+#define ENOSTR 60 -+#define ENODATA 61 -+#define ETIME 62 -+#define ENOSR 63 -+#define ENONET 64 -+#define ENOPKG 65 -+#define EREMOTE 66 -+#define ENOLINK 67 -+#define EADV 68 -+#define ESRMNT 69 -+#define ECOMM 70 -+#define EPROTO 71 -+#define EMULTIHOP 72 -+#define EDOTDOT 73 -+#define EBADMSG 74 -+#define EOVERFLOW 75 -+#define ENOTUNIQ 76 -+#define EBADFD 77 -+#define EREMCHG 78 -+#define ELIBACC 79 -+#define ELIBBAD 80 -+#define ELIBSCN 81 -+#define ELIBMAX 82 -+#define ELIBEXEC 83 -+#define EILSEQ 84 -+#define ERESTART 85 -+#define ESTRPIPE 86 -+#define EUSERS 87 -+#define ENOTSOCK 88 -+#define EDESTADDRREQ 89 -+#define EMSGSIZE 90 -+#define EPROTOTYPE 91 -+#define ENOPROTOOPT 92 -+#define EPROTONOSUPPORT 93 -+#define ESOCKTNOSUPPORT 94 -+#define EOPNOTSUPP 95 -+#define ENOTSUP EOPNOTSUPP -+#define EPFNOSUPPORT 96 -+#define EAFNOSUPPORT 97 -+#define EADDRINUSE 98 -+#define EADDRNOTAVAIL 99 -+#define ENETDOWN 100 -+#define ENETUNREACH 101 -+#define ENETRESET 102 -+#define ECONNABORTED 103 -+#define ECONNRESET 104 -+#define ENOBUFS 105 -+#define EISCONN 106 -+#define ENOTCONN 107 -+#define ESHUTDOWN 108 -+#define ETOOMANYREFS 109 -+#define ETIMEDOUT 110 -+#define ECONNREFUSED 111 -+#define EHOSTDOWN 112 -+#define EHOSTUNREACH 113 -+#define EALREADY 114 -+#define EINPROGRESS 115 -+#define ESTALE 116 -+#define EUCLEAN 117 -+#define ENOTNAM 118 -+#define ENAVAIL 119 -+#define EISNAM 120 -+#define EREMOTEIO 121 -+#define EDQUOT 122 -+#define ENOMEDIUM 123 -+#define EMEDIUMTYPE 124 -+#define ECANCELED 125 -+#define ENOKEY 126 -+#define EKEYEXPIRED 127 -+#define EKEYREVOKED 128 -+#define EKEYREJECTED 129 -+#define EOWNERDEAD 130 -+#define ENOTRECOVERABLE 131 -+#define ERFKILL 132 -+#define EHWPOISON 133 -diff -Nur musl-0.9.15/arch/x32/bits/fcntl.h musl-git/arch/x32/bits/fcntl.h ---- musl-0.9.15/arch/x32/bits/fcntl.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/fcntl.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,39 @@ -+#define O_CREAT 0100 -+#define O_EXCL 0200 -+#define O_NOCTTY 0400 -+#define O_TRUNC 01000 -+#define O_APPEND 02000 -+#define O_NONBLOCK 04000 -+#define O_DSYNC 010000 -+#define O_SYNC 04010000 -+#define O_RSYNC 04010000 -+#define O_DIRECTORY 0200000 -+#define O_NOFOLLOW 0400000 -+#define O_CLOEXEC 02000000 -+ -+#define O_ASYNC 020000 -+#define O_DIRECT 040000 -+#define O_LARGEFILE 0 -+#define O_NOATIME 01000000 -+#define O_TMPFILE 020200000 -+#define O_NDELAY O_NONBLOCK -+ -+#define F_DUPFD 0 -+#define F_GETFD 1 -+#define F_SETFD 2 -+#define F_GETFL 3 -+#define F_SETFL 4 -+ -+#define F_SETOWN 8 -+#define F_GETOWN 9 -+#define F_SETSIG 10 -+#define F_GETSIG 11 -+ -+#define F_GETLK 5 -+#define F_SETLK 6 -+#define F_SETLKW 7 -+ -+#define F_SETOWN_EX 15 -+#define F_GETOWN_EX 16 -+ -+#define F_GETOWNER_UIDS 17 -diff -Nur musl-0.9.15/arch/x32/bits/fenv.h musl-git/arch/x32/bits/fenv.h ---- musl-0.9.15/arch/x32/bits/fenv.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/fenv.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,34 @@ -+#define FE_INVALID 1 -+#define __FE_DENORM 2 -+#define FE_DIVBYZERO 4 -+#define FE_OVERFLOW 8 -+#define FE_UNDERFLOW 16 -+#define FE_INEXACT 32 -+ -+#define FE_ALL_EXCEPT 63 -+ -+#define FE_TONEAREST 0 -+#define FE_DOWNWARD 0x400 -+#define FE_UPWARD 0x800 -+#define FE_TOWARDZERO 0xc00 -+ -+typedef unsigned short fexcept_t; -+ -+typedef struct { -+ unsigned short __control_word; -+ unsigned short __unused1; -+ unsigned short __status_word; -+ unsigned short __unused2; -+ unsigned short __tags; -+ unsigned short __unused3; -+ unsigned int __eip; -+ unsigned short __cs_selector; -+ unsigned int __opcode:11; -+ unsigned int __unused4:5; -+ unsigned int __data_offset; -+ unsigned short __data_selector; -+ unsigned short __unused5; -+ unsigned int __mxcsr; -+} fenv_t; -+ -+#define FE_DFL_ENV ((const fenv_t *) -1) -diff -Nur musl-0.9.15/arch/x32/bits/float.h musl-git/arch/x32/bits/float.h ---- musl-0.9.15/arch/x32/bits/float.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/float.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,21 @@ -+#define FLT_ROUNDS 1 -+#ifdef __FLT_EVAL_METHOD__ -+#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__ -+#else -+#define FLT_EVAL_METHOD 0 -+#endif -+ -+#define LDBL_TRUE_MIN 3.6451995318824746025e-4951L -+#define LDBL_MIN 3.3621031431120935063e-4932L -+#define LDBL_MAX 1.1897314953572317650e+4932L -+#define LDBL_EPSILON 1.0842021724855044340e-19L -+ -+#define LDBL_MANT_DIG 64 -+#define LDBL_MIN_EXP (-16381) -+#define LDBL_MAX_EXP 16384 -+ -+#define LDBL_DIG 18 -+#define LDBL_MIN_10_EXP (-4931) -+#define LDBL_MAX_10_EXP 4932 -+ -+#define DECIMAL_DIG 21 -diff -Nur musl-0.9.15/arch/x32/bits/ioctl.h musl-git/arch/x32/bits/ioctl.h ---- musl-0.9.15/arch/x32/bits/ioctl.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/ioctl.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,197 @@ -+#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) ) -+#define _IOC_NONE 0U -+#define _IOC_WRITE 1U -+#define _IOC_READ 2U -+ -+#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0) -+#define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c)) -+#define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c)) -+#define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c)) -+ -+#define TCGETS 0x5401 -+#define TCSETS 0x5402 -+#define TCSETSW 0x5403 -+#define TCSETSF 0x5404 -+#define TCGETA 0x5405 -+#define TCSETA 0x5406 -+#define TCSETAW 0x5407 -+#define TCSETAF 0x5408 -+#define TCSBRK 0x5409 -+#define TCXONC 0x540A -+#define TCFLSH 0x540B -+#define TIOCEXCL 0x540C -+#define TIOCNXCL 0x540D -+#define TIOCSCTTY 0x540E -+#define TIOCGPGRP 0x540F -+#define TIOCSPGRP 0x5410 -+#define TIOCOUTQ 0x5411 -+#define TIOCSTI 0x5412 -+#define TIOCGWINSZ 0x5413 -+#define TIOCSWINSZ 0x5414 -+#define TIOCMGET 0x5415 -+#define TIOCMBIS 0x5416 -+#define TIOCMBIC 0x5417 -+#define TIOCMSET 0x5418 -+#define TIOCGSOFTCAR 0x5419 -+#define TIOCSSOFTCAR 0x541A -+#define FIONREAD 0x541B -+#define TIOCINQ FIONREAD -+#define TIOCLINUX 0x541C -+#define TIOCCONS 0x541D -+#define TIOCGSERIAL 0x541E -+#define TIOCSSERIAL 0x541F -+#define TIOCPKT 0x5420 -+#define FIONBIO 0x5421 -+#define TIOCNOTTY 0x5422 -+#define TIOCSETD 0x5423 -+#define TIOCGETD 0x5424 -+#define TCSBRKP 0x5425 -+#define TIOCTTYGSTRUCT 0x5426 -+#define TIOCSBRK 0x5427 -+#define TIOCCBRK 0x5428 -+#define TIOCGSID 0x5429 -+#define TIOCGPTN 0x80045430 -+#define TIOCSPTLCK 0x40045431 -+#define TCGETX 0x5432 -+#define TCSETX 0x5433 -+#define TCSETXF 0x5434 -+#define TCSETXW 0x5435 -+ -+#define FIONCLEX 0x5450 -+#define FIOCLEX 0x5451 -+#define FIOASYNC 0x5452 -+#define TIOCSERCONFIG 0x5453 -+#define TIOCSERGWILD 0x5454 -+#define TIOCSERSWILD 0x5455 -+#define TIOCGLCKTRMIOS 0x5456 -+#define TIOCSLCKTRMIOS 0x5457 -+#define TIOCSERGSTRUCT 0x5458 -+#define TIOCSERGETLSR 0x5459 -+#define TIOCSERGETMULTI 0x545A -+#define TIOCSERSETMULTI 0x545B -+ -+#define TIOCMIWAIT 0x545C -+#define TIOCGICOUNT 0x545D -+#define TIOCGHAYESESP 0x545E -+#define TIOCSHAYESESP 0x545F -+#define FIOQSIZE 0x5460 -+ -+#define TIOCPKT_DATA 0 -+#define TIOCPKT_FLUSHREAD 1 -+#define TIOCPKT_FLUSHWRITE 2 -+#define TIOCPKT_STOP 4 -+#define TIOCPKT_START 8 -+#define TIOCPKT_NOSTOP 16 -+#define TIOCPKT_DOSTOP 32 -+#define TIOCPKT_IOCTL 64 -+ -+#define TIOCSER_TEMT 0x01 -+ -+struct winsize { -+ unsigned short ws_row; -+ unsigned short ws_col; -+ unsigned short ws_xpixel; -+ unsigned short ws_ypixel; -+}; -+ -+#define TIOCM_LE 0x001 -+#define TIOCM_DTR 0x002 -+#define TIOCM_RTS 0x004 -+#define TIOCM_ST 0x008 -+#define TIOCM_SR 0x010 -+#define TIOCM_CTS 0x020 -+#define TIOCM_CAR 0x040 -+#define TIOCM_RNG 0x080 -+#define TIOCM_DSR 0x100 -+#define TIOCM_CD TIOCM_CAR -+#define TIOCM_RI TIOCM_RNG -+#define TIOCM_OUT1 0x2000 -+#define TIOCM_OUT2 0x4000 -+#define TIOCM_LOOP 0x8000 -+#define TIOCM_MODEM_BITS TIOCM_OUT2 -+ -+#define N_TTY 0 -+#define N_SLIP 1 -+#define N_MOUSE 2 -+#define N_PPP 3 -+#define N_STRIP 4 -+#define N_AX25 5 -+#define N_X25 6 -+#define N_6PACK 7 -+#define N_MASC 8 -+#define N_R3964 9 -+#define N_PROFIBUS_FDL 10 -+#define N_IRDA 11 -+#define N_SMSBLOCK 12 -+#define N_HDLC 13 -+#define N_SYNC_PPP 14 -+#define N_HCI 15 -+ -+#define FIOSETOWN 0x8901 -+#define SIOCSPGRP 0x8902 -+#define FIOGETOWN 0x8903 -+#define SIOCGPGRP 0x8904 -+#define SIOCATMARK 0x8905 -+#define SIOCGSTAMP 0x8906 -+ -+#define SIOCADDRT 0x890B -+#define SIOCDELRT 0x890C -+#define SIOCRTMSG 0x890D -+ -+#define SIOCGIFNAME 0x8910 -+#define SIOCSIFLINK 0x8911 -+#define SIOCGIFCONF 0x8912 -+#define SIOCGIFFLAGS 0x8913 -+#define SIOCSIFFLAGS 0x8914 -+#define SIOCGIFADDR 0x8915 -+#define SIOCSIFADDR 0x8916 -+#define SIOCGIFDSTADDR 0x8917 -+#define SIOCSIFDSTADDR 0x8918 -+#define SIOCGIFBRDADDR 0x8919 -+#define SIOCSIFBRDADDR 0x891a -+#define SIOCGIFNETMASK 0x891b -+#define SIOCSIFNETMASK 0x891c -+#define SIOCGIFMETRIC 0x891d -+#define SIOCSIFMETRIC 0x891e -+#define SIOCGIFMEM 0x891f -+#define SIOCSIFMEM 0x8920 -+#define SIOCGIFMTU 0x8921 -+#define SIOCSIFMTU 0x8922 -+#define SIOCSIFHWADDR 0x8924 -+#define SIOCGIFENCAP 0x8925 -+#define SIOCSIFENCAP 0x8926 -+#define SIOCGIFHWADDR 0x8927 -+#define SIOCGIFSLAVE 0x8929 -+#define SIOCSIFSLAVE 0x8930 -+#define SIOCADDMULTI 0x8931 -+#define SIOCDELMULTI 0x8932 -+#define SIOCGIFINDEX 0x8933 -+#define SIOGIFINDEX SIOCGIFINDEX -+#define SIOCSIFPFLAGS 0x8934 -+#define SIOCGIFPFLAGS 0x8935 -+#define SIOCDIFADDR 0x8936 -+#define SIOCSIFHWBROADCAST 0x8937 -+#define SIOCGIFCOUNT 0x8938 -+ -+#define SIOCGIFBR 0x8940 -+#define SIOCSIFBR 0x8941 -+ -+#define SIOCGIFTXQLEN 0x8942 -+#define SIOCSIFTXQLEN 0x8943 -+ -+#define SIOCDARP 0x8953 -+#define SIOCGARP 0x8954 -+#define SIOCSARP 0x8955 -+ -+#define SIOCDRARP 0x8960 -+#define SIOCGRARP 0x8961 -+#define SIOCSRARP 0x8962 -+ -+#define SIOCGIFMAP 0x8970 -+#define SIOCSIFMAP 0x8971 -+ -+#define SIOCADDDLCI 0x8980 -+#define SIOCDELDLCI 0x8981 -+ -+#define SIOCDEVPRIVATE 0x89F0 -+#define SIOCPROTOPRIVATE 0x89E0 -diff -Nur musl-0.9.15/arch/x32/bits/io.h musl-git/arch/x32/bits/io.h ---- musl-0.9.15/arch/x32/bits/io.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/io.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,77 @@ -+static __inline void outb(unsigned char __val, unsigned short __port) -+{ -+ __asm__ volatile ("outb %0,%1" : : "a" (__val), "dN" (__port)); -+} -+ -+static __inline void outw(unsigned short __val, unsigned short __port) -+{ -+ __asm__ volatile ("outw %0,%1" : : "a" (__val), "dN" (__port)); -+} -+ -+static __inline void outl(unsigned int __val, unsigned short __port) -+{ -+ __asm__ volatile ("outl %0,%1" : : "a" (__val), "dN" (__port)); -+} -+ -+static __inline unsigned char inb(unsigned short __port) -+{ -+ unsigned char __val; -+ __asm__ volatile ("inb %1,%0" : "=a" (__val) : "dN" (__port)); -+ return __val; -+} -+ -+static __inline unsigned short inw(unsigned short __port) -+{ -+ unsigned short __val; -+ __asm__ volatile ("inw %1,%0" : "=a" (__val) : "dN" (__port)); -+ return __val; -+} -+ -+static __inline unsigned int inl(unsigned short __port) -+{ -+ unsigned int __val; -+ __asm__ volatile ("inl %1,%0" : "=a" (__val) : "dN" (__port)); -+ return __val; -+} -+ -+static __inline void outsb(unsigned short __port, const void *__buf, unsigned long __n) -+{ -+ __asm__ volatile ("cld; rep; outsb" -+ : "+S" (__buf), "+c" (__n) -+ : "d" (__port)); -+} -+ -+static __inline void outsw(unsigned short __port, const void *__buf, unsigned long __n) -+{ -+ __asm__ volatile ("cld; rep; outsw" -+ : "+S" (__buf), "+c" (__n) -+ : "d" (__port)); -+} -+ -+static __inline void outsl(unsigned short __port, const void *__buf, unsigned long __n) -+{ -+ __asm__ volatile ("cld; rep; outsl" -+ : "+S" (__buf), "+c"(__n) -+ : "d" (__port)); -+} -+ -+static __inline void insb(unsigned short __port, void *__buf, unsigned long __n) -+{ -+ __asm__ volatile ("cld; rep; insb" -+ : "+D" (__buf), "+c" (__n) -+ : "d" (__port)); -+} -+ -+static __inline void insw(unsigned short __port, void *__buf, unsigned long __n) -+{ -+ __asm__ volatile ("cld; rep; insw" -+ : "+D" (__buf), "+c" (__n) -+ : "d" (__port)); -+} -+ -+static __inline void insl(unsigned short __port, void *__buf, unsigned long __n) -+{ -+ __asm__ volatile ("cld; rep; insl" -+ : "+D" (__buf), "+c" (__n) -+ : "d" (__port)); -+} -diff -Nur musl-0.9.15/arch/x32/bits/ipc.h musl-git/arch/x32/bits/ipc.h ---- musl-0.9.15/arch/x32/bits/ipc.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/ipc.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,14 @@ -+struct ipc_perm -+{ -+ key_t __ipc_perm_key; -+ uid_t uid; -+ gid_t gid; -+ uid_t cuid; -+ gid_t cgid; -+ mode_t mode; -+ int __ipc_perm_seq; -+ long long __pad1; -+ long long __pad2; -+}; -+ -+#define IPC_64 0 -diff -Nur musl-0.9.15/arch/x32/bits/limits.h musl-git/arch/x32/bits/limits.h ---- musl-0.9.15/arch/x32/bits/limits.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/limits.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,8 @@ -+#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ -+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define PAGE_SIZE 4096 -+#define LONG_BIT 32 -+#endif -+ -+#define LONG_MAX 0x7fffffffL -+#define LLONG_MAX 0x7fffffffffffffffLL -diff -Nur musl-0.9.15/arch/x32/bits/mman.h musl-git/arch/x32/bits/mman.h ---- musl-0.9.15/arch/x32/bits/mman.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/mman.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,62 @@ -+#define MAP_FAILED ((void *) -1) -+ -+#define PROT_NONE 0 -+#define PROT_READ 1 -+#define PROT_WRITE 2 -+#define PROT_EXEC 4 -+#define PROT_GROWSDOWN 0x01000000 -+#define PROT_GROWSUP 0x02000000 -+ -+#define MAP_SHARED 0x01 -+#define MAP_PRIVATE 0x02 -+#define MAP_FIXED 0x10 -+ -+#define MAP_TYPE 0x0f -+#define MAP_FILE 0x00 -+#define MAP_ANON 0x20 -+#define MAP_ANONYMOUS MAP_ANON -+#define MAP_32BIT 0x40 -+#define MAP_NORESERVE 0x4000 -+#define MAP_GROWSDOWN 0x0100 -+#define MAP_DENYWRITE 0x0800 -+#define MAP_EXECUTABLE 0x1000 -+#define MAP_LOCKED 0x2000 -+#define MAP_POPULATE 0x8000 -+#define MAP_NONBLOCK 0x10000 -+#define MAP_STACK 0x20000 -+#define MAP_HUGETLB 0x40000 -+ -+#define POSIX_MADV_NORMAL 0 -+#define POSIX_MADV_RANDOM 1 -+#define POSIX_MADV_SEQUENTIAL 2 -+#define POSIX_MADV_WILLNEED 3 -+#define POSIX_MADV_DONTNEED 0 -+ -+#define MS_ASYNC 1 -+#define MS_INVALIDATE 2 -+#define MS_SYNC 4 -+ -+#define MCL_CURRENT 1 -+#define MCL_FUTURE 2 -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define MADV_NORMAL 0 -+#define MADV_RANDOM 1 -+#define MADV_SEQUENTIAL 2 -+#define MADV_WILLNEED 3 -+#define MADV_DONTNEED 4 -+#define MADV_REMOVE 9 -+#define MADV_DONTFORK 10 -+#define MADV_DOFORK 11 -+#define MADV_MERGEABLE 12 -+#define MADV_UNMERGEABLE 13 -+#define MADV_HUGEPAGE 14 -+#define MADV_NOHUGEPAGE 15 -+#define MADV_DONTDUMP 16 -+#define MADV_DODUMP 17 -+#define MADV_HWPOISON 100 -+#define MADV_SOFT_OFFLINE 101 -+ -+#define MREMAP_MAYMOVE 1 -+#define MREMAP_FIXED 2 -+#endif -diff -Nur musl-0.9.15/arch/x32/bits/msg.h musl-git/arch/x32/bits/msg.h ---- musl-0.9.15/arch/x32/bits/msg.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/msg.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,16 @@ -+struct msqid_ds -+{ -+ struct ipc_perm msg_perm; -+ time_t msg_stime; -+ time_t msg_rtime; -+ time_t msg_ctime; -+ unsigned long msg_cbytes; -+ long __unused1; -+ msgqnum_t msg_qnum; -+ long __unused2; -+ msglen_t msg_qbytes; -+ long __unused3; -+ pid_t msg_lspid; -+ pid_t msg_lrpid; -+ unsigned long long __unused[2]; -+}; -diff -Nur musl-0.9.15/arch/x32/bits/posix.h musl-git/arch/x32/bits/posix.h ---- musl-0.9.15/arch/x32/bits/posix.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/posix.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,2 @@ -+#define _POSIX_V6_LP64_OFF64 1 -+#define _POSIX_V7_LP64_OFF64 1 -diff -Nur musl-0.9.15/arch/x32/bits/reg.h musl-git/arch/x32/bits/reg.h ---- musl-0.9.15/arch/x32/bits/reg.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/reg.h 2014-03-19 07:42:48.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/sem.h musl-git/arch/x32/bits/sem.h ---- musl-0.9.15/arch/x32/bits/sem.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/sem.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,16 @@ -+struct semid_ds { -+ struct ipc_perm sem_perm; -+ 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(time_t)-sizeof(short)]; -+#else -+ char __sem_nsems_pad[sizeof(time_t)-sizeof(short)]; -+ unsigned short sem_nsems; -+#endif -+ time_t __unused3; -+ time_t __unused4; -+}; -diff -Nur musl-0.9.15/arch/x32/bits/setjmp.h musl-git/arch/x32/bits/setjmp.h ---- musl-0.9.15/arch/x32/bits/setjmp.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/setjmp.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1 @@ -+typedef unsigned long long __jmp_buf[8]; -diff -Nur musl-0.9.15/arch/x32/bits/shm.h musl-git/arch/x32/bits/shm.h ---- musl-0.9.15/arch/x32/bits/shm.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/shm.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,33 @@ -+#define SHMLBA 4096 -+ -+struct shmid_ds -+{ -+ struct ipc_perm shm_perm; -+ size_t shm_segsz; -+ time_t shm_atime; -+ time_t shm_dtime; -+ time_t shm_ctime; -+ pid_t shm_cpid; -+ pid_t shm_lpid; -+ unsigned long shm_nattch; -+ unsigned long __pad0; -+ unsigned long long __pad1; -+ unsigned long long __pad2; -+}; -+ -+struct shminfo { -+ unsigned long shmmax, __pad0, shmmin, __pad1, shmmni, __pad2, -+ shmseg, __pad3, shmall, __pad4; -+ unsigned long long __unused[4]; -+}; -+ -+struct shm_info { -+ int __used_ids; -+ int __pad_ids; -+ unsigned long shm_tot, __pad0, shm_rss, __pad1, shm_swp, __pad2; -+ unsigned long __swap_attempts, __pad3, __swap_successes, __pad4; -+} -+#ifdef __GNUC__ -+__attribute__((__aligned__(8))) -+#endif -+; -diff -Nur musl-0.9.15/arch/x32/bits/signal.h musl-git/arch/x32/bits/signal.h ---- musl-0.9.15/arch/x32/bits/signal.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/signal.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,125 @@ -+#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 -+ -+struct sigaltstack { -+ void *ss_sp; -+ int ss_flags; -+ size_t ss_size; -+}; -+ -+typedef struct __ucontext { -+ unsigned long uc_flags; -+ struct __ucontext *uc_link; -+ stack_t uc_stack; -+ mcontext_t uc_mcontext; -+ sigset_t uc_sigmask; -+ unsigned long long __fpregs_mem[64]; -+} ucontext_t; -+ -+#define SA_NOCLDSTOP 1 -+#define SA_NOCLDWAIT 2 -+#define SA_SIGINFO 4 -+#define SA_ONSTACK 0x08000000 -+#define SA_RESTART 0x10000000 -+#define SA_NODEFER 0x40000000 -+#define SA_RESETHAND 0x80000000 -+#define SA_RESTORER 0x04000000 -+ -+#endif -+ -+#define SIGHUP 1 -+#define SIGINT 2 -+#define SIGQUIT 3 -+#define SIGILL 4 -+#define SIGTRAP 5 -+#define SIGABRT 6 -+#define SIGIOT SIGABRT -+#define SIGBUS 7 -+#define SIGFPE 8 -+#define SIGKILL 9 -+#define SIGUSR1 10 -+#define SIGSEGV 11 -+#define SIGUSR2 12 -+#define SIGPIPE 13 -+#define SIGALRM 14 -+#define SIGTERM 15 -+#define SIGSTKFLT 16 -+#define SIGCHLD 17 -+#define SIGCONT 18 -+#define SIGSTOP 19 -+#define SIGTSTP 20 -+#define SIGTTIN 21 -+#define SIGTTOU 22 -+#define SIGURG 23 -+#define SIGXCPU 24 -+#define SIGXFSZ 25 -+#define SIGVTALRM 26 -+#define SIGPROF 27 -+#define SIGWINCH 28 -+#define SIGIO 29 -+#define SIGPOLL 29 -+#define SIGPWR 30 -+#define SIGSYS 31 -+#define SIGUNUSED SIGSYS -+ -+#define _NSIG 65 -+ -diff -Nur musl-0.9.15/arch/x32/bits/socket.h musl-git/arch/x32/bits/socket.h ---- musl-0.9.15/arch/x32/bits/socket.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/socket.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,18 @@ -+struct msghdr -+{ -+ void *msg_name; -+ socklen_t msg_namelen; -+ struct iovec *msg_iov; -+ int msg_iovlen, __pad1; -+ void *msg_control; -+ socklen_t msg_controllen, __pad2; -+ int msg_flags; -+}; -+ -+struct cmsghdr -+{ -+ socklen_t cmsg_len; -+ int __pad1; -+ int cmsg_level; -+ int cmsg_type; -+}; -diff -Nur musl-0.9.15/arch/x32/bits/statfs.h musl-git/arch/x32/bits/statfs.h ---- musl-0.9.15/arch/x32/bits/statfs.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/statfs.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,9 @@ -+struct statfs { -+ unsigned long f_type, __pad0, f_bsize, __pad1; -+ fsblkcnt_t f_blocks, f_bfree, f_bavail; -+ fsfilcnt_t f_files, f_ffree; -+ fsid_t f_fsid; -+ unsigned long f_namelen, __pad2, f_frsize, __pad3; -+ unsigned long f_flags, __pad4; -+ unsigned long long f_spare[4]; -+}; -diff -Nur musl-0.9.15/arch/x32/bits/stat.h musl-git/arch/x32/bits/stat.h ---- musl-0.9.15/arch/x32/bits/stat.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/stat.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,22 @@ -+/* copied from kernel definition, but with padding replaced -+ * by the corresponding correctly-sized userspace types. */ -+ -+struct stat { -+ dev_t st_dev; -+ ino_t st_ino; -+ nlink_t st_nlink; -+ -+ mode_t st_mode; -+ uid_t st_uid; -+ gid_t st_gid; -+ unsigned int __pad0; -+ dev_t st_rdev; -+ off_t st_size; -+ blksize_t st_blksize; -+ blkcnt_t st_blocks; -+ -+ struct timespec st_atim; -+ struct timespec st_mtim; -+ struct timespec st_ctim; -+ long long __unused[3]; -+}; -diff -Nur musl-0.9.15/arch/x32/bits/stdarg.h musl-git/arch/x32/bits/stdarg.h ---- musl-0.9.15/arch/x32/bits/stdarg.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/stdarg.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,4 @@ -+#define va_start(v,l) __builtin_va_start(v,l) -+#define va_end(v) __builtin_va_end(v) -+#define va_arg(v,l) __builtin_va_arg(v,l) -+#define va_copy(d,s) __builtin_va_copy(d,s) -diff -Nur musl-0.9.15/arch/x32/bits/stdint.h musl-git/arch/x32/bits/stdint.h ---- musl-0.9.15/arch/x32/bits/stdint.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/stdint.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,20 @@ -+typedef int32_t int_fast16_t; -+typedef int32_t int_fast32_t; -+typedef uint32_t uint_fast16_t; -+typedef uint32_t uint_fast32_t; -+ -+#define INT_FAST16_MIN INT32_MIN -+#define INT_FAST32_MIN INT32_MIN -+ -+#define INT_FAST16_MAX INT32_MAX -+#define INT_FAST32_MAX INT32_MAX -+ -+#define UINT_FAST16_MAX UINT32_MAX -+#define UINT_FAST32_MAX UINT32_MAX -+ -+#define INTPTR_MIN INT32_MIN -+#define INTPTR_MAX INT32_MAX -+#define UINTPTR_MAX UINT32_MAX -+#define PTRDIFF_MIN INT32_MIN -+#define PTRDIFF_MAX INT32_MAX -+#define SIZE_MAX UINT32_MAX -diff -Nur musl-0.9.15/arch/x32/bits/syscall.h musl-git/arch/x32/bits/syscall.h ---- musl-0.9.15/arch/x32/bits/syscall.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/syscall.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,634 @@ -+#define __X32_SYSCALL_BIT 0x40000000 -+#define __NR_read (__X32_SYSCALL_BIT + 0) -+#define __NR_write (__X32_SYSCALL_BIT + 1) -+#define __NR_open (__X32_SYSCALL_BIT + 2) -+#define __NR_close (__X32_SYSCALL_BIT + 3) -+#define __NR_stat (__X32_SYSCALL_BIT + 4) -+#define __NR_fstat (__X32_SYSCALL_BIT + 5) -+#define __NR_lstat (__X32_SYSCALL_BIT + 6) -+#define __NR_poll (__X32_SYSCALL_BIT + 7) -+#define __NR_lseek (__X32_SYSCALL_BIT + 8) -+#define __NR_mmap (__X32_SYSCALL_BIT + 9) -+#define __NR_mprotect (__X32_SYSCALL_BIT + 10) -+#define __NR_munmap (__X32_SYSCALL_BIT + 11) -+#define __NR_brk (__X32_SYSCALL_BIT + 12) -+#define __NR_rt_sigprocmask (__X32_SYSCALL_BIT + 14) -+#define __NR_pread64 (__X32_SYSCALL_BIT + 17) -+#define __NR_pwrite64 (__X32_SYSCALL_BIT + 18) -+#define __NR_access (__X32_SYSCALL_BIT + 21) -+#define __NR_pipe (__X32_SYSCALL_BIT + 22) -+#define __NR_select (__X32_SYSCALL_BIT + 23) -+#define __NR_sched_yield (__X32_SYSCALL_BIT + 24) -+#define __NR_mremap (__X32_SYSCALL_BIT + 25) -+#define __NR_msync (__X32_SYSCALL_BIT + 26) -+#define __NR_mincore (__X32_SYSCALL_BIT + 27) -+#define __NR_madvise (__X32_SYSCALL_BIT + 28) -+#define __NR_shmget (__X32_SYSCALL_BIT + 29) -+#define __NR_shmat (__X32_SYSCALL_BIT + 30) -+#define __NR_shmctl (__X32_SYSCALL_BIT + 31) -+#define __NR_dup (__X32_SYSCALL_BIT + 32) -+#define __NR_dup2 (__X32_SYSCALL_BIT + 33) -+#define __NR_pause (__X32_SYSCALL_BIT + 34) -+#define __NR_nanosleep (__X32_SYSCALL_BIT + 35) -+#define __NR_getitimer (__X32_SYSCALL_BIT + 36) -+#define __NR_alarm (__X32_SYSCALL_BIT + 37) -+#define __NR_setitimer (__X32_SYSCALL_BIT + 38) -+#define __NR_getpid (__X32_SYSCALL_BIT + 39) -+#define __NR_sendfile (__X32_SYSCALL_BIT + 40) -+#define __NR_socket (__X32_SYSCALL_BIT + 41) -+#define __NR_connect (__X32_SYSCALL_BIT + 42) -+#define __NR_accept (__X32_SYSCALL_BIT + 43) -+#define __NR_sendto (__X32_SYSCALL_BIT + 44) -+#define __NR_shutdown (__X32_SYSCALL_BIT + 48) -+#define __NR_bind (__X32_SYSCALL_BIT + 49) -+#define __NR_listen (__X32_SYSCALL_BIT + 50) -+#define __NR_getsockname (__X32_SYSCALL_BIT + 51) -+#define __NR_getpeername (__X32_SYSCALL_BIT + 52) -+#define __NR_socketpair (__X32_SYSCALL_BIT + 53) -+#define __NR_clone (__X32_SYSCALL_BIT + 56) -+#define __NR_fork (__X32_SYSCALL_BIT + 57) -+#define __NR_vfork (__X32_SYSCALL_BIT + 58) -+#define __NR_exit (__X32_SYSCALL_BIT + 60) -+#define __NR_wait4 (__X32_SYSCALL_BIT + 61) -+#define __NR_kill (__X32_SYSCALL_BIT + 62) -+#define __NR_uname (__X32_SYSCALL_BIT + 63) -+#define __NR_semget (__X32_SYSCALL_BIT + 64) -+#define __NR_semop (__X32_SYSCALL_BIT + 65) -+#define __NR_semctl (__X32_SYSCALL_BIT + 66) -+#define __NR_shmdt (__X32_SYSCALL_BIT + 67) -+#define __NR_msgget (__X32_SYSCALL_BIT + 68) -+#define __NR_msgsnd (__X32_SYSCALL_BIT + 69) -+#define __NR_msgrcv (__X32_SYSCALL_BIT + 70) -+#define __NR_msgctl (__X32_SYSCALL_BIT + 71) -+#define __NR_fcntl (__X32_SYSCALL_BIT + 72) -+#define __NR_flock (__X32_SYSCALL_BIT + 73) -+#define __NR_fsync (__X32_SYSCALL_BIT + 74) -+#define __NR_fdatasync (__X32_SYSCALL_BIT + 75) -+#define __NR_truncate (__X32_SYSCALL_BIT + 76) -+#define __NR_ftruncate (__X32_SYSCALL_BIT + 77) -+#define __NR_getdents (__X32_SYSCALL_BIT + 78) -+#define __NR_getcwd (__X32_SYSCALL_BIT + 79) -+#define __NR_chdir (__X32_SYSCALL_BIT + 80) -+#define __NR_fchdir (__X32_SYSCALL_BIT + 81) -+#define __NR_rename (__X32_SYSCALL_BIT + 82) -+#define __NR_mkdir (__X32_SYSCALL_BIT + 83) -+#define __NR_rmdir (__X32_SYSCALL_BIT + 84) -+#define __NR_creat (__X32_SYSCALL_BIT + 85) -+#define __NR_link (__X32_SYSCALL_BIT + 86) -+#define __NR_unlink (__X32_SYSCALL_BIT + 87) -+#define __NR_symlink (__X32_SYSCALL_BIT + 88) -+#define __NR_readlink (__X32_SYSCALL_BIT + 89) -+#define __NR_chmod (__X32_SYSCALL_BIT + 90) -+#define __NR_fchmod (__X32_SYSCALL_BIT + 91) -+#define __NR_chown (__X32_SYSCALL_BIT + 92) -+#define __NR_fchown (__X32_SYSCALL_BIT + 93) -+#define __NR_lchown (__X32_SYSCALL_BIT + 94) -+#define __NR_umask (__X32_SYSCALL_BIT + 95) -+#define __NR_gettimeofday (__X32_SYSCALL_BIT + 96) -+#define __NR_getrlimit (__X32_SYSCALL_BIT + 97) -+#define __NR_getrusage (__X32_SYSCALL_BIT + 98) -+#define __NR_sysinfo (__X32_SYSCALL_BIT + 99) -+#define __NR_times (__X32_SYSCALL_BIT + 100) -+#define __NR_getuid (__X32_SYSCALL_BIT + 102) -+#define __NR_syslog (__X32_SYSCALL_BIT + 103) -+#define __NR_getgid (__X32_SYSCALL_BIT + 104) -+#define __NR_setuid (__X32_SYSCALL_BIT + 105) -+#define __NR_setgid (__X32_SYSCALL_BIT + 106) -+#define __NR_geteuid (__X32_SYSCALL_BIT + 107) -+#define __NR_getegid (__X32_SYSCALL_BIT + 108) -+#define __NR_setpgid (__X32_SYSCALL_BIT + 109) -+#define __NR_getppid (__X32_SYSCALL_BIT + 110) -+#define __NR_getpgrp (__X32_SYSCALL_BIT + 111) -+#define __NR_setsid (__X32_SYSCALL_BIT + 112) -+#define __NR_setreuid (__X32_SYSCALL_BIT + 113) -+#define __NR_setregid (__X32_SYSCALL_BIT + 114) -+#define __NR_getgroups (__X32_SYSCALL_BIT + 115) -+#define __NR_setgroups (__X32_SYSCALL_BIT + 116) -+#define __NR_setresuid (__X32_SYSCALL_BIT + 117) -+#define __NR_getresuid (__X32_SYSCALL_BIT + 118) -+#define __NR_setresgid (__X32_SYSCALL_BIT + 119) -+#define __NR_getresgid (__X32_SYSCALL_BIT + 120) -+#define __NR_getpgid (__X32_SYSCALL_BIT + 121) -+#define __NR_setfsuid (__X32_SYSCALL_BIT + 122) -+#define __NR_setfsgid (__X32_SYSCALL_BIT + 123) -+#define __NR_getsid (__X32_SYSCALL_BIT + 124) -+#define __NR_capget (__X32_SYSCALL_BIT + 125) -+#define __NR_capset (__X32_SYSCALL_BIT + 126) -+#define __NR_rt_sigsuspend (__X32_SYSCALL_BIT + 130) -+#define __NR_utime (__X32_SYSCALL_BIT + 132) -+#define __NR_mknod (__X32_SYSCALL_BIT + 133) -+#define __NR_personality (__X32_SYSCALL_BIT + 135) -+#define __NR_ustat (__X32_SYSCALL_BIT + 136) -+#define __NR_statfs (__X32_SYSCALL_BIT + 137) -+#define __NR_fstatfs (__X32_SYSCALL_BIT + 138) -+#define __NR_sysfs (__X32_SYSCALL_BIT + 139) -+#define __NR_getpriority (__X32_SYSCALL_BIT + 140) -+#define __NR_setpriority (__X32_SYSCALL_BIT + 141) -+#define __NR_sched_setparam (__X32_SYSCALL_BIT + 142) -+#define __NR_sched_getparam (__X32_SYSCALL_BIT + 143) -+#define __NR_sched_setscheduler (__X32_SYSCALL_BIT + 144) -+#define __NR_sched_getscheduler (__X32_SYSCALL_BIT + 145) -+#define __NR_sched_get_priority_max (__X32_SYSCALL_BIT + 146) -+#define __NR_sched_get_priority_min (__X32_SYSCALL_BIT + 147) -+#define __NR_sched_rr_get_interval (__X32_SYSCALL_BIT + 148) -+#define __NR_mlock (__X32_SYSCALL_BIT + 149) -+#define __NR_munlock (__X32_SYSCALL_BIT + 150) -+#define __NR_mlockall (__X32_SYSCALL_BIT + 151) -+#define __NR_munlockall (__X32_SYSCALL_BIT + 152) -+#define __NR_vhangup (__X32_SYSCALL_BIT + 153) -+#define __NR_modify_ldt (__X32_SYSCALL_BIT + 154) -+#define __NR_pivot_root (__X32_SYSCALL_BIT + 155) -+#define __NR_prctl (__X32_SYSCALL_BIT + 157) -+#define __NR_arch_prctl (__X32_SYSCALL_BIT + 158) -+#define __NR_adjtimex (__X32_SYSCALL_BIT + 159) -+#define __NR_setrlimit (__X32_SYSCALL_BIT + 160) -+#define __NR_chroot (__X32_SYSCALL_BIT + 161) -+#define __NR_sync (__X32_SYSCALL_BIT + 162) -+#define __NR_acct (__X32_SYSCALL_BIT + 163) -+#define __NR_settimeofday (__X32_SYSCALL_BIT + 164) -+#define __NR_mount (__X32_SYSCALL_BIT + 165) -+#define __NR_umount2 (__X32_SYSCALL_BIT + 166) -+#define __NR_swapon (__X32_SYSCALL_BIT + 167) -+#define __NR_swapoff (__X32_SYSCALL_BIT + 168) -+#define __NR_reboot (__X32_SYSCALL_BIT + 169) -+#define __NR_sethostname (__X32_SYSCALL_BIT + 170) -+#define __NR_setdomainname (__X32_SYSCALL_BIT + 171) -+#define __NR_iopl (__X32_SYSCALL_BIT + 172) -+#define __NR_ioperm (__X32_SYSCALL_BIT + 173) -+#define __NR_init_module (__X32_SYSCALL_BIT + 175) -+#define __NR_delete_module (__X32_SYSCALL_BIT + 176) -+#define __NR_quotactl (__X32_SYSCALL_BIT + 179) -+#define __NR_getpmsg (__X32_SYSCALL_BIT + 181) -+#define __NR_putpmsg (__X32_SYSCALL_BIT + 182) -+#define __NR_afs_syscall (__X32_SYSCALL_BIT + 183) -+#define __NR_tuxcall (__X32_SYSCALL_BIT + 184) -+#define __NR_security (__X32_SYSCALL_BIT + 185) -+#define __NR_gettid (__X32_SYSCALL_BIT + 186) -+#define __NR_readahead (__X32_SYSCALL_BIT + 187) -+#define __NR_setxattr (__X32_SYSCALL_BIT + 188) -+#define __NR_lsetxattr (__X32_SYSCALL_BIT + 189) -+#define __NR_fsetxattr (__X32_SYSCALL_BIT + 190) -+#define __NR_getxattr (__X32_SYSCALL_BIT + 191) -+#define __NR_lgetxattr (__X32_SYSCALL_BIT + 192) -+#define __NR_fgetxattr (__X32_SYSCALL_BIT + 193) -+#define __NR_listxattr (__X32_SYSCALL_BIT + 194) -+#define __NR_llistxattr (__X32_SYSCALL_BIT + 195) -+#define __NR_flistxattr (__X32_SYSCALL_BIT + 196) -+#define __NR_removexattr (__X32_SYSCALL_BIT + 197) -+#define __NR_lremovexattr (__X32_SYSCALL_BIT + 198) -+#define __NR_fremovexattr (__X32_SYSCALL_BIT + 199) -+#define __NR_tkill (__X32_SYSCALL_BIT + 200) -+#define __NR_time (__X32_SYSCALL_BIT + 201) -+#define __NR_futex (__X32_SYSCALL_BIT + 202) -+#define __NR_sched_setaffinity (__X32_SYSCALL_BIT + 203) -+#define __NR_sched_getaffinity (__X32_SYSCALL_BIT + 204) -+#define __NR_io_setup (__X32_SYSCALL_BIT + 206) -+#define __NR_io_destroy (__X32_SYSCALL_BIT + 207) -+#define __NR_io_getevents (__X32_SYSCALL_BIT + 208) -+#define __NR_io_submit (__X32_SYSCALL_BIT + 209) -+#define __NR_io_cancel (__X32_SYSCALL_BIT + 210) -+#define __NR_lookup_dcookie (__X32_SYSCALL_BIT + 212) -+#define __NR_epoll_create (__X32_SYSCALL_BIT + 213) -+#define __NR_remap_file_pages (__X32_SYSCALL_BIT + 216) -+#define __NR_getdents64 (__X32_SYSCALL_BIT + 217) -+#define __NR_set_tid_address (__X32_SYSCALL_BIT + 218) -+#define __NR_restart_syscall (__X32_SYSCALL_BIT + 219) -+#define __NR_semtimedop (__X32_SYSCALL_BIT + 220) -+#define __NR_fadvise64 (__X32_SYSCALL_BIT + 221) -+#define __NR_timer_settime (__X32_SYSCALL_BIT + 223) -+#define __NR_timer_gettime (__X32_SYSCALL_BIT + 224) -+#define __NR_timer_getoverrun (__X32_SYSCALL_BIT + 225) -+#define __NR_timer_delete (__X32_SYSCALL_BIT + 226) -+#define __NR_clock_settime (__X32_SYSCALL_BIT + 227) -+#define __NR_clock_gettime (__X32_SYSCALL_BIT + 228) -+#define __NR_clock_getres (__X32_SYSCALL_BIT + 229) -+#define __NR_clock_nanosleep (__X32_SYSCALL_BIT + 230) -+#define __NR_exit_group (__X32_SYSCALL_BIT + 231) -+#define __NR_epoll_wait (__X32_SYSCALL_BIT + 232) -+#define __NR_epoll_ctl (__X32_SYSCALL_BIT + 233) -+#define __NR_tgkill (__X32_SYSCALL_BIT + 234) -+#define __NR_utimes (__X32_SYSCALL_BIT + 235) -+#define __NR_mbind (__X32_SYSCALL_BIT + 237) -+#define __NR_set_mempolicy (__X32_SYSCALL_BIT + 238) -+#define __NR_get_mempolicy (__X32_SYSCALL_BIT + 239) -+#define __NR_mq_open (__X32_SYSCALL_BIT + 240) -+#define __NR_mq_unlink (__X32_SYSCALL_BIT + 241) -+#define __NR_mq_timedsend (__X32_SYSCALL_BIT + 242) -+#define __NR_mq_timedreceive (__X32_SYSCALL_BIT + 243) -+#define __NR_mq_getsetattr (__X32_SYSCALL_BIT + 245) -+#define __NR_add_key (__X32_SYSCALL_BIT + 248) -+#define __NR_request_key (__X32_SYSCALL_BIT + 249) -+#define __NR_keyctl (__X32_SYSCALL_BIT + 250) -+#define __NR_ioprio_set (__X32_SYSCALL_BIT + 251) -+#define __NR_ioprio_get (__X32_SYSCALL_BIT + 252) -+#define __NR_inotify_init (__X32_SYSCALL_BIT + 253) -+#define __NR_inotify_add_watch (__X32_SYSCALL_BIT + 254) -+#define __NR_inotify_rm_watch (__X32_SYSCALL_BIT + 255) -+#define __NR_migrate_pages (__X32_SYSCALL_BIT + 256) -+#define __NR_openat (__X32_SYSCALL_BIT + 257) -+#define __NR_mkdirat (__X32_SYSCALL_BIT + 258) -+#define __NR_mknodat (__X32_SYSCALL_BIT + 259) -+#define __NR_fchownat (__X32_SYSCALL_BIT + 260) -+#define __NR_futimesat (__X32_SYSCALL_BIT + 261) -+#define __NR_newfstatat (__X32_SYSCALL_BIT + 262) -+#define __NR_unlinkat (__X32_SYSCALL_BIT + 263) -+#define __NR_renameat (__X32_SYSCALL_BIT + 264) -+#define __NR_linkat (__X32_SYSCALL_BIT + 265) -+#define __NR_symlinkat (__X32_SYSCALL_BIT + 266) -+#define __NR_readlinkat (__X32_SYSCALL_BIT + 267) -+#define __NR_fchmodat (__X32_SYSCALL_BIT + 268) -+#define __NR_faccessat (__X32_SYSCALL_BIT + 269) -+#define __NR_pselect6 (__X32_SYSCALL_BIT + 270) -+#define __NR_ppoll (__X32_SYSCALL_BIT + 271) -+#define __NR_unshare (__X32_SYSCALL_BIT + 272) -+#define __NR_splice (__X32_SYSCALL_BIT + 275) -+#define __NR_tee (__X32_SYSCALL_BIT + 276) -+#define __NR_sync_file_range (__X32_SYSCALL_BIT + 277) -+#define __NR_utimensat (__X32_SYSCALL_BIT + 280) -+#define __NR_epoll_pwait (__X32_SYSCALL_BIT + 281) -+#define __NR_signalfd (__X32_SYSCALL_BIT + 282) -+#define __NR_timerfd_create (__X32_SYSCALL_BIT + 283) -+#define __NR_eventfd (__X32_SYSCALL_BIT + 284) -+#define __NR_fallocate (__X32_SYSCALL_BIT + 285) -+#define __NR_timerfd_settime (__X32_SYSCALL_BIT + 286) -+#define __NR_timerfd_gettime (__X32_SYSCALL_BIT + 287) -+#define __NR_accept4 (__X32_SYSCALL_BIT + 288) -+#define __NR_signalfd4 (__X32_SYSCALL_BIT + 289) -+#define __NR_eventfd2 (__X32_SYSCALL_BIT + 290) -+#define __NR_epoll_create1 (__X32_SYSCALL_BIT + 291) -+#define __NR_dup3 (__X32_SYSCALL_BIT + 292) -+#define __NR_pipe2 (__X32_SYSCALL_BIT + 293) -+#define __NR_inotify_init1 (__X32_SYSCALL_BIT + 294) -+#define __NR_perf_event_open (__X32_SYSCALL_BIT + 298) -+#define __NR_fanotify_init (__X32_SYSCALL_BIT + 300) -+#define __NR_fanotify_mark (__X32_SYSCALL_BIT + 301) -+#define __NR_prlimit64 (__X32_SYSCALL_BIT + 302) -+#define __NR_name_to_handle_at (__X32_SYSCALL_BIT + 303) -+#define __NR_open_by_handle_at (__X32_SYSCALL_BIT + 304) -+#define __NR_clock_adjtime (__X32_SYSCALL_BIT + 305) -+#define __NR_syncfs (__X32_SYSCALL_BIT + 306) -+#define __NR_setns (__X32_SYSCALL_BIT + 308) -+#define __NR_getcpu (__X32_SYSCALL_BIT + 309) -+#define __NR_kcmp (__X32_SYSCALL_BIT + 312) -+#define __NR_finit_module (__X32_SYSCALL_BIT + 313) -+#define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512) -+#define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513) -+#define __NR_ioctl (__X32_SYSCALL_BIT + 514) -+#define __NR_readv (__X32_SYSCALL_BIT + 515) -+#define __NR_writev (__X32_SYSCALL_BIT + 516) -+#define __NR_recvfrom (__X32_SYSCALL_BIT + 517) -+#define __NR_sendmsg (__X32_SYSCALL_BIT + 518) -+#define __NR_recvmsg (__X32_SYSCALL_BIT + 519) -+#define __NR_execve (__X32_SYSCALL_BIT + 520) -+#define __NR_ptrace (__X32_SYSCALL_BIT + 521) -+#define __NR_rt_sigpending (__X32_SYSCALL_BIT + 522) -+#define __NR_rt_sigtimedwait (__X32_SYSCALL_BIT + 523) -+#define __NR_rt_sigqueueinfo (__X32_SYSCALL_BIT + 524) -+#define __NR_sigaltstack (__X32_SYSCALL_BIT + 525) -+#define __NR_timer_create (__X32_SYSCALL_BIT + 526) -+#define __NR_mq_notify (__X32_SYSCALL_BIT + 527) -+#define __NR_kexec_load (__X32_SYSCALL_BIT + 528) -+#define __NR_waitid (__X32_SYSCALL_BIT + 529) -+#define __NR_set_robust_list (__X32_SYSCALL_BIT + 530) -+#define __NR_get_robust_list (__X32_SYSCALL_BIT + 531) -+#define __NR_vmsplice (__X32_SYSCALL_BIT + 532) -+#define __NR_move_pages (__X32_SYSCALL_BIT + 533) -+#define __NR_preadv (__X32_SYSCALL_BIT + 534) -+#define __NR_pwritev (__X32_SYSCALL_BIT + 535) -+#define __NR_rt_tgsigqueueinfo (__X32_SYSCALL_BIT + 536) -+#define __NR_recvmmsg (__X32_SYSCALL_BIT + 537) -+#define __NR_sendmmsg (__X32_SYSCALL_BIT + 538) -+#define __NR_process_vm_readv (__X32_SYSCALL_BIT + 539) -+#define __NR_process_vm_writev (__X32_SYSCALL_BIT + 540) -+#define __NR_setsockopt (__X32_SYSCALL_BIT + 541) -+#define __NR_getsockopt (__X32_SYSCALL_BIT + 542) -+ -+#undef __NR_fstatat -+#undef __NR_pread -+#undef __NR_pwrite -+#undef __NR_getdents -+#define __NR_fstatat __NR_newfstatat -+#define __NR_pread __NR_pread64 -+#define __NR_pwrite __NR_pwrite64 -+#define __NR_getdents __NR_getdents64 -+#define __NR_fadvise __NR_fadvise64 -+ -+ -+ -+/* Repeat with SYS_ prefix */ -+ -+ -+ -+#define SYS_read __NR_read -+#define SYS_write __NR_write -+#define SYS_open __NR_open -+#define SYS_close __NR_close -+#define SYS_stat __NR_stat -+#define SYS_fstat __NR_fstat -+#define SYS_lstat __NR_lstat -+#define SYS_poll __NR_poll -+#define SYS_lseek __NR_lseek -+#define SYS_mmap __NR_mmap -+#define SYS_mprotect __NR_mprotect -+#define SYS_munmap __NR_munmap -+#define SYS_brk __NR_brk -+#define SYS_rt_sigprocmask __NR_rt_sigprocmask -+#define SYS_pread64 __NR_pread64 -+#define SYS_pwrite64 __NR_pwrite64 -+#define SYS_access __NR_access -+#define SYS_pipe __NR_pipe -+#define SYS_select __NR_select -+#define SYS_sched_yield __NR_sched_yield -+#define SYS_mremap __NR_mremap -+#define SYS_msync __NR_msync -+#define SYS_mincore __NR_mincore -+#define SYS_madvise __NR_madvise -+#define SYS_shmget __NR_shmget -+#define SYS_shmat __NR_shmat -+#define SYS_shmctl __NR_shmctl -+#define SYS_dup __NR_dup -+#define SYS_dup2 __NR_dup2 -+#define SYS_pause __NR_pause -+#define SYS_nanosleep __NR_nanosleep -+#define SYS_getitimer __NR_getitimer -+#define SYS_alarm __NR_alarm -+#define SYS_setitimer __NR_setitimer -+#define SYS_getpid __NR_getpid -+#define SYS_sendfile __NR_sendfile -+#define SYS_socket __NR_socket -+#define SYS_connect __NR_connect -+#define SYS_accept __NR_accept -+#define SYS_sendto __NR_sendto -+#define SYS_shutdown __NR_shutdown -+#define SYS_bind __NR_bind -+#define SYS_listen __NR_listen -+#define SYS_getsockname __NR_getsockname -+#define SYS_getpeername __NR_getpeername -+#define SYS_socketpair __NR_socketpair -+#define SYS_clone __NR_clone -+#define SYS_fork __NR_fork -+#define SYS_vfork __NR_vfork -+#define SYS_exit __NR_exit -+#define SYS_wait4 __NR_wait4 -+#define SYS_kill __NR_kill -+#define SYS_uname __NR_uname -+#define SYS_semget __NR_semget -+#define SYS_semop __NR_semop -+#define SYS_semctl __NR_semctl -+#define SYS_shmdt __NR_shmdt -+#define SYS_msgget __NR_msgget -+#define SYS_msgsnd __NR_msgsnd -+#define SYS_msgrcv __NR_msgrcv -+#define SYS_msgctl __NR_msgctl -+#define SYS_fcntl __NR_fcntl -+#define SYS_flock __NR_flock -+#define SYS_fsync __NR_fsync -+#define SYS_fdatasync __NR_fdatasync -+#define SYS_truncate __NR_truncate -+#define SYS_ftruncate __NR_ftruncate -+#define SYS_getdents __NR_getdents -+#define SYS_getcwd __NR_getcwd -+#define SYS_chdir __NR_chdir -+#define SYS_fchdir __NR_fchdir -+#define SYS_rename __NR_rename -+#define SYS_mkdir __NR_mkdir -+#define SYS_rmdir __NR_rmdir -+#define SYS_creat __NR_creat -+#define SYS_link __NR_link -+#define SYS_unlink __NR_unlink -+#define SYS_symlink __NR_symlink -+#define SYS_readlink __NR_readlink -+#define SYS_chmod __NR_chmod -+#define SYS_fchmod __NR_fchmod -+#define SYS_chown __NR_chown -+#define SYS_fchown __NR_fchown -+#define SYS_lchown __NR_lchown -+#define SYS_umask __NR_umask -+#define SYS_gettimeofday __NR_gettimeofday -+#define SYS_getrlimit __NR_getrlimit -+#define SYS_getrusage __NR_getrusage -+#define SYS_sysinfo __NR_sysinfo -+#define SYS_times __NR_times -+#define SYS_getuid __NR_getuid -+#define SYS_syslog __NR_syslog -+#define SYS_getgid __NR_getgid -+#define SYS_setuid __NR_setuid -+#define SYS_setgid __NR_setgid -+#define SYS_geteuid __NR_geteuid -+#define SYS_getegid __NR_getegid -+#define SYS_setpgid __NR_setpgid -+#define SYS_getppid __NR_getppid -+#define SYS_getpgrp __NR_getpgrp -+#define SYS_setsid __NR_setsid -+#define SYS_setreuid __NR_setreuid -+#define SYS_setregid __NR_setregid -+#define SYS_getgroups __NR_getgroups -+#define SYS_setgroups __NR_setgroups -+#define SYS_setresuid __NR_setresuid -+#define SYS_getresuid __NR_getresuid -+#define SYS_setresgid __NR_setresgid -+#define SYS_getresgid __NR_getresgid -+#define SYS_getpgid __NR_getpgid -+#define SYS_setfsuid __NR_setfsuid -+#define SYS_setfsgid __NR_setfsgid -+#define SYS_getsid __NR_getsid -+#define SYS_capget __NR_capget -+#define SYS_capset __NR_capset -+#define SYS_rt_sigsuspend __NR_rt_sigsuspend -+#define SYS_utime __NR_utime -+#define SYS_mknod __NR_mknod -+#define SYS_personality __NR_personality -+#define SYS_ustat __NR_ustat -+#define SYS_statfs __NR_statfs -+#define SYS_fstatfs __NR_fstatfs -+#define SYS_sysfs __NR_sysfs -+#define SYS_getpriority __NR_getpriority -+#define SYS_setpriority __NR_setpriority -+#define SYS_sched_setparam __NR_sched_setparam -+#define SYS_sched_getparam __NR_sched_getparam -+#define SYS_sched_setscheduler __NR_sched_setscheduler -+#define SYS_sched_getscheduler __NR_sched_getscheduler -+#define SYS_sched_get_priority_max __NR_sched_get_priority_max -+#define SYS_sched_get_priority_min __NR_sched_get_priority_min -+#define SYS_sched_rr_get_interval __NR_sched_rr_get_interval -+#define SYS_mlock __NR_mlock -+#define SYS_munlock __NR_munlock -+#define SYS_mlockall __NR_mlockall -+#define SYS_munlockall __NR_munlockall -+#define SYS_vhangup __NR_vhangup -+#define SYS_modify_ldt __NR_modify_ldt -+#define SYS_pivot_root __NR_pivot_root -+#define SYS_prctl __NR_prctl -+#define SYS_arch_prctl __NR_arch_prctl -+#define SYS_adjtimex __NR_adjtimex -+#define SYS_setrlimit __NR_setrlimit -+#define SYS_chroot __NR_chroot -+#define SYS_sync __NR_sync -+#define SYS_acct __NR_acct -+#define SYS_settimeofday __NR_settimeofday -+#define SYS_mount __NR_mount -+#define SYS_umount2 __NR_umount2 -+#define SYS_swapon __NR_swapon -+#define SYS_swapoff __NR_swapoff -+#define SYS_reboot __NR_reboot -+#define SYS_sethostname __NR_sethostname -+#define SYS_setdomainname __NR_setdomainname -+#define SYS_iopl __NR_iopl -+#define SYS_ioperm __NR_ioperm -+#define SYS_init_module __NR_init_module -+#define SYS_delete_module __NR_delete_module -+#define SYS_quotactl __NR_quotactl -+#define SYS_getpmsg __NR_getpmsg -+#define SYS_putpmsg __NR_putpmsg -+#define SYS_afs_syscall __NR_afs_syscall -+#define SYS_tuxcall __NR_tuxcall -+#define SYS_security __NR_security -+#define SYS_gettid __NR_gettid -+#define SYS_readahead __NR_readahead -+#define SYS_setxattr __NR_setxattr -+#define SYS_lsetxattr __NR_lsetxattr -+#define SYS_fsetxattr __NR_fsetxattr -+#define SYS_getxattr __NR_getxattr -+#define SYS_lgetxattr __NR_lgetxattr -+#define SYS_fgetxattr __NR_fgetxattr -+#define SYS_listxattr __NR_listxattr -+#define SYS_llistxattr __NR_llistxattr -+#define SYS_flistxattr __NR_flistxattr -+#define SYS_removexattr __NR_removexattr -+#define SYS_lremovexattr __NR_lremovexattr -+#define SYS_fremovexattr __NR_fremovexattr -+#define SYS_tkill __NR_tkill -+#define SYS_time __NR_time -+#define SYS_futex __NR_futex -+#define SYS_sched_setaffinity __NR_sched_setaffinity -+#define SYS_sched_getaffinity __NR_sched_getaffinity -+#define SYS_io_setup __NR_io_setup -+#define SYS_io_destroy __NR_io_destroy -+#define SYS_io_getevents __NR_io_getevents -+#define SYS_io_submit __NR_io_submit -+#define SYS_io_cancel __NR_io_cancel -+#define SYS_lookup_dcookie __NR_lookup_dcookie -+#define SYS_epoll_create __NR_epoll_create -+#define SYS_remap_file_pages __NR_remap_file_pages -+#define SYS_getdents64 __NR_getdents64 -+#define SYS_set_tid_address __NR_set_tid_address -+#define SYS_restart_syscall __NR_restart_syscall -+#define SYS_semtimedop __NR_semtimedop -+#define SYS_fadvise64 __NR_fadvise64 -+#define SYS_timer_settime __NR_timer_settime -+#define SYS_timer_gettime __NR_timer_gettime -+#define SYS_timer_getoverrun __NR_timer_getoverrun -+#define SYS_timer_delete __NR_timer_delete -+#define SYS_clock_settime __NR_clock_settime -+#define SYS_clock_gettime __NR_clock_gettime -+#define SYS_clock_getres __NR_clock_getres -+#define SYS_clock_nanosleep __NR_clock_nanosleep -+#define SYS_exit_group __NR_exit_group -+#define SYS_epoll_wait __NR_epoll_wait -+#define SYS_epoll_ctl __NR_epoll_ctl -+#define SYS_tgkill __NR_tgkill -+#define SYS_utimes __NR_utimes -+#define SYS_mbind __NR_mbind -+#define SYS_set_mempolicy __NR_set_mempolicy -+#define SYS_get_mempolicy __NR_get_mempolicy -+#define SYS_mq_open __NR_mq_open -+#define SYS_mq_unlink __NR_mq_unlink -+#define SYS_mq_timedsend __NR_mq_timedsend -+#define SYS_mq_timedreceive __NR_mq_timedreceive -+#define SYS_mq_getsetattr __NR_mq_getsetattr -+#define SYS_add_key __NR_add_key -+#define SYS_request_key __NR_request_key -+#define SYS_keyctl __NR_keyctl -+#define SYS_ioprio_set __NR_ioprio_set -+#define SYS_ioprio_get __NR_ioprio_get -+#define SYS_inotify_init __NR_inotify_init -+#define SYS_inotify_add_watch __NR_inotify_add_watch -+#define SYS_inotify_rm_watch __NR_inotify_rm_watch -+#define SYS_migrate_pages __NR_migrate_pages -+#define SYS_openat __NR_openat -+#define SYS_mkdirat __NR_mkdirat -+#define SYS_mknodat __NR_mknodat -+#define SYS_fchownat __NR_fchownat -+#define SYS_futimesat __NR_futimesat -+#define SYS_newfstatat __NR_newfstatat -+#define SYS_unlinkat __NR_unlinkat -+#define SYS_renameat __NR_renameat -+#define SYS_linkat __NR_linkat -+#define SYS_symlinkat __NR_symlinkat -+#define SYS_readlinkat __NR_readlinkat -+#define SYS_fchmodat __NR_fchmodat -+#define SYS_faccessat __NR_faccessat -+#define SYS_pselect6 __NR_pselect6 -+#define SYS_ppoll __NR_ppoll -+#define SYS_unshare __NR_unshare -+#define SYS_splice __NR_splice -+#define SYS_tee __NR_tee -+#define SYS_sync_file_range __NR_sync_file_range -+#define SYS_utimensat __NR_utimensat -+#define SYS_epoll_pwait __NR_epoll_pwait -+#define SYS_signalfd __NR_signalfd -+#define SYS_timerfd_create __NR_timerfd_create -+#define SYS_eventfd __NR_eventfd -+#define SYS_fallocate __NR_fallocate -+#define SYS_timerfd_settime __NR_timerfd_settime -+#define SYS_timerfd_gettime __NR_timerfd_gettime -+#define SYS_accept4 __NR_accept4 -+#define SYS_signalfd4 __NR_signalfd4 -+#define SYS_eventfd2 __NR_eventfd2 -+#define SYS_epoll_create1 __NR_epoll_create1 -+#define SYS_dup3 __NR_dup3 -+#define SYS_pipe2 __NR_pipe2 -+#define SYS_inotify_init1 __NR_inotify_init1 -+#define SYS_perf_event_open __NR_perf_event_open -+#define SYS_fanotify_init __NR_fanotify_init -+#define SYS_fanotify_mark __NR_fanotify_mark -+#define SYS_prlimit64 __NR_prlimit64 -+#define SYS_name_to_handle_at __NR_name_to_handle_at -+#define SYS_open_by_handle_at __NR_open_by_handle_at -+#define SYS_clock_adjtime __NR_clock_adjtime -+#define SYS_syncfs __NR_syncfs -+#define SYS_setns __NR_setns -+#define SYS_getcpu __NR_getcpu -+#define SYS_kcmp __NR_kcmp -+#define SYS_finit_module __NR_finit_module -+#define SYS_rt_sigaction __NR_rt_sigaction -+#define SYS_rt_sigreturn __NR_rt_sigreturn -+#define SYS_ioctl __NR_ioctl -+#define SYS_readv __NR_readv -+#define SYS_writev __NR_writev -+#define SYS_recvfrom __NR_recvfrom -+#define SYS_sendmsg __NR_sendmsg -+#define SYS_recvmsg __NR_recvmsg -+#define SYS_execve __NR_execve -+#define SYS_ptrace __NR_ptrace -+#define SYS_rt_sigpending __NR_rt_sigpending -+#define SYS_rt_sigtimedwait __NR_rt_sigtimedwait -+#define SYS_rt_sigqueueinfo __NR_rt_sigqueueinfo -+#define SYS_sigaltstack __NR_sigaltstack -+#define SYS_timer_create __NR_timer_create -+#define SYS_mq_notify __NR_mq_notify -+#define SYS_kexec_load __NR_kexec_load -+#define SYS_waitid __NR_waitid -+#define SYS_set_robust_list __NR_set_robust_list -+#define SYS_get_robust_list __NR_get_robust_list -+#define SYS_vmsplice __NR_vmsplice -+#define SYS_move_pages __NR_move_pages -+#define SYS_preadv __NR_preadv -+#define SYS_pwritev __NR_pwritev -+#define SYS_rt_tgsigqueueinfo __NR_rt_tgsigqueueinfo -+#define SYS_recvmmsg __NR_recvmmsg -+#define SYS_sendmmsg __NR_sendmmsg -+#define SYS_process_vm_readv __NR_process_vm_readv -+#define SYS_process_vm_writev __NR_process_vm_writev -+#define SYS_setsockopt __NR_setsockopt -+#define SYS_getsockopt __NR_getsockopt -+ -+#undef SYS_fstatat -+#undef SYS_pread -+#undef SYS_pwrite -+#undef SYS_getdents -+#define SYS_fstatat SYS_newfstatat -+#define SYS_pread SYS_pread64 -+#define SYS_pwrite SYS_pwrite64 -+#define SYS_getdents SYS_getdents64 -+#define SYS_fadvise SYS_fadvise64 -diff -Nur musl-0.9.15/arch/x32/bits/termios.h musl-git/arch/x32/bits/termios.h ---- musl-0.9.15/arch/x32/bits/termios.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/termios.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,160 @@ -+struct termios -+{ -+ tcflag_t c_iflag; -+ tcflag_t c_oflag; -+ tcflag_t c_cflag; -+ tcflag_t c_lflag; -+ cc_t c_line; -+ cc_t c_cc[NCCS]; -+ speed_t __c_ispeed; -+ speed_t __c_ospeed; -+}; -+ -+#define VINTR 0 -+#define VQUIT 1 -+#define VERASE 2 -+#define VKILL 3 -+#define VEOF 4 -+#define VTIME 5 -+#define VMIN 6 -+#define VSWTC 7 -+#define VSTART 8 -+#define VSTOP 9 -+#define VSUSP 10 -+#define VEOL 11 -+#define VREPRINT 12 -+#define VDISCARD 13 -+#define VWERASE 14 -+#define VLNEXT 15 -+#define VEOL2 16 -+ -+#define IGNBRK 0000001 -+#define BRKINT 0000002 -+#define IGNPAR 0000004 -+#define PARMRK 0000010 -+#define INPCK 0000020 -+#define ISTRIP 0000040 -+#define INLCR 0000100 -+#define IGNCR 0000200 -+#define ICRNL 0000400 -+#define IUCLC 0001000 -+#define IXON 0002000 -+#define IXANY 0004000 -+#define IXOFF 0010000 -+#define IMAXBEL 0020000 -+#define IUTF8 0040000 -+ -+#define OPOST 0000001 -+#define OLCUC 0000002 -+#define ONLCR 0000004 -+#define OCRNL 0000010 -+#define ONOCR 0000020 -+#define ONLRET 0000040 -+#define OFILL 0000100 -+#define OFDEL 0000200 -+#define NLDLY 0000400 -+#define NL0 0000000 -+#define NL1 0000400 -+#define CRDLY 0003000 -+#define CR0 0000000 -+#define CR1 0001000 -+#define CR2 0002000 -+#define CR3 0003000 -+#define TABDLY 0014000 -+#define TAB0 0000000 -+#define TAB1 0004000 -+#define TAB2 0010000 -+#define TAB3 0014000 -+#define BSDLY 0020000 -+#define BS0 0000000 -+#define BS1 0020000 -+#define FFDLY 0100000 -+#define FF0 0000000 -+#define FF1 0100000 -+ -+#define VTDLY 0040000 -+#define VT0 0000000 -+#define VT1 0040000 -+ -+#define B0 0000000 -+#define B50 0000001 -+#define B75 0000002 -+#define B110 0000003 -+#define B134 0000004 -+#define B150 0000005 -+#define B200 0000006 -+#define B300 0000007 -+#define B600 0000010 -+#define B1200 0000011 -+#define B1800 0000012 -+#define B2400 0000013 -+#define B4800 0000014 -+#define B9600 0000015 -+#define B19200 0000016 -+#define B38400 0000017 -+ -+#define B57600 0010001 -+#define B115200 0010002 -+#define B230400 0010003 -+#define B460800 0010004 -+#define B500000 0010005 -+#define B576000 0010006 -+#define B921600 0010007 -+#define B1000000 0010010 -+#define B1152000 0010011 -+#define B1500000 0010012 -+#define B2000000 0010013 -+#define B2500000 0010014 -+#define B3000000 0010015 -+#define B3500000 0010016 -+#define B4000000 0010017 -+ -+#define CBAUD 0010017 -+ -+#define CSIZE 0000060 -+#define CS5 0000000 -+#define CS6 0000020 -+#define CS7 0000040 -+#define CS8 0000060 -+#define CSTOPB 0000100 -+#define CREAD 0000200 -+#define PARENB 0000400 -+#define PARODD 0001000 -+#define HUPCL 0002000 -+#define CLOCAL 0004000 -+ -+#define ISIG 0000001 -+#define ICANON 0000002 -+#define ECHO 0000010 -+#define ECHOE 0000020 -+#define ECHOK 0000040 -+#define ECHONL 0000100 -+#define NOFLSH 0000200 -+#define TOSTOP 0000400 -+#define IEXTEN 0100000 -+ -+#define ECHOCTL 0001000 -+#define ECHOPRT 0002000 -+#define ECHOKE 0004000 -+#define FLUSHO 0010000 -+#define PENDIN 0040000 -+ -+#define TCOOFF 0 -+#define TCOON 1 -+#define TCIOFF 2 -+#define TCION 3 -+ -+#define TCIFLUSH 0 -+#define TCOFLUSH 1 -+#define TCIOFLUSH 2 -+ -+#define TCSANOW 0 -+#define TCSADRAIN 1 -+#define TCSAFLUSH 2 -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define CBAUDEX 0010000 -+#define CRTSCTS 020000000000 -+#define EXTPROC 0200000 -+#define XTABS 0014000 -+#endif -diff -Nur musl-0.9.15/arch/x32/bits/user.h musl-git/arch/x32/bits/user.h ---- musl-0.9.15/arch/x32/bits/user.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/bits/user.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,44 @@ -+#undef __WORDSIZE -+#define __WORDSIZE 64 -+ -+typedef struct user_fpregs_struct -+{ -+ uint16_t cwd, swd, ftw, fop; -+ uint64_t rip, rdp; -+ uint32_t mxcsr, mxcs_mask; -+ uint32_t st_space[32], xmm_space[64], padding[24]; -+} elf_fpregset_t; -+ -+struct user_regs_struct -+{ -+ unsigned long r15, r14, r13, r12, rbp, rbx, r11, r10, r9, r8; -+ unsigned long rax, rcx, rdx, rsi, rdi, orig_rax, rip; -+ unsigned long cs, eflags, rsp, ss, fs_base, gs_base, ds, es, fs, gs; -+}; -+#define ELF_NGREG 27 -+typedef unsigned long long elf_greg_t, elf_gregset_t[ELF_NGREG]; -+ -+struct user -+{ -+ struct user_regs_struct regs; -+ int u_fpvalid; -+ struct user_fpregs_struct i387; -+ unsigned long u_tsize; -+ unsigned long u_dsize; -+ unsigned long u_ssize; -+ unsigned long start_code; -+ unsigned long start_stack; -+ long signal; -+ int reserved; -+ struct user_regs_struct *u_ar0; -+ struct user_fpregs_struct *u_fpstate; -+ unsigned long magic; -+ char u_comm[32]; -+ unsigned long u_debugreg[8]; -+}; -+ -+#define PAGE_MASK (~(PAGE_SIZE-1)) -+#define NBPG PAGE_SIZE -+#define UPAGES 1 -+#define HOST_TEXT_START_ADDR (u.start_code) -+#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG) -diff -Nur musl-0.9.15/arch/x32/crt_arch.h musl-git/arch/x32/crt_arch.h ---- musl-0.9.15/arch/x32/crt_arch.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/crt_arch.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,9 @@ -+__asm__("\ -+.text \n\ -+.global _start \n\ -+_start: \n\ -+ xor %rbp,%rbp \n\ -+ mov %rsp,%rdi \n\ -+ andq $-16,%rsp \n\ -+ call __cstart \n\ -+"); -diff -Nur musl-0.9.15/arch/x32/pthread_arch.h musl-git/arch/x32/pthread_arch.h ---- musl-0.9.15/arch/x32/pthread_arch.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/pthread_arch.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,10 @@ -+static inline struct pthread *__pthread_self() -+{ -+ struct pthread *self; -+ __asm__ __volatile__ ("mov %%fs:0,%0" : "=r" (self) ); -+ return self; -+} -+ -+#define TP_ADJ(p) (p) -+ -+#define CANCEL_REG_IP 16 -diff -Nur musl-0.9.15/arch/x32/reloc.h musl-git/arch/x32/reloc.h ---- musl-0.9.15/arch/x32/reloc.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/reloc.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,46 @@ -+#include -+#include -+#include -+ -+#define LDSO_ARCH "x32" -+ -+#define IS_COPY(x) ((x)==R_X86_64_COPY) -+#define IS_PLT(x) ((x)==R_X86_64_JUMP_SLOT) -+ -+static inline void do_single_reloc( -+ struct dso *self, unsigned char *base_addr, -+ size_t *reloc_addr, int type, size_t addend, -+ Sym *sym, size_t sym_size, -+ struct symdef def, size_t sym_val) -+{ -+ switch(type) { -+ case R_X86_64_GLOB_DAT: -+ case R_X86_64_JUMP_SLOT: -+ case R_X86_64_64: -+ *reloc_addr = sym_val + addend; -+ break; -+ case R_X86_64_32: -+ *(uint32_t *)reloc_addr = sym_val + addend; -+ break; -+ case R_X86_64_PC32: -+ *reloc_addr = sym_val + addend - (size_t)reloc_addr + (size_t)base_addr; -+ break; -+ case R_X86_64_RELATIVE: -+ *reloc_addr = (size_t)base_addr + addend; -+ break; -+ case R_X86_64_COPY: -+ memcpy(reloc_addr, (void *)sym_val, sym_size); -+ break; -+ case R_X86_64_DTPMOD64: -+ *reloc_addr = def.dso ? def.dso->tls_id : self->tls_id; -+ break; -+ case R_X86_64_DTPOFF64: -+ *reloc_addr = def.sym->st_value + addend; -+ break; -+ case R_X86_64_TPOFF64: -+ *reloc_addr = (def.sym -+ ? def.sym->st_value - def.dso->tls_offset -+ : 0 - self->tls_offset) + addend; -+ break; -+ } -+} -diff -Nur musl-0.9.15/arch/x32/src/syscall_cp_fixup.c musl-git/arch/x32/src/syscall_cp_fixup.c ---- musl-0.9.15/arch/x32/src/syscall_cp_fixup.c 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/src/syscall_cp_fixup.c 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,31 @@ -+#include -+long __syscall_cp_internal(volatile void*, long long, long long, long long, long long, -+ long long, long long, long long); -+ -+struct __timespec { long long tv_sec; long tv_nsec; }; -+struct __timespec_kernel { long long tv_sec; long long tv_nsec; }; -+#define __tsc(X) ((struct __timespec*)(unsigned long)(X)) -+#define __fixup(X) do { if(X) X = (unsigned long) (&(struct __timespec_kernel) \ -+ { .tv_sec = __tsc(X)->tv_sec, .tv_nsec = __tsc(X)->tv_nsec}); } while(0) -+ -+long __syscall_cp_asm (volatile void * foo, long long n, long long a1, long long a2, long long a3, -+ long long a4, long long a5, long long a6) { -+ switch (n) { -+ case SYS_mq_timedsend: case SYS_mq_timedreceive: case SYS_pselect6: -+ __fixup(a5); -+ break; -+ case SYS_futex: -+ if((a2 & (~128 /* FUTEX_PRIVATE_FLAG */)) == 0 /* FUTEX_WAIT */) -+ __fixup(a4); -+ break; -+ case SYS_clock_nanosleep: -+ case SYS_rt_sigtimedwait: case SYS_ppoll: -+ __fixup(a3); -+ break; -+ case SYS_nanosleep: -+ __fixup(a1); -+ break; -+ } -+ return __syscall_cp_internal(foo, n, a1, a2, a3, a4, a5, a6); -+} -+ -diff -Nur musl-0.9.15/arch/x32/src/sysinfo.c musl-git/arch/x32/src/sysinfo.c ---- musl-0.9.15/arch/x32/src/sysinfo.c 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/src/sysinfo.c 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,47 @@ -+#include -+#include "syscall.h" -+ -+#define klong long long -+#define kulong unsigned long long -+ -+struct kernel_sysinfo { -+ klong uptime; -+ kulong loads[3]; -+ kulong totalram; -+ kulong freeram; -+ kulong sharedram; -+ kulong bufferram; -+ kulong totalswap; -+ kulong freeswap; -+ short procs; -+ short pad; -+ kulong totalhigh; -+ kulong freehigh; -+ unsigned mem_unit; -+}; -+ -+int __x32_sysinfo(struct sysinfo *info) -+{ -+ struct kernel_sysinfo tmp; -+ int ret = syscall(SYS_sysinfo, &tmp); -+ if(ret == -1) return ret; -+ info->uptime = tmp.uptime; -+ info->loads[0] = tmp.loads[0]; -+ info->loads[1] = tmp.loads[1]; -+ info->loads[2] = tmp.loads[2]; -+ kulong shifts; -+ kulong max = tmp.totalram | tmp.totalswap; -+ __asm__("bsr %1,%0" : "=r"(shifts) : "r"(max)); -+ shifts = shifts >= 32 ? shifts - 31 : 0; -+ info->totalram = tmp.totalram >> shifts; -+ info->freeram = tmp.freeram >> shifts; -+ info->sharedram = tmp.sharedram >> shifts; -+ info->bufferram = tmp.bufferram >> shifts; -+ info->totalswap = tmp.totalswap >> shifts; -+ info->freeswap = tmp.freeswap >> shifts; -+ info->procs = tmp.procs ; -+ info->totalhigh = tmp.totalhigh >> shifts; -+ info->freehigh = tmp.freehigh >> shifts; -+ info->mem_unit = (tmp.mem_unit ? tmp.mem_unit : 1) << shifts; -+ return ret; -+} -diff -Nur musl-0.9.15/arch/x32/syscall_arch.h musl-git/arch/x32/syscall_arch.h ---- musl-0.9.15/arch/x32/syscall_arch.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x32/syscall_arch.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,117 @@ -+#define __SYSCALL_LL_E(x) (x) -+#define __SYSCALL_LL_O(x) (x) -+ -+#define __scc(X) sizeof(1?(X):0ULL) < 8 ? (unsigned long) (X) : (long long) (X) -+typedef long long syscall_arg_t; -+struct __timespec { long long tv_sec; long tv_nsec; }; -+struct __timespec_kernel { long long tv_sec; long long tv_nsec; }; -+#define __tsc(X) ((struct __timespec*)(unsigned long)(X)) -+#define __fixup(X) do { if(X) X = (unsigned long) (&(struct __timespec_kernel) \ -+ { .tv_sec = __tsc(X)->tv_sec, .tv_nsec = __tsc(X)->tv_nsec}); } while(0) -+#define __fixup_case_2 \ -+ case SYS_nanosleep: \ -+ __fixup(a1); break; \ -+ case SYS_clock_settime: \ -+ __fixup(a2); break; -+#define __fixup_case_3 \ -+ case SYS_clock_nanosleep: case SYS_rt_sigtimedwait: case SYS_ppoll: \ -+ __fixup(a3); break; \ -+ case SYS_utimensat: \ -+ if(a3) a3 = (unsigned long) ((struct __timespec_kernel[2]) { \ -+ [0] = {.tv_sec = __tsc(a3)[0].tv_sec, .tv_nsec = __tsc(a3)[0].tv_nsec}, \ -+ [1] = {.tv_sec = __tsc(a3)[1].tv_sec, .tv_nsec = __tsc(a3)[1].tv_nsec}, \ -+ }); break; -+#define __fixup_case_4 \ -+ case SYS_futex: \ -+ if((a2 & (~128 /* FUTEX_PRIVATE_FLAG */)) == 0 /* FUTEX_WAIT */) __fixup(a4); break; -+#define __fixup_case_5 \ -+ case SYS_mq_timedsend: case SYS_mq_timedreceive: case SYS_pselect6: \ -+ __fixup(a5); break; -+ -+static __inline long __syscall0(long long n) -+{ -+ unsigned long ret; -+ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n) : "rcx", "r11", "memory"); -+ return ret; -+} -+ -+static __inline long __syscall1(long long n, long long a1) -+{ -+ unsigned long ret; -+ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1) : "rcx", "r11", "memory"); -+ return ret; -+} -+ -+static __inline long __syscall2(long long n, long long a1, long long a2) -+{ -+ unsigned long ret; -+ struct __timespec *ts2 = 0; -+ switch (n) { -+ __fixup_case_2; -+ } -+ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2) -+ : "rcx", "r11", "memory"); -+ return ret; -+} -+ -+static __inline long __syscall3(long long n, long long a1, long long a2, long long a3) -+{ -+ unsigned long ret; -+ switch (n) { -+ __fixup_case_2; -+ __fixup_case_3; -+ } -+ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), -+ "d"(a3) : "rcx", "r11", "memory"); -+ return ret; -+} -+ -+static __inline long __syscall4(long long n, long long a1, long long a2, long long a3, -+ long long a4_) -+{ -+ unsigned long ret; -+ register long long a4 __asm__("r10") = a4_; -+ switch (n) { -+ __fixup_case_2; -+ __fixup_case_3; -+ __fixup_case_4; -+ } -+ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), -+ "d"(a3), "r"(a4): "rcx", "r11", "memory"); -+ return ret; -+} -+ -+static __inline long __syscall5(long long n, long long a1, long long a2, long long a3, -+ long long a4_, long long a5_) -+{ -+ unsigned long ret; -+ register long long a4 __asm__("r10") = a4_; -+ register long long a5 __asm__("r8") = a5_; -+ switch (n) { -+ __fixup_case_2; -+ __fixup_case_3; -+ __fixup_case_4; -+ __fixup_case_5; -+ } -+ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), -+ "d"(a3), "r"(a4), "r"(a5) : "rcx", "r11", "memory"); -+ return ret; -+} -+ -+static __inline long __syscall6(long long n, long long a1, long long a2, long long a3, -+ long long a4_, long long a5_, long long a6_) -+{ -+ unsigned long ret; -+ register long long a4 __asm__("r10") = a4_; -+ register long long a5 __asm__("r8") = a5_; -+ register long long a6 __asm__("r9") = a6_; -+ switch (n) { -+ __fixup_case_2; -+ __fixup_case_3; -+ __fixup_case_4; -+ __fixup_case_5; -+ } -+ __asm__ __volatile__ ("syscall" : "=a"(ret) : "a"(n), "D"(a1), "S"(a2), -+ "d"(a3), "r"(a4), "r"(a5), "r"(a6) : "rcx", "r11", "memory"); -+ return ret; -+} -diff -Nur musl-0.9.15/arch/x86_64/atomic.h musl-git/arch/x86_64/atomic.h ---- musl-0.9.15/arch/x86_64/atomic.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/x86_64/atomic.h 2014-03-19 07:42:48.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/sem.h musl-git/arch/x86_64/bits/sem.h ---- musl-0.9.15/arch/x86_64/bits/sem.h 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/arch/x86_64/bits/sem.h 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,16 @@ -+struct semid_ds { -+ struct ipc_perm sem_perm; -+ 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(time_t)-sizeof(short)]; -+#else -+ char __sem_nsems_pad[sizeof(time_t)-sizeof(short)]; -+ unsigned short sem_nsems; -+#endif -+ time_t __unused3; -+ time_t __unused4; -+}; -diff -Nur musl-0.9.15/arch/x86_64/bits/shm.h musl-git/arch/x86_64/bits/shm.h ---- musl-0.9.15/arch/x86_64/bits/shm.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/x86_64/bits/shm.h 2014-03-19 07:42:48.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/signal.h musl-git/arch/x86_64/bits/signal.h ---- musl-0.9.15/arch/x86_64/bits/signal.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/x86_64/bits/signal.h 2014-03-19 07:42:48.000000000 +0100 -@@ -60,6 +60,12 @@ - } mcontext_t; - #endif - -+struct sigaltstack { -+ void *ss_sp; -+ int ss_flags; -+ size_t ss_size; -+}; -+ - typedef struct __ucontext { - unsigned long uc_flags; - struct __ucontext *uc_link; -diff -Nur musl-0.9.15/arch/x86_64/bits/stat.h musl-git/arch/x86_64/bits/stat.h ---- musl-0.9.15/arch/x86_64/bits/stat.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/x86_64/bits/stat.h 2014-03-19 07:42:48.000000000 +0100 -@@ -2,7 +2,7 @@ - * by the corresponding correctly-sized userspace types. */ - - struct stat { -- unsigned long st_dev; -+ dev_t st_dev; - ino_t st_ino; - nlink_t st_nlink; - -diff -Nur musl-0.9.15/arch/x86_64/bits/termios.h musl-git/arch/x86_64/bits/termios.h ---- musl-0.9.15/arch/x86_64/bits/termios.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/x86_64/bits/termios.h 2014-03-19 07:42:48.000000000 +0100 -@@ -42,6 +42,7 @@ - #define IXANY 0004000 - #define IXOFF 0010000 - #define IMAXBEL 0020000 -+#define IUTF8 0040000 - - #define OPOST 0000001 - #define OLCUC 0000002 -@@ -75,9 +76,6 @@ - #define VT0 0000000 - #define VT1 0040000 - --/* ?? */ --#define XTABS 0014000 -- - #define B0 0000000 - #define B50 0000001 - #define B75 0000002 -@@ -125,8 +123,6 @@ - #define HUPCL 0002000 - #define CLOCAL 0004000 - --#define CRTSCTS 020000000000 -- - #define ISIG 0000001 - #define ICANON 0000002 - #define ECHO 0000010 -@@ -137,14 +133,11 @@ - #define TOSTOP 0000400 - #define IEXTEN 0100000 - --/* Extensions? */ --#define CBAUDEX 0010000 - #define ECHOCTL 0001000 - #define ECHOPRT 0002000 - #define ECHOKE 0004000 - #define FLUSHO 0010000 - #define PENDIN 0040000 --#define EXTPROC 0200000 - - #define TCOOFF 0 - #define TCOON 1 -@@ -158,3 +151,10 @@ - #define TCSANOW 0 - #define TCSADRAIN 1 - #define TCSAFLUSH 2 -+ -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+#define CBAUDEX 0010000 -+#define CRTSCTS 020000000000 -+#define EXTPROC 0200000 -+#define XTABS 0014000 -+#endif -diff -Nur musl-0.9.15/arch/x86_64/pthread_arch.h musl-git/arch/x86_64/pthread_arch.h ---- musl-0.9.15/arch/x86_64/pthread_arch.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/arch/x86_64/pthread_arch.h 2014-03-19 07:42:48.000000000 +0100 -@@ -1,7 +1,7 @@ - static inline struct pthread *__pthread_self() - { - struct pthread *self; -- __asm__ __volatile__ ("movq %%fs:0,%0" : "=r" (self) ); -+ __asm__ __volatile__ ("mov %%fs:0,%0" : "=r" (self) ); - return self; - } - -diff -Nur musl-0.9.15/configure musl-git/configure ---- musl-0.9.15/configure 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/configure 2014-03-19 07:42:48.000000000 +0100 -@@ -222,12 +222,16 @@ - # Convert to just ARCH - # - case "$target" in -+# Catch these early to simplify matching for 32-bit archs -+mips64*|powerpc64*) fail "$0: unsupported target \"$target\"" ;; - arm*) ARCH=arm ;; - i?86*) ARCH=i386 ;; -+x86_64-x32*|x32*|x86_64*x32) ARCH=x32 ;; - x86_64*) ARCH=x86_64 ;; --mips-*|mipsel-*) ARCH=mips ;; --microblaze-*) ARCH=microblaze ;; --powerpc-*) ARCH=powerpc ;; -+mips*) ARCH=mips ;; -+microblaze*) ARCH=microblaze ;; -+powerpc*) ARCH=powerpc ;; -+sh[1-9bel-]*|sh|superh*) ARCH=sh ;; - unknown) fail "$0: unable to detect target arch; try $0 --target=..." ;; - *) fail "$0: unknown or unsupported target \"$target\"" ;; - esac -@@ -381,6 +385,7 @@ - tryflag CFLAGS_AUTO -Wno-unused-value - tryflag CFLAGS_AUTO -Wno-unused-but-set-variable - tryflag CFLAGS_AUTO -Wno-unknown-pragmas -+tryflag CFLAGS_AUTO -Wno-pointer-to-int-cast - fi - - # Some patched GCC builds have these defaults messed up... -@@ -410,12 +415,33 @@ - trycppif __ARM_PCS_VFP "$t" && SUBARCH=${SUBARCH}hf - fi - --test "$ARCH" = "mips" && trycppif "_MIPSEL || __MIPSEL || __MIPSEL__" "$t" \ --&& SUBARCH=${SUBARCH}el -+if test "$ARCH" = "mips" ; then -+trycppif "_MIPSEL || __MIPSEL || __MIPSEL__" "$t" && SUBARCH=${SUBARCH}el -+trycppif __mips_soft_float "$t" && SUBARCH=${SUBARCH}-sf -+fi - - test "$ARCH" = "microblaze" && trycppif __MICROBLAZEEL__ "$t" \ - && SUBARCH=${SUBARCH}el - -+if test "$ARCH" = "sh" ; then -+trycppif __BIG_ENDIAN__ "$t" && SUBARCH=${SUBARCH}eb -+if trycppif __SH_FPU_ANY__ "$t" ; then -+# Some sh configurations are broken and replace double with float -+# rather than using softfloat when the fpu is present but only -+# supports single precision. Reject them. -+printf "checking whether compiler's double type is IEEE double... " -+echo 'typedef char dblcheck[(int)sizeof(double)-5];' > "$tmpc" -+if $CC $CFLAGS_C99FSE $CPPFLAGS $CFLAGS -c -o /dev/null "$tmpc" >/dev/null 2>&1 ; then -+printf "yes\n" -+else -+printf "no\n" -+fail "$0: error: compiler's floating point configuration is unsupported" -+fi -+else -+SUBARCH=${SUBARCH}-nofpu -+fi -+fi -+ - test "$SUBARCH" \ - && printf "configured for %s variant: %s\n" "$ARCH" "$ARCH$SUBARCH" - -diff -Nur musl-0.9.15/COPYRIGHT musl-git/COPYRIGHT ---- musl-0.9.15/COPYRIGHT 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/COPYRIGHT 2014-03-19 07:42:48.000000000 +0100 -@@ -1,6 +1,6 @@ - musl as a whole is licensed under the following standard MIT license: - --Copyright © 2005-2013 Rich Felker -+Copyright © 2005-2014 Rich Felker - - Permission is hereby granted, free of charge, to any person obtaining - a copy of this software and associated documentation files (the -@@ -79,7 +79,7 @@ - from Bionic libc, used on Android. - - All other files which have no copyright comments are original works --Copyright © 2005-2013 Rich Felker, the main author of this library. -+Copyright © 2005-2014 Rich Felker, the main author of this library. - The decision to exclude such comments is intentional, as it should be - possible to carry around the complete source code on tiny storage - media. All public header files (include/* and arch/*/bits/*) should be -diff -Nur musl-0.9.15/crt/superh/crti.s musl-git/crt/superh/crti.s ---- musl-0.9.15/crt/superh/crti.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/crt/superh/crti.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,13 @@ -+.section .init -+.global _init -+.type _init, @function -+_init: -+ sts.l pr, @-r15 -+ nop -+ -+.section .fini -+.global _fini -+.type _fini, @function -+_fini: -+ sts.l pr, @-r15 -+ nop -diff -Nur musl-0.9.15/crt/superh/crtn.s musl-git/crt/superh/crtn.s ---- musl-0.9.15/crt/superh/crtn.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/crt/superh/crtn.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,9 @@ -+.section .init -+ lds.l @r15+, pr -+ rts -+ nop -+ -+.section .fini -+ lds.l @r15+, pr -+ rts -+ nop -diff -Nur musl-0.9.15/crt/x32/crti.s musl-git/crt/x32/crti.s ---- musl-0.9.15/crt/x32/crti.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/crt/x32/crti.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,9 @@ -+.section .init -+.global _init -+_init: -+ push %rax -+ -+.section .fini -+.global _fini -+_fini: -+ push %rax -diff -Nur musl-0.9.15/crt/x32/crtn.s musl-git/crt/x32/crtn.s ---- musl-0.9.15/crt/x32/crtn.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/crt/x32/crtn.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,7 @@ -+.section .init -+ pop %rax -+ ret -+ -+.section .fini -+ pop %rax -+ ret -diff -Nur musl-0.9.15/.gitignore musl-git/.gitignore ---- musl-0.9.15/.gitignore 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/.gitignore 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,11 @@ -+*.o -+*.lo -+*.a -+*.so -+*.so.1 -+arch/*/bits/alltypes.h -+config.mak -+include/bits -+tools/musl-gcc -+lib/musl-gcc.specs -+src/internal/version.h -diff -Nur musl-0.9.15/include/arpa/inet.h musl-git/include/arpa/inet.h ---- musl-0.9.15/include/arpa/inet.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/arpa/inet.h 2014-03-19 07:42:48.000000000 +0100 -@@ -20,7 +20,7 @@ - const char *inet_ntop (int, const void *__restrict, char *__restrict, socklen_t); - - int inet_aton (const char *, struct in_addr *); --struct in_addr inet_makeaddr(int, int); -+struct in_addr inet_makeaddr(in_addr_t, in_addr_t); - in_addr_t inet_lnaof(struct in_addr); - in_addr_t inet_netof(struct in_addr); - -diff -Nur musl-0.9.15/include/dlfcn.h musl-git/include/dlfcn.h ---- musl-0.9.15/include/dlfcn.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/dlfcn.h 2014-03-19 07:42:48.000000000 +0100 -@@ -31,7 +31,7 @@ - const char *dli_sname; - void *dli_saddr; - } Dl_info; --int dladdr(void *, Dl_info *); -+int dladdr(const void *, Dl_info *); - int dlinfo(void *, int, void *); - #endif - -diff -Nur musl-0.9.15/include/elf.h musl-git/include/elf.h ---- musl-0.9.15/include/elf.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/elf.h 2014-03-19 07:42:48.000000000 +0100 -@@ -1153,6 +1153,7 @@ - #define EF_MIPS_64BIT_WHIRL 16 - #define EF_MIPS_ABI2 32 - #define EF_MIPS_ABI_ON32 64 -+#define EF_MIPS_NAN2008 1024 - #define EF_MIPS_ARCH 0xf0000000 - - -@@ -2092,6 +2093,117 @@ - #define R_AARCH64_NONE 0 - #define R_AARCH64_ABS64 257 - #define R_AARCH64_ABS32 258 -+#define R_AARCH64_ABS16 259 -+#define R_AARCH64_PREL64 260 -+#define R_AARCH64_PREL32 261 -+#define R_AARCH64_PREL16 262 -+#define R_AARCH64_MOVW_UABS_G0 263 -+#define R_AARCH64_MOVW_UABS_G0_NC 264 -+#define R_AARCH64_MOVW_UABS_G1 265 -+#define R_AARCH64_MOVW_UABS_G1_NC 266 -+#define R_AARCH64_MOVW_UABS_G2 267 -+#define R_AARCH64_MOVW_UABS_G2_NC 268 -+#define R_AARCH64_MOVW_UABS_G3 269 -+#define R_AARCH64_MOVW_SABS_G0 270 -+#define R_AARCH64_MOVW_SABS_G1 271 -+#define R_AARCH64_MOVW_SABS_G2 272 -+#define R_AARCH64_LD_PREL_LO19 273 -+#define R_AARCH64_ADR_PREL_LO21 274 -+#define R_AARCH64_ADR_PREL_PG_HI21 275 -+#define R_AARCH64_ADR_PREL_PG_HI21_NC 276 -+#define R_AARCH64_ADD_ABS_LO12_NC 277 -+#define R_AARCH64_LDST8_ABS_LO12_NC 278 -+#define R_AARCH64_TSTBR14 279 -+#define R_AARCH64_CONDBR19 280 -+#define R_AARCH64_JUMP26 282 -+#define R_AARCH64_CALL26 283 -+#define R_AARCH64_LDST16_ABS_LO12_NC 284 -+#define R_AARCH64_LDST32_ABS_LO12_NC 285 -+#define R_AARCH64_LDST64_ABS_LO12_NC 286 -+#define R_AARCH64_MOVW_PREL_G0 287 -+#define R_AARCH64_MOVW_PREL_G0_NC 288 -+#define R_AARCH64_MOVW_PREL_G1 289 -+#define R_AARCH64_MOVW_PREL_G1_NC 290 -+#define R_AARCH64_MOVW_PREL_G2 291 -+#define R_AARCH64_MOVW_PREL_G2_NC 292 -+#define R_AARCH64_MOVW_PREL_G3 293 -+#define R_AARCH64_LDST128_ABS_LO12_NC 299 -+#define R_AARCH64_MOVW_GOTOFF_G0 300 -+#define R_AARCH64_MOVW_GOTOFF_G0_NC 301 -+#define R_AARCH64_MOVW_GOTOFF_G1 302 -+#define R_AARCH64_MOVW_GOTOFF_G1_NC 303 -+#define R_AARCH64_MOVW_GOTOFF_G2 304 -+#define R_AARCH64_MOVW_GOTOFF_G2_NC 305 -+#define R_AARCH64_MOVW_GOTOFF_G3 306 -+#define R_AARCH64_GOTREL64 307 -+#define R_AARCH64_GOTREL32 308 -+#define R_AARCH64_GOT_LD_PREL19 309 -+#define R_AARCH64_LD64_GOTOFF_LO15 310 -+#define R_AARCH64_ADR_GOT_PAGE 311 -+#define R_AARCH64_LD64_GOT_LO12_NC 312 -+#define R_AARCH64_LD64_GOTPAGE_LO15 313 -+#define R_AARCH64_TLSGD_ADR_PREL21 512 -+#define R_AARCH64_TLSGD_ADR_PAGE21 513 -+#define R_AARCH64_TLSGD_ADD_LO12_NC 514 -+#define R_AARCH64_TLSGD_MOVW_G1 515 -+#define R_AARCH64_TLSGD_MOVW_G0_NC 516 -+#define R_AARCH64_TLSLD_ADR_PREL21 517 -+#define R_AARCH64_TLSLD_ADR_PAGE21 518 -+#define R_AARCH64_TLSLD_ADD_LO12_NC 519 -+#define R_AARCH64_TLSLD_MOVW_G1 520 -+#define R_AARCH64_TLSLD_MOVW_G0_NC 521 -+#define R_AARCH64_TLSLD_LD_PREL19 522 -+#define R_AARCH64_TLSLD_MOVW_DTPREL_G2 523 -+#define R_AARCH64_TLSLD_MOVW_DTPREL_G1 524 -+#define R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 525 -+#define R_AARCH64_TLSLD_MOVW_DTPREL_G0 526 -+#define R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 527 -+#define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528 -+#define R_AARCH64_TLSLD_ADD_DTPREL_LO12 529 -+#define R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 530 -+#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12 531 -+#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 532 -+#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12 533 -+#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 534 -+#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12 535 -+#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 536 -+#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12 537 -+#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 538 -+#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 539 -+#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 540 -+#define R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 541 -+#define R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 542 -+#define R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 543 -+#define R_AARCH64_TLSLE_MOVW_TPREL_G2 544 -+#define R_AARCH64_TLSLE_MOVW_TPREL_G1 545 -+#define R_AARCH64_TLSLE_MOVW_TPREL_G1_NC 546 -+#define R_AARCH64_TLSLE_MOVW_TPREL_G0 547 -+#define R_AARCH64_TLSLE_MOVW_TPREL_G0_NC 548 -+#define R_AARCH64_TLSLE_ADD_TPREL_HI12 549 -+#define R_AARCH64_TLSLE_ADD_TPREL_LO12 550 -+#define R_AARCH64_TLSLE_ADD_TPREL_LO12_NC 551 -+#define R_AARCH64_TLSLE_LDST8_TPREL_LO12 552 -+#define R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 553 -+#define R_AARCH64_TLSLE_LDST16_TPREL_LO12 554 -+#define R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 555 -+#define R_AARCH64_TLSLE_LDST32_TPREL_LO12 556 -+#define R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 557 -+#define R_AARCH64_TLSLE_LDST64_TPREL_LO12 558 -+#define R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 559 -+#define R_AARCH64_TLSDESC_LD_PREL19 560 -+#define R_AARCH64_TLSDESC_ADR_PREL21 561 -+#define R_AARCH64_TLSDESC_ADR_PAGE21 562 -+#define R_AARCH64_TLSDESC_LD64_LO12 563 -+#define R_AARCH64_TLSDESC_ADD_LO12 564 -+#define R_AARCH64_TLSDESC_OFF_G1 565 -+#define R_AARCH64_TLSDESC_OFF_G0_NC 566 -+#define R_AARCH64_TLSDESC_LDR 567 -+#define R_AARCH64_TLSDESC_ADD 568 -+#define R_AARCH64_TLSDESC_CALL 569 -+#define R_AARCH64_TLSLE_LDST128_TPREL_LO12 570 -+#define R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC 571 -+#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12 572 -+#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC 573 - #define R_AARCH64_COPY 1024 - #define R_AARCH64_GLOB_DAT 1025 - #define R_AARCH64_JUMP_SLOT 1026 -diff -Nur musl-0.9.15/include/fcntl.h musl-git/include/fcntl.h ---- musl-0.9.15/include/fcntl.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/fcntl.h 2014-03-19 07:42:48.000000000 +0100 -@@ -148,6 +148,7 @@ - #define SPLICE_F_MORE 4 - #define SPLICE_F_GIFT 8 - int fallocate(int, int, off_t, off_t); -+#define fallocate64 fallocate - ssize_t readahead(int, off_t, size_t); - int sync_file_range(int, off_t, off_t, unsigned); - ssize_t vmsplice(int, const struct iovec *, size_t, unsigned); -@@ -160,6 +161,7 @@ - #define F_GETLK64 F_GETLK - #define F_SETLK64 F_SETLK - #define F_SETLKW64 F_SETLKW -+#define flock64 flock - #define open64 open - #define openat64 openat - #define creat64 creat -diff -Nur musl-0.9.15/include/math.h musl-git/include/math.h ---- musl-0.9.15/include/math.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/math.h 2014-03-19 07:42:48.000000000 +0100 -@@ -42,12 +42,14 @@ - - static __inline unsigned __FLOAT_BITS(float __f) - { -- union {float __f; unsigned __i;} __u = {__f}; -+ union {float __f; unsigned __i;} __u; -+ __u.__f = __f; - return __u.__i; - } - static __inline unsigned long long __DOUBLE_BITS(double __f) - { -- union {double __f; unsigned long long __i;} __u = {__f}; -+ union {double __f; unsigned long long __i;} __u; -+ __u.__f = __f; - return __u.__i; - } - -diff -Nur musl-0.9.15/include/netdb.h musl-git/include/netdb.h ---- musl-0.9.15/include/netdb.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/netdb.h 2014-03-19 07:42:48.000000000 +0100 -@@ -131,6 +131,7 @@ - #define TRY_AGAIN 2 - #define NO_RECOVERY 3 - #define NO_DATA 4 -+#define NO_ADDRESS NO_DATA - #endif - - #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -diff -Nur musl-0.9.15/include/netinet/if_ether.h musl-git/include/netinet/if_ether.h ---- musl-0.9.15/include/netinet/if_ether.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/netinet/if_ether.h 2014-03-19 07:42:48.000000000 +0100 -@@ -54,6 +54,7 @@ - #define ETH_P_8021AH 0x88E7 - #define ETH_P_MVRP 0x88F5 - #define ETH_P_1588 0x88F7 -+#define ETH_P_PRP 0x88FB - #define ETH_P_FCOE 0x8906 - #define ETH_P_TDLS 0x890D - #define ETH_P_FIP 0x8914 -diff -Nur musl-0.9.15/include/netinet/in.h musl-git/include/netinet/in.h ---- musl-0.9.15/include/netinet/in.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/netinet/in.h 2014-03-19 07:42:48.000000000 +0100 -@@ -149,7 +149,7 @@ - (IN6_IS_ADDR_MULTICAST(a) && ((((uint8_t *) (a))[1] & 0xf) == 0xe)) - - #define __ARE_4_EQUAL(a,b) \ -- (!( 0[a]-0[b] | 1[a]-1[b] | 2[a]-2[b] | 3[a]-3[b] )) -+ (!( (0[a]-0[b]) | (1[a]-1[b]) | (2[a]-2[b]) | (3[a]-3[b]) )) - #define IN6_ARE_ADDR_EQUAL(a,b) \ - __ARE_4_EQUAL((const uint32_t *)(a), (const uint32_t *)(b)) - -@@ -211,27 +211,13 @@ - #define IP_MULTICAST_ALL 49 - #define IP_UNICAST_IF 50 - --#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) --#define MCAST_JOIN_GROUP 42 --#define MCAST_BLOCK_SOURCE 43 --#define MCAST_UNBLOCK_SOURCE 44 --#define MCAST_LEAVE_GROUP 45 --#define MCAST_JOIN_SOURCE_GROUP 46 --#define MCAST_LEAVE_SOURCE_GROUP 47 --#define MCAST_MSFILTER 48 -- --#define MCAST_EXCLUDE 0 --#define MCAST_INCLUDE 1 --#endif -- - #define IP_RECVRETOPTS IP_RETOPTS - - #define IP_PMTUDISC_DONT 0 - #define IP_PMTUDISC_WANT 1 - #define IP_PMTUDISC_DO 2 - #define IP_PMTUDISC_PROBE 3 -- --#define SOL_IP 0 -+#define IP_PMTUDISC_INTERFACE 4 - - #define IP_DEFAULT_MULTICAST_TTL 1 - #define IP_DEFAULT_MULTICAST_LOOP 1 -@@ -243,6 +229,19 @@ - char ip_opts[40]; - }; - -+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -+ -+#define MCAST_JOIN_GROUP 42 -+#define MCAST_BLOCK_SOURCE 43 -+#define MCAST_UNBLOCK_SOURCE 44 -+#define MCAST_LEAVE_GROUP 45 -+#define MCAST_JOIN_SOURCE_GROUP 46 -+#define MCAST_LEAVE_SOURCE_GROUP 47 -+#define MCAST_MSFILTER 48 -+ -+#define MCAST_EXCLUDE 0 -+#define MCAST_INCLUDE 1 -+ - struct ip_mreq - { - struct in_addr imr_multiaddr; -@@ -273,7 +272,6 @@ - (sizeof(struct ip_msfilter) - sizeof(struct in_addr) \ - + (numsrc) * sizeof(struct in_addr)) - --#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) - struct group_req { - uint32_t gr_interface; - struct sockaddr_storage gr_group; -@@ -295,7 +293,6 @@ - #define GROUP_FILTER_SIZE(numsrc) \ - (sizeof(struct group_filter) - sizeof(struct sockaddr_storage) \ - + (numsrc) * sizeof(struct sockaddr_storage)) --#endif - - struct in_pktinfo - { -@@ -315,6 +312,7 @@ - struct sockaddr_in6 ip6m_addr; - uint32_t ip6m_mtu; - }; -+#endif - - #define IPV6_ADDRFORM 1 - #define IPV6_2292PKTINFO 2 -@@ -324,7 +322,6 @@ - #define IPV6_2292PKTOPTIONS 6 - #define IPV6_CHECKSUM 7 - #define IPV6_2292HOPLIMIT 8 --#define SCM_SRCRT IPV6_RXSRCRT - #define IPV6_NEXTHOP 9 - #define IPV6_AUTHHDR 10 - #define IPV6_UNICAST_HOPS 16 -@@ -363,15 +360,11 @@ - #define IPV6_RXHOPOPTS IPV6_HOPOPTS - #define IPV6_RXDSTOPTS IPV6_DSTOPTS - -- - #define IPV6_PMTUDISC_DONT 0 - #define IPV6_PMTUDISC_WANT 1 - #define IPV6_PMTUDISC_DO 2 - #define IPV6_PMTUDISC_PROBE 3 - --#define SOL_IPV6 41 --#define SOL_ICMPV6 58 -- - #define IPV6_RTHDR_LOOSE 0 - #define IPV6_RTHDR_STRICT 1 - -diff -Nur musl-0.9.15/include/netinet/tcp.h musl-git/include/netinet/tcp.h ---- musl-0.9.15/include/netinet/tcp.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/netinet/tcp.h 2014-03-19 07:42:48.000000000 +0100 -@@ -44,42 +44,80 @@ - #define SOL_TCP 6 - #include - #include --#endif -+#include -+#include -+ -+typedef uint32_t tcp_seq; - -+#define TH_FIN 0x01 -+#define TH_SYN 0x02 -+#define TH_RST 0x04 -+#define TH_PUSH 0x08 -+#define TH_ACK 0x10 -+#define TH_URG 0x20 -+ -+struct tcphdr { - #ifdef _GNU_SOURCE --#include --struct tcphdr --{ -- u_int16_t source; -- u_int16_t dest; -- u_int32_t seq; -- u_int32_t ack_seq; -+#ifdef __GNUC__ -+ __extension__ -+#endif -+ union { struct { -+ -+ uint16_t source; -+ uint16_t dest; -+ uint32_t seq; -+ uint32_t ack_seq; -+#if __BYTE_ORDER == __LITTLE_ENDIAN -+ uint16_t res1:4; -+ uint16_t doff:4; -+ uint16_t fin:1; -+ uint16_t syn:1; -+ uint16_t rst:1; -+ uint16_t psh:1; -+ uint16_t ack:1; -+ uint16_t urg:1; -+ uint16_t res2:2; -+#else -+ uint16_t doff:4; -+ uint16_t res1:4; -+ uint16_t res2:2; -+ uint16_t urg:1; -+ uint16_t ack:1; -+ uint16_t psh:1; -+ uint16_t rst:1; -+ uint16_t syn:1; -+ uint16_t fin:1; -+#endif -+ uint16_t window; -+ uint16_t check; -+ uint16_t urg_ptr; -+ -+ }; struct { -+#endif -+ -+ uint16_t th_sport; -+ uint16_t th_dport; -+ uint32_t th_seq; -+ uint32_t th_ack; - #if __BYTE_ORDER == __LITTLE_ENDIAN -- u_int16_t res1:4; -- u_int16_t doff:4; -- u_int16_t fin:1; -- u_int16_t syn:1; -- u_int16_t rst:1; -- u_int16_t psh:1; -- u_int16_t ack:1; -- u_int16_t urg:1; -- u_int16_t res2:2; -+ uint8_t th_x2:4; -+ uint8_t th_off:4; - #else -- u_int16_t doff:4; -- u_int16_t res1:4; -- u_int16_t res2:2; -- u_int16_t urg:1; -- u_int16_t ack:1; -- u_int16_t psh:1; -- u_int16_t rst:1; -- u_int16_t syn:1; -- u_int16_t fin:1; --#endif -- u_int16_t window; -- u_int16_t check; -- u_int16_t urg_ptr; -+ uint8_t th_off:4; -+ uint8_t th_x2:4; -+#endif -+ uint8_t th_flags; -+ uint16_t th_win; -+ uint16_t th_sum; -+ uint16_t th_urp; -+ -+#ifdef _GNU_SOURCE -+ }; }; -+#endif - }; -+#endif - -+#ifdef _GNU_SOURCE - #define TCPI_OPT_TIMESTAMPS 1 - #define TCPI_OPT_SACK 2 - #define TCPI_OPT_WSCALE 4 -@@ -93,37 +131,37 @@ - - struct tcp_info - { -- u_int8_t tcpi_state; -- u_int8_t tcpi_ca_state; -- u_int8_t tcpi_retransmits; -- u_int8_t tcpi_probes; -- u_int8_t tcpi_backoff; -- u_int8_t tcpi_options; -- u_int8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; -- u_int32_t tcpi_rto; -- u_int32_t tcpi_ato; -- u_int32_t tcpi_snd_mss; -- u_int32_t tcpi_rcv_mss; -- u_int32_t tcpi_unacked; -- u_int32_t tcpi_sacked; -- u_int32_t tcpi_lost; -- u_int32_t tcpi_retrans; -- u_int32_t tcpi_fackets; -- u_int32_t tcpi_last_data_sent; -- u_int32_t tcpi_last_ack_sent; -- u_int32_t tcpi_last_data_recv; -- u_int32_t tcpi_last_ack_recv; -- u_int32_t tcpi_pmtu; -- u_int32_t tcpi_rcv_ssthresh; -- u_int32_t tcpi_rtt; -- u_int32_t tcpi_rttvar; -- u_int32_t tcpi_snd_ssthresh; -- u_int32_t tcpi_snd_cwnd; -- u_int32_t tcpi_advmss; -- u_int32_t tcpi_reordering; -- u_int32_t tcpi_rcv_rtt; -- u_int32_t tcpi_rcv_space; -- u_int32_t tcpi_total_retrans; -+ uint8_t tcpi_state; -+ uint8_t tcpi_ca_state; -+ uint8_t tcpi_retransmits; -+ uint8_t tcpi_probes; -+ uint8_t tcpi_backoff; -+ uint8_t tcpi_options; -+ uint8_t tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4; -+ uint32_t tcpi_rto; -+ uint32_t tcpi_ato; -+ uint32_t tcpi_snd_mss; -+ uint32_t tcpi_rcv_mss; -+ uint32_t tcpi_unacked; -+ uint32_t tcpi_sacked; -+ uint32_t tcpi_lost; -+ uint32_t tcpi_retrans; -+ uint32_t tcpi_fackets; -+ uint32_t tcpi_last_data_sent; -+ uint32_t tcpi_last_ack_sent; -+ uint32_t tcpi_last_data_recv; -+ uint32_t tcpi_last_ack_recv; -+ uint32_t tcpi_pmtu; -+ uint32_t tcpi_rcv_ssthresh; -+ uint32_t tcpi_rtt; -+ uint32_t tcpi_rttvar; -+ uint32_t tcpi_snd_ssthresh; -+ uint32_t tcpi_snd_cwnd; -+ uint32_t tcpi_advmss; -+ uint32_t tcpi_reordering; -+ uint32_t tcpi_rcv_rtt; -+ uint32_t tcpi_rcv_space; -+ uint32_t tcpi_total_retrans; - }; - - #define TCP_MD5SIG_MAXKEYLEN 80 -@@ -131,10 +169,10 @@ - struct tcp_md5sig - { - struct sockaddr_storage tcpm_addr; -- u_int16_t __tcpm_pad1; -- u_int16_t tcpm_keylen; -- u_int32_t __tcpm_pad2; -- u_int8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN]; -+ uint16_t __tcpm_pad1; -+ uint16_t tcpm_keylen; -+ uint32_t __tcpm_pad2; -+ uint8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN]; - }; - - #endif -diff -Nur musl-0.9.15/include/netinet/udp.h musl-git/include/netinet/udp.h ---- musl-0.9.15/include/netinet/udp.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/netinet/udp.h 2014-03-19 07:42:48.000000000 +0100 -@@ -5,19 +5,22 @@ - extern "C" { - #endif - -+#include - #include - --struct udphdr { -- uint16_t source; -- uint16_t dest; -- uint16_t len; -- uint16_t check; --}; -- -+#ifdef _GNU_SOURCE - #define uh_sport source - #define uh_dport dest - #define uh_ulen len - #define uh_sum check -+#endif -+ -+struct udphdr { -+ uint16_t uh_sport; -+ uint16_t uh_dport; -+ uint16_t uh_ulen; -+ uint16_t uh_sum; -+}; - - #define UDP_CORK 1 - #define UDP_ENCAP 100 -diff -Nur musl-0.9.15/include/sched.h musl-git/include/sched.h ---- musl-0.9.15/include/sched.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/sched.h 2014-03-19 07:42:48.000000000 +0100 -@@ -78,7 +78,7 @@ - int sched_getaffinity(pid_t, size_t, cpu_set_t *); - int sched_setaffinity(pid_t, size_t, const cpu_set_t *); - --#define __CPU_op_S(i, size, set, op) ( (i)/8 >= (size) ? 0 : \ -+#define __CPU_op_S(i, size, set, op) ( (i)/8U >= (size) ? 0 : \ - ((set)->__bits[(i)/8/sizeof(long)] op (1UL<<((i)%(8*sizeof(long))))) ) - - #define CPU_SET_S(i, size, set) __CPU_op_S(i, size, set, |=) -diff -Nur musl-0.9.15/include/signal.h musl-git/include/signal.h ---- musl-0.9.15/include/signal.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/signal.h 2014-03-19 07:42:48.000000000 +0100 -@@ -77,11 +77,7 @@ - #define CLD_STOPPED 5 - #define CLD_CONTINUED 6 - --typedef struct sigaltstack { -- void *ss_sp; -- int ss_flags; -- size_t ss_size; --} stack_t; -+typedef struct sigaltstack stack_t; - - union sigval { - int sival_int; -@@ -227,8 +223,8 @@ - typedef void (*sighandler_t)(int); - void (*bsd_signal(int, void (*)(int)))(int); - int sigisemptyset(const sigset_t *); --int sigorset (sigset_t *, sigset_t *, sigset_t *); --int sigandset(sigset_t *, sigset_t *, sigset_t *); -+int sigorset (sigset_t *, const sigset_t *, const sigset_t *); -+int sigandset(sigset_t *, const sigset_t *, const sigset_t *); - - #define SA_NOMASK SA_NODEFER - #define SA_ONESHOT SA_RESETHAND -diff -Nur musl-0.9.15/include/stdlib.h musl-git/include/stdlib.h ---- musl-0.9.15/include/stdlib.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/stdlib.h 2014-03-19 07:42:48.000000000 +0100 -@@ -93,7 +93,7 @@ - #define WSTOPSIG(s) WEXITSTATUS(s) - #define WIFEXITED(s) (!WTERMSIG(s)) - #define WIFSTOPPED(s) ((short)((((s)&0xffff)*0x10001)>>8) > 0x7f00) --#define WIFSIGNALED(s) (((s)&0xffff)-1 < 0xffu) -+#define WIFSIGNALED(s) (((s)&0xffff)-1U < 0xffu) - - int posix_memalign (void **, size_t, size_t); - int setenv (const char *, const char *, int); -diff -Nur musl-0.9.15/include/sys/inotify.h musl-git/include/sys/inotify.h ---- musl-0.9.15/include/sys/inotify.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/sys/inotify.h 2014-03-19 07:42:48.000000000 +0100 -@@ -48,7 +48,7 @@ - int inotify_init(void); - int inotify_init1(int); - int inotify_add_watch(int, const char *, uint32_t); --int inotify_rm_watch(int, uint32_t); -+int inotify_rm_watch(int, int); - - #ifdef __cplusplus - } -diff -Nur musl-0.9.15/include/sys/mman.h musl-git/include/sys/mman.h ---- musl-0.9.15/include/sys/mman.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/sys/mman.h 2014-03-19 07:42:48.000000000 +0100 -@@ -33,7 +33,7 @@ - - #ifdef _GNU_SOURCE - void *mremap (void *, size_t, size_t, int, ...); --int remap_file_pages (void *, size_t, int, ssize_t, int); -+int remap_file_pages (void *, size_t, int, size_t, int); - #endif - - #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) -diff -Nur musl-0.9.15/include/sys/procfs.h musl-git/include/sys/procfs.h ---- musl-0.9.15/include/sys/procfs.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/sys/procfs.h 2014-03-19 07:42:48.000000000 +0100 -@@ -40,7 +40,7 @@ - char pr_zomb; - char pr_nice; - unsigned long int pr_flag; --#if __WORDSIZE == 32 -+#if UINTPTR_MAX == 0xffffffff - unsigned short int pr_uid; - unsigned short int pr_gid; - #else -diff -Nur musl-0.9.15/include/sys/sem.h musl-git/include/sys/sem.h ---- musl-0.9.15/include/sys/sem.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/sys/sem.h 2014-03-19 07:42:48.000000000 +0100 -@@ -27,22 +27,7 @@ - - #include - --struct semid_ds { -- struct ipc_perm sem_perm; -- long sem_otime; -- unsigned long __unused1; -- long sem_ctime; -- unsigned long __unused2; --#if __BYTE_ORDER == __LITTLE_ENDIAN -- unsigned short sem_nsems; -- char __sem_nsems_pad[sizeof(long)-sizeof(short)]; --#else -- char __sem_nsems_pad[sizeof(long)-sizeof(short)]; -- unsigned short sem_nsems; --#endif -- unsigned long __unused3; -- unsigned long __unused4; --}; -+#include - - #define _SEM_SEMUN_UNDEFINED 1 - -diff -Nur musl-0.9.15/include/sys/shm.h musl-git/include/sys/shm.h ---- musl-0.9.15/include/sys/shm.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/sys/shm.h 2014-03-19 07:42:48.000000000 +0100 -@@ -14,6 +14,13 @@ - #include - - #include -+ -+#ifdef _GNU_SOURCE -+#define __used_ids used_ids -+#define __swap_attempts swap_attempts -+#define __swap_successes swap_successes -+#endif -+ - #include - - #define SHM_R 0400 -@@ -33,20 +40,6 @@ - #define SHM_HUGETLB 04000 - #define SHM_NORESERVE 010000 - --struct shminfo { -- unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; --}; -- --struct shm_info { -- int used_ids; -- unsigned long shm_tot, shm_rss, shm_swp; --#ifdef _GNU_SOURCE -- unsigned long swap_attempts, swap_successes; --#else -- unsigned long __reserved[2]; --#endif --}; -- - typedef unsigned long shmatt_t; - - void *shmat(int, const void *, int); -diff -Nur musl-0.9.15/include/sys/socket.h musl-git/include/sys/socket.h ---- musl-0.9.15/include/sys/socket.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/sys/socket.h 2014-03-19 07:42:48.000000000 +0100 -@@ -202,11 +202,16 @@ - #define SO_LOCK_FILTER 44 - #define SO_SELECT_ERR_QUEUE 45 - #define SO_BUSY_POLL 46 -+#define SO_MAX_PACING_RATE 47 - - #ifndef SOL_SOCKET - #define SOL_SOCKET 1 - #endif - -+#define SOL_IP 0 -+#define SOL_IPV6 41 -+#define SOL_ICMPV6 58 -+ - #define SOL_RAW 255 - #define SOL_DECNET 261 - #define SOL_X25 262 -diff -Nur musl-0.9.15/include/sys/sysctl.h musl-git/include/sys/sysctl.h ---- musl-0.9.15/include/sys/sysctl.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/sys/sysctl.h 1970-01-01 01:00:00.000000000 +0100 -@@ -1,17 +0,0 @@ --#ifndef _SYS_SYSCTL_H --#define _SYS_SYSCTL_H -- --#ifdef __cplusplus --extern "C" { --#endif -- --#define __NEED_size_t --#include -- --int sysctl (int *, int, void *, size_t *, void *, size_t); -- --#ifdef __cplusplus --} --#endif -- --#endif -diff -Nur musl-0.9.15/include/sys/time.h musl-git/include/sys/time.h ---- musl-0.9.15/include/sys/time.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/sys/time.h 2014-03-19 07:42:48.000000000 +0100 -@@ -51,6 +51,17 @@ - ((a)->tv_usec += 1000000, (a)->tv_sec--) ) - #endif - -+#if defined(_GNU_SOURCE) -+#define TIMEVAL_TO_TIMESPEC(tv, ts) ( \ -+ (ts)->tv_sec = (tv)->tv_sec, \ -+ (ts)->tv_nsec = (tv)->tv_usec * 1000, \ -+ (void)0 ) -+#define TIMESPEC_TO_TIMEVAL(tv, ts) ( \ -+ (tv)->tv_sec = (ts)->tv_sec, \ -+ (tv)->tv_usec = (ts)->tv_nsec / 1000, \ -+ (void)0 ) -+#endif -+ - #ifdef __cplusplus - } - #endif -diff -Nur musl-0.9.15/include/sys/wait.h musl-git/include/sys/wait.h ---- musl-0.9.15/include/sys/wait.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/sys/wait.h 2014-03-19 07:42:48.000000000 +0100 -@@ -50,7 +50,7 @@ - #define WCOREDUMP(s) ((s) & 0x80) - #define WIFEXITED(s) (!WTERMSIG(s)) - #define WIFSTOPPED(s) ((short)((((s)&0xffff)*0x10001)>>8) > 0x7f00) --#define WIFSIGNALED(s) (((s)&0xffff)-1 < 0xffu) -+#define WIFSIGNALED(s) (((s)&0xffff)-1U < 0xffu) - #define WIFCONTINUED(s) ((s) == 0xffff) - - #ifdef __cplusplus -diff -Nur musl-0.9.15/include/syslog.h musl-git/include/syslog.h ---- musl-0.9.15/include/syslog.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/syslog.h 2014-03-19 07:42:48.000000000 +0100 -@@ -21,7 +21,7 @@ - #define LOG_MAKEPRI(f, p) (((f)<<3)|(p)) - - #define LOG_MASK(p) (1<<(p)) --#define LOG_UPTO(p) ((1<<(p)+1)-1) -+#define LOG_UPTO(p) ((1<<((p)+1))-1) - - #define LOG_KERN (0<<3) - #define LOG_USER (1<<3) -diff -Nur musl-0.9.15/include/time.h musl-git/include/time.h ---- musl-0.9.15/include/time.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/time.h 2014-03-19 07:42:48.000000000 +0100 -@@ -125,7 +125,7 @@ - - - #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) --int stime(time_t *); -+int stime(const time_t *); - time_t timegm(struct tm *); - #endif - -diff -Nur musl-0.9.15/include/utmp.h musl-git/include/utmp.h ---- musl-0.9.15/include/utmp.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/utmp.h 2014-03-19 07:42:48.000000000 +0100 -@@ -10,6 +10,7 @@ - #define ACCOUNTING 9 - #define UT_NAMESIZE 32 - #define UT_HOSTSIZE 256 -+#define UT_LINESIZE 32 - - struct lastlog { - time_t ll_time; -@@ -22,6 +23,8 @@ - #define ut_addr ut_addr_v6[0] - #define utmp utmpx - #define utmpname(x) (-1) -+#define e_exit __e_exit -+#define e_termination __e_termination - - void endutent(void); - struct utmp *getutent(void); -diff -Nur musl-0.9.15/include/utmpx.h musl-git/include/utmpx.h ---- musl-0.9.15/include/utmpx.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/include/utmpx.h 2014-03-19 07:42:48.000000000 +0100 -@@ -5,6 +5,8 @@ - extern "C" { - #endif - -+#include -+ - #define __NEED_pid_t - #define __NEED_time_t - #define __NEED_suseconds_t -@@ -12,19 +14,17 @@ - - #include - --#define UT_LINESIZE 32 -- - struct utmpx - { - short ut_type; - pid_t ut_pid; -- char ut_line[UT_LINESIZE]; -+ char ut_line[32]; - char ut_id[4]; - char ut_user[32]; - char ut_host[256]; - struct { -- short e_termination; -- short e_exit; -+ short __e_termination; -+ short __e_exit; - } ut_exit; - long ut_session; - struct timeval ut_tv; -@@ -39,7 +39,11 @@ - struct utmpx *pututxline(const struct utmpx *); - void setutxent(void); - -+#if defined(_BSD_SOURCE) | defined(_GNU_SOURCE) -+#define e_exit __e_exit -+#define e_termination __e_termination - void updwtmpx(const char *, const struct utmpx *); -+#endif - - #define EMPTY 0 - #define RUN_LVL 1 -diff -Nur musl-0.9.15/src/crypt/crypt_des.c musl-git/src/crypt/crypt_des.c ---- musl-0.9.15/src/crypt/crypt_des.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/crypt/crypt_des.c 2014-03-19 07:42:48.000000000 +0100 -@@ -692,7 +692,7 @@ - return saltbits; - } - --static void des_setkey(const unsigned char *key, struct expanded_key *ekey) -+void __des_setkey(const unsigned char *key, struct expanded_key *ekey) - { - uint32_t k0, k1, rawkey0, rawkey1; - unsigned int shifts, round, i, ibit; -@@ -753,7 +753,7 @@ - /* - * l_in, r_in, l_out, and r_out are in pseudo-"big-endian" format. - */ --static void do_des(uint32_t l_in, uint32_t r_in, -+void __do_des(uint32_t l_in, uint32_t r_in, - uint32_t *l_out, uint32_t *r_out, - uint32_t count, uint32_t saltbits, const struct expanded_key *ekey) - { -@@ -862,7 +862,7 @@ - ((uint32_t)in[5] << 16) | - ((uint32_t)in[4] << 24); - -- do_des(rawl, rawr, &l_out, &r_out, count, saltbits, ekey); -+ __do_des(rawl, rawr, &l_out, &r_out, count, saltbits, ekey); - - out[0] = l_out >> 24; - out[1] = l_out >> 16; -@@ -894,7 +894,7 @@ - if (*key) - key++; - } -- des_setkey(keybuf, &ekey); -+ __des_setkey(keybuf, &ekey); - - if (*setting == _PASSWORD_EFMT1) { - /* -@@ -929,7 +929,7 @@ - q = keybuf; - while (q <= &keybuf[sizeof(keybuf) - 1] && *key) - *q++ ^= *key++ << 1; -- des_setkey(keybuf, &ekey); -+ __des_setkey(keybuf, &ekey); - } - - memcpy(output, setting, 9); -@@ -957,7 +957,7 @@ - /* - * Do it. - */ -- do_des(0, 0, &r0, &r1, count, setup_salt(salt), &ekey); -+ __do_des(0, 0, &r0, &r1, count, setup_salt(salt), &ekey); - - /* - * Now encode the result... -diff -Nur musl-0.9.15/src/crypt/encrypt.c musl-git/src/crypt/encrypt.c ---- musl-0.9.15/src/crypt/encrypt.c 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/crypt/encrypt.c 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,60 @@ -+#include -+#include -+#include -+ -+struct expanded_key { -+ uint32_t l[16], r[16]; -+}; -+ -+void __des_setkey(const unsigned char *key, struct expanded_key *ekey); -+void __do_des(uint32_t l_in, uint32_t r_in, -+ uint32_t *l_out, uint32_t *r_out, -+ uint32_t count, uint32_t saltbits, const struct expanded_key *ekey); -+ -+ -+static struct expanded_key __encrypt_key; -+ -+void setkey(const char *key) -+{ -+ unsigned char bkey[8]; -+ int i, j; -+ -+ for (i = 0; i < 8; i++) { -+ bkey[i] = 0; -+ for (j = 7; j >= 0; j--, key++) -+ bkey[i] |= (uint32_t)(*key & 1) << j; -+ } -+ -+ __des_setkey(bkey, &__encrypt_key); -+} -+ -+void encrypt(char *block, int edflag) -+{ -+ struct expanded_key decrypt_key, *key; -+ uint32_t b[2]; -+ int i, j; -+ char *p; -+ -+ p = block; -+ for (i = 0; i < 2; i++) { -+ b[i] = 0; -+ for (j = 31; j >= 0; j--, p++) -+ b[i] |= (uint32_t)(*p & 1) << j; -+ } -+ -+ key = &__encrypt_key; -+ if (edflag) { -+ key = &decrypt_key; -+ for (i = 0; i < 16; i++) { -+ decrypt_key.l[i] = __encrypt_key.l[15-i]; -+ decrypt_key.r[i] = __encrypt_key.r[15-i]; -+ } -+ } -+ -+ __do_des(b[0], b[1], b, b + 1, 1, 0, key); -+ -+ p = block; -+ for (i = 0; i < 2; i++) -+ for (j = 31; j >= 0; j--) -+ *p++ = b[i]>>j & 1; -+} -diff -Nur musl-0.9.15/src/dirent/readdir.c musl-git/src/dirent/readdir.c ---- musl-0.9.15/src/dirent/readdir.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/dirent/readdir.c 2014-03-19 07:42:48.000000000 +0100 -@@ -1,5 +1,7 @@ - #include -+#include - #include "__dirent.h" -+#include "syscall.h" - #include "libc.h" - - int __getdents(int, struct dirent *, size_t); -@@ -9,8 +11,11 @@ - struct dirent *de; - - if (dir->buf_pos >= dir->buf_end) { -- int len = __getdents(dir->fd, (void *)dir->buf, sizeof dir->buf); -- if (len <= 0) return 0; -+ int len = __syscall(SYS_getdents, dir->fd, dir->buf, sizeof dir->buf); -+ if (len <= 0) { -+ if (len < 0 && len != -ENOENT) errno = -len; -+ return 0; -+ } - dir->buf_end = len; - dir->buf_pos = 0; - } -diff -Nur musl-0.9.15/src/errno/strerror.c musl-git/src/errno/strerror.c ---- musl-0.9.15/src/errno/strerror.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/errno/strerror.c 2014-03-19 07:42:48.000000000 +0100 -@@ -1,7 +1,7 @@ - #include - #include - --#define E(a,b) a, -+#define E(a,b) ((unsigned char)a), - static const unsigned char errid[] = { - #include "__strerror.h" - }; -@@ -16,6 +16,12 @@ - { - const char *s; - int i; -+ /* mips has one error code outside of the 8-bit range due to a -+ * historical typo, so we just remap it. */ -+ if (EDQUOT==1133) { -+ if (e==109) e=-1; -+ else if (e==EDQUOT) e=109; -+ } - for (i=0; errid[i] && errid[i] != e; i++); - for (s=errmsg; i; s++, i--) for (; *s; s++); - return (char *)s; -diff -Nur musl-0.9.15/src/fcntl/fcntl.c musl-git/src/fcntl/fcntl.c ---- musl-0.9.15/src/fcntl/fcntl.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/fcntl/fcntl.c 2014-03-19 07:42:48.000000000 +0100 -@@ -7,17 +7,17 @@ - - int fcntl(int fd, int cmd, ...) - { -- long arg; -+ unsigned long arg; - va_list ap; - va_start(ap, cmd); -- arg = va_arg(ap, long); -+ arg = va_arg(ap, unsigned long); - va_end(ap); - if (cmd == F_SETFL) arg |= O_LARGEFILE; -- if (cmd == F_SETLKW) return syscall_cp(SYS_fcntl, fd, cmd, arg); -+ if (cmd == F_SETLKW) return syscall_cp(SYS_fcntl, fd, cmd, (void *)arg); - if (cmd == F_GETOWN) { - struct f_owner_ex ex; - int ret = __syscall(SYS_fcntl, fd, F_GETOWN_EX, &ex); -- if (ret == -EINVAL) return __syscall(SYS_fcntl, fd, cmd, arg); -+ if (ret == -EINVAL) return __syscall(SYS_fcntl, fd, cmd, (void *)arg); - if (ret) return __syscall_ret(ret); - return ex.type == F_OWNER_PGRP ? -ex.pid : ex.pid; - } -@@ -37,5 +37,14 @@ - if (ret >= 0) __syscall(SYS_fcntl, ret, F_SETFD, FD_CLOEXEC); - return __syscall_ret(ret); - } -- return syscall(SYS_fcntl, fd, cmd, arg); -+ switch (cmd) { -+ case F_SETLK: -+ case F_SETLKW: -+ case F_GETLK: -+ case F_GETOWN_EX: -+ case F_SETOWN_EX: -+ return syscall(SYS_fcntl, fd, cmd, (void *)arg); -+ default: -+ return syscall(SYS_fcntl, fd, cmd, arg); -+ } - } -diff -Nur musl-0.9.15/src/fcntl/posix_fadvise.c musl-git/src/fcntl/posix_fadvise.c ---- musl-0.9.15/src/fcntl/posix_fadvise.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/fcntl/posix_fadvise.c 2014-03-19 07:42:48.000000000 +0100 -@@ -1,8 +1,11 @@ - #include - #include "syscall.h" -+#include "libc.h" - - int posix_fadvise(int fd, off_t base, off_t len, int advice) - { - return -(__syscall)(SYS_fadvise, fd, __SYSCALL_LL_O(base), - __SYSCALL_LL_E(len), advice); - } -+ -+LFS64(posix_fadvise); -diff -Nur musl-0.9.15/src/fcntl/posix_fallocate.c musl-git/src/fcntl/posix_fallocate.c ---- musl-0.9.15/src/fcntl/posix_fallocate.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/fcntl/posix_fallocate.c 2014-03-19 07:42:48.000000000 +0100 -@@ -1,8 +1,11 @@ - #include - #include "syscall.h" -+#include "libc.h" - - int posix_fallocate(int fd, off_t base, off_t len) - { - return -__syscall(SYS_fallocate, fd, 0, __SYSCALL_LL_E(base), - __SYSCALL_LL_E(len)); - } -+ -+LFS64(posix_fallocate); -diff -Nur musl-0.9.15/src/fenv/i386/fenv.s musl-git/src/fenv/i386/fenv.s ---- musl-0.9.15/src/fenv/i386/fenv.s 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/fenv/i386/fenv.s 2014-03-19 07:42:48.000000000 +0100 -@@ -126,7 +126,7 @@ - push %eax - push %eax - push %eax -- push %eax -+ pushl $0xffff - push %eax - pushl $0x37f - fldenv (%esp) -diff -Nur musl-0.9.15/src/fenv/mipsel-sf/fenv.sub musl-git/src/fenv/mipsel-sf/fenv.sub ---- musl-0.9.15/src/fenv/mipsel-sf/fenv.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/fenv/mipsel-sf/fenv.sub 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1 @@ -+../fenv.c -diff -Nur musl-0.9.15/src/fenv/mips-sf/fenv.sub musl-git/src/fenv/mips-sf/fenv.sub ---- musl-0.9.15/src/fenv/mips-sf/fenv.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/fenv/mips-sf/fenv.sub 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1 @@ -+../fenv.c -diff -Nur musl-0.9.15/src/fenv/sh/fenv.s musl-git/src/fenv/sh/fenv.s ---- musl-0.9.15/src/fenv/sh/fenv.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/fenv/sh/fenv.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,74 @@ -+.global fegetround -+.type fegetround, @function -+fegetround: -+ sts fpscr, r0 -+ rts -+ and #3, r0 -+ -+.global __fesetround -+.type __fesetround, @function -+__fesetround: -+ sts fpscr, r0 -+ or r4, r0 -+ lds r0, fpscr -+ rts -+ mov #0, r0 -+ -+.global fetestexcept -+.type fetestexcept, @function -+fetestexcept: -+ sts fpscr, r0 -+ and r4, r0 -+ rts -+ and #0x7c, r0 -+ -+.global feclearexcept -+.type feclearexcept, @function -+feclearexcept: -+ mov r4, r0 -+ and #0x7c, r0 -+ not r0, r4 -+ sts fpscr, r0 -+ and r4, r0 -+ lds r0, fpscr -+ rts -+ mov #0, r0 -+ -+.global feraiseexcept -+.type feraiseexcept, @function -+feraiseexcept: -+ mov r4, r0 -+ and #0x7c, r0 -+ sts fpscr, r4 -+ or r4, r0 -+ lds r0, fpscr -+ rts -+ mov #0, r0 -+ -+.global fegetenv -+.type fegetenv, @function -+fegetenv: -+ sts fpscr, r0 -+ mov.l r0, @r4 -+ rts -+ mov #0, r0 -+ -+.global fesetenv -+.type fesetenv, @function -+fesetenv: -+ mov r4, r0 -+ cmp/eq #-1, r0 -+ bf 1f -+ -+ ! the default environment is complicated by the fact that we need to -+ ! preserve the current precision bit, which we do not know a priori -+ sts fpscr, r0 -+ mov #8, r1 -+ swap.w r1, r1 -+ bra 2f -+ and r1, r0 -+ -+1: mov.l @r4, r0 ! non-default environment -+2: lds r0, fpscr -+ rts -+ mov #0, r0 -diff -Nur musl-0.9.15/src/fenv/sheb-nofpu/fenv.sub musl-git/src/fenv/sheb-nofpu/fenv.sub ---- musl-0.9.15/src/fenv/sheb-nofpu/fenv.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/fenv/sheb-nofpu/fenv.sub 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1 @@ -+../fenv.c -diff -Nur musl-0.9.15/src/fenv/sh-nofpu/fenv.sub musl-git/src/fenv/sh-nofpu/fenv.sub ---- musl-0.9.15/src/fenv/sh-nofpu/fenv.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/fenv/sh-nofpu/fenv.sub 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1 @@ -+../fenv.c -diff -Nur musl-0.9.15/src/fenv/x32/fenv.s musl-git/src/fenv/x32/fenv.s ---- musl-0.9.15/src/fenv/x32/fenv.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/fenv/x32/fenv.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,97 @@ -+.global feclearexcept -+.type feclearexcept,@function -+feclearexcept: -+ # maintain exceptions in the sse mxcsr, clear x87 exceptions -+ mov %edi,%ecx -+ and $0x3f,%ecx -+ fnstsw %ax -+ test %eax,%ecx -+ jz 1f -+ fnclex -+1: stmxcsr -8(%esp) -+ and $0x3f,%eax -+ or %eax,-8(%esp) -+ test %ecx,-8(%esp) -+ jz 1f -+ not %ecx -+ and %ecx,-8(%esp) -+ ldmxcsr -8(%esp) -+1: xor %eax,%eax -+ ret -+ -+.global feraiseexcept -+.type feraiseexcept,@function -+feraiseexcept: -+ and $0x3f,%edi -+ stmxcsr -8(%esp) -+ or %edi,-8(%esp) -+ ldmxcsr -8(%esp) -+ xor %eax,%eax -+ ret -+ -+.global __fesetround -+.type __fesetround,@function -+__fesetround: -+ push %rax -+ xor %eax,%eax -+ mov %edi,%ecx -+ fnstcw (%esp) -+ andb $0xf3,1(%esp) -+ or %ch,1(%esp) -+ fldcw (%esp) -+ stmxcsr (%esp) -+ shl $3,%ch -+ andb $0x9f,1(%esp) -+ or %ch,1(%esp) -+ ldmxcsr (%esp) -+ pop %rcx -+ ret -+ -+.global fegetround -+.type fegetround,@function -+fegetround: -+ push %rax -+ stmxcsr (%esp) -+ pop %rax -+ shr $3,%eax -+ and $0xc00,%eax -+ ret -+ -+.global fegetenv -+.type fegetenv,@function -+fegetenv: -+ xor %eax,%eax -+ fnstenv (%edi) -+ stmxcsr 28(%edi) -+ ret -+ -+.global fesetenv -+.type fesetenv,@function -+fesetenv: -+ xor %eax,%eax -+ inc %edi -+ jz 1f -+ fldenv -1(%edi) -+ ldmxcsr 27(%edi) -+ ret -+1: push %rax -+ push %rax -+ pushq $0xffff -+ pushq $0x37f -+ fldenv (%esp) -+ pushq $0x1f80 -+ ldmxcsr (%esp) -+ add $40,%esp -+ ret -+ -+.global fetestexcept -+.type fetestexcept,@function -+fetestexcept: -+ and $0x3f,%edi -+ push %rax -+ stmxcsr (%esp) -+ pop %rsi -+ fnstsw %ax -+ or %esi,%eax -+ and %edi,%eax -+ ret -diff -Nur musl-0.9.15/src/fenv/x86_64/fenv.s musl-git/src/fenv/x86_64/fenv.s ---- musl-0.9.15/src/fenv/x86_64/fenv.s 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/fenv/x86_64/fenv.s 2014-03-19 07:42:48.000000000 +0100 -@@ -76,7 +76,7 @@ - ret - 1: push %rax - push %rax -- push %rax -+ pushq $0xffff - pushq $0x37f - fldenv (%rsp) - pushq $0x1f80 -diff -Nur musl-0.9.15/src/internal/sh/syscall.s musl-git/src/internal/sh/syscall.s ---- musl-0.9.15/src/internal/sh/syscall.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/internal/sh/syscall.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,22 @@ -+.global __syscall -+.type __syscall, @function -+__syscall: -+ ! The kernel syscall entry point documents that the trap number indicates -+ ! the number of arguments being passed, but it then ignores that information. -+ ! Since we do not actually know how many arguments are being passed, we will -+ ! say there are six, since that is the maximum we support here. -+ mov r4, r3 -+ mov r5, r4 -+ mov r6, r5 -+ mov r7, r6 -+ mov.l @r15, r7 -+ mov.l @(4,r15), r0 -+ mov.l @(8,r15), r1 -+ trapa #22 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ rts -+ nop -diff -Nur musl-0.9.15/src/internal/stdio_impl.h musl-git/src/internal/stdio_impl.h ---- musl-0.9.15/src/internal/stdio_impl.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/internal/stdio_impl.h 2014-03-19 07:42:48.000000000 +0100 -@@ -17,6 +17,7 @@ - #define F_EOF 16 - #define F_ERR 32 - #define F_SVB 64 -+#define F_APP 128 - - struct _IO_FILE { - unsigned flags; -diff -Nur musl-0.9.15/src/internal/syscall.h musl-git/src/internal/syscall.h ---- musl-0.9.15/src/internal/syscall.h 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/internal/syscall.h 2014-03-19 07:42:48.000000000 +0100 -@@ -1,22 +1,28 @@ - #ifndef _INTERNAL_SYSCALL_H - #define _INTERNAL_SYSCALL_H - --#if defined(__PIC__) && (100*__GNUC__+__GNUC_MINOR__ >= 303) --__attribute__((visibility("protected"))) --#endif --long __syscall_ret(unsigned long), __syscall(long, ...), -- __syscall_cp(long, long, long, long, long, long, long); -- - #include - #include "syscall_arch.h" - --#define __syscall1(n,a) __syscall1(n,(long)(a)) --#define __syscall2(n,a,b) __syscall2(n,(long)(a),(long)(b)) --#define __syscall3(n,a,b,c) __syscall3(n,(long)(a),(long)(b),(long)(c)) --#define __syscall4(n,a,b,c,d) __syscall4(n,(long)(a),(long)(b),(long)(c),(long)(d)) --#define __syscall5(n,a,b,c,d,e) __syscall5(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e)) --#define __syscall6(n,a,b,c,d,e,f) __syscall6(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e),(long)(f)) --#define __syscall7(n,a,b,c,d,e,f,g) (__syscall)(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e),(long)(f),(long)g) -+#ifndef __scc -+#define __scc(X) ((long) (X)) -+typedef long syscall_arg_t; -+#endif -+ -+#if defined(__PIC__) && (100*__GNUC__+__GNUC_MINOR__ >= 303) -+__attribute__((visibility("protected"))) -+#endif -+long __syscall_ret(unsigned long), __syscall(syscall_arg_t, ...), -+ __syscall_cp(syscall_arg_t, syscall_arg_t, syscall_arg_t, syscall_arg_t, -+ syscall_arg_t, syscall_arg_t, syscall_arg_t); -+ -+#define __syscall1(n,a) __syscall1(n,__scc(a)) -+#define __syscall2(n,a,b) __syscall2(n,__scc(a),__scc(b)) -+#define __syscall3(n,a,b,c) __syscall3(n,__scc(a),__scc(b),__scc(c)) -+#define __syscall4(n,a,b,c,d) __syscall4(n,__scc(a),__scc(b),__scc(c),__scc(d)) -+#define __syscall5(n,a,b,c,d,e) __syscall5(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e)) -+#define __syscall6(n,a,b,c,d,e,f) __syscall6(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f)) -+#define __syscall7(n,a,b,c,d,e,f,g) (__syscall)(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f),__scc(g)) - - #define __SYSCALL_NARGS_X(a,b,c,d,e,f,g,h,n,...) n - #define __SYSCALL_NARGS(...) __SYSCALL_NARGS_X(__VA_ARGS__,7,6,5,4,3,2,1,0,) -@@ -31,12 +37,12 @@ - #define socketcall_cp __socketcall_cp - - #define __syscall_cp0(n) (__syscall_cp)(n,0,0,0,0,0,0) --#define __syscall_cp1(n,a) (__syscall_cp)(n,(long)(a),0,0,0,0,0) --#define __syscall_cp2(n,a,b) (__syscall_cp)(n,(long)(a),(long)(b),0,0,0,0) --#define __syscall_cp3(n,a,b,c) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),0,0,0) --#define __syscall_cp4(n,a,b,c,d) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),(long)(d),0,0) --#define __syscall_cp5(n,a,b,c,d,e) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e),0) --#define __syscall_cp6(n,a,b,c,d,e,f) (__syscall_cp)(n,(long)(a),(long)(b),(long)(c),(long)(d),(long)(e),(long)(f)) -+#define __syscall_cp1(n,a) (__syscall_cp)(n,__scc(a),0,0,0,0,0) -+#define __syscall_cp2(n,a,b) (__syscall_cp)(n,__scc(a),__scc(b),0,0,0,0) -+#define __syscall_cp3(n,a,b,c) (__syscall_cp)(n,__scc(a),__scc(b),__scc(c),0,0,0) -+#define __syscall_cp4(n,a,b,c,d) (__syscall_cp)(n,__scc(a),__scc(b),__scc(c),__scc(d),0,0) -+#define __syscall_cp5(n,a,b,c,d,e) (__syscall_cp)(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),0) -+#define __syscall_cp6(n,a,b,c,d,e,f) (__syscall_cp)(n,__scc(a),__scc(b),__scc(c),__scc(d),__scc(e),__scc(f)) - - #define __syscall_cp(...) __SYSCALL_DISP(__syscall_cp,__VA_ARGS__) - #define syscall_cp(...) __syscall_ret(__syscall_cp(__VA_ARGS__)) -diff -Nur musl-0.9.15/src/internal/x32/syscall.s musl-git/src/internal/x32/syscall.s ---- musl-0.9.15/src/internal/x32/syscall.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/internal/x32/syscall.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,12 @@ -+.global __syscall -+.type __syscall,@function -+__syscall: -+ movq %rdi,%rax -+ movq %rsi,%rdi -+ movq %rdx,%rsi -+ movq %rcx,%rdx -+ movq %r8,%r10 -+ movq %r9,%r8 -+ movq 8(%rsp),%r9 -+ syscall -+ ret -diff -Nur musl-0.9.15/src/ipc/semctl.c musl-git/src/ipc/semctl.c ---- musl-0.9.15/src/ipc/semctl.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/ipc/semctl.c 2014-03-19 07:42:48.000000000 +0100 -@@ -3,16 +3,26 @@ - #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 = {0}; - va_list ap; -- va_start(ap, cmd); -- arg = va_arg(ap, long); -- va_end(ap); -+ switch (cmd) { -+ case SETVAL: case GETALL: case SETALL: case IPC_STAT: case IPC_SET: -+ case IPC_INFO: case SEM_INFO: case SEM_STAT: -+ va_start(ap, cmd); -+ arg = va_arg(ap, union semun); -+ va_end(ap); -+ } - #ifdef SYS_semctl -- return syscall(SYS_semctl, id, num, cmd | IPC_64, arg); -+ return syscall(SYS_semctl, id, num, cmd | IPC_64, arg.buf); - #else -- return syscall(SYS_ipc, IPCOP_semctl, id, num, cmd | IPC_64, &arg); -+ return syscall(SYS_ipc, IPCOP_semctl, id, num, cmd | IPC_64, &arg.buf); - #endif - } -diff -Nur musl-0.9.15/src/ldso/dladdr.c musl-git/src/ldso/dladdr.c ---- musl-0.9.15/src/ldso/dladdr.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/ldso/dladdr.c 2014-03-19 07:42:48.000000000 +0100 -@@ -1,9 +1,9 @@ - #define _GNU_SOURCE - #include - --int __dladdr(void *, Dl_info *); -+int __dladdr(const void *, Dl_info *); - --int dladdr(void *addr, Dl_info *info) -+int dladdr(const void *addr, Dl_info *info) - { - return __dladdr(addr, info); - } -diff -Nur musl-0.9.15/src/ldso/dynlink.c musl-git/src/ldso/dynlink.c ---- musl-0.9.15/src/ldso/dynlink.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/ldso/dynlink.c 2014-03-19 07:42:48.000000000 +0100 -@@ -253,7 +253,8 @@ - name = strings + sym->st_name; - ctx = IS_COPY(type) ? head->next : head; - def = find_sym(ctx, name, IS_PLT(type)); -- if (!def.sym && sym->st_info>>4 != STB_WEAK) { -+ if (!def.sym && (sym->st_shndx != SHN_UNDEF -+ || sym->st_info>>4 != STB_WEAK)) { - snprintf(errbuf, sizeof errbuf, - "Error relocating %s: %s: symbol not found", - dso->name, name); -@@ -1331,7 +1332,7 @@ - return 0; - } - --int __dladdr(void *addr, Dl_info *info) -+int __dladdr(const void *addr, Dl_info *info) - { - struct dso *p; - Sym *sym; -@@ -1441,7 +1442,7 @@ - { - return 0; - } --int __dladdr (void *addr, Dl_info *info) -+int __dladdr (const void *addr, Dl_info *info) - { - return 0; - } -diff -Nur musl-0.9.15/src/ldso/sh/dlsym.s musl-git/src/ldso/sh/dlsym.s ---- musl-0.9.15/src/ldso/sh/dlsym.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/ldso/sh/dlsym.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,10 @@ -+.text -+.global dlsym -+.type dlsym, @function -+dlsym: -+ mov.l L1, r0 -+ braf r0 -+1: mov.l @r15, r6 -+ -+.align 2 -+L1: .long __dlsym@PLT-(1b-.) -diff -Nur musl-0.9.15/src/ldso/sh/start.s musl-git/src/ldso/sh/start.s ---- musl-0.9.15/src/ldso/sh/start.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/ldso/sh/start.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,26 @@ -+.text -+.global _start -+.type _start, @function -+_start: -+ mov.l @r15, r4 -+ mov r15, r5 -+ mov.l L1, r0 -+ bsrf r0 -+ add #4, r5 -+ -+2: mov r0, r2 -+ mov.l @r15+, r1 -+1: mov.l @r15+, r0 -+ cmp/eq #-1, r0 -+ bt/s 1b -+ add #-1, r1 -+ -+ add #1, r1 -+ mov.l r0, @-r15 -+ mov.l r1, @-r15 -+ mov #0, r4 -+ jmp @r2 -+ nop -+ -+.align 2 -+L1: .long __dynlink@PLT-(2b-.) -diff -Nur musl-0.9.15/src/ldso/x32/dlsym.s musl-git/src/ldso/x32/dlsym.s ---- musl-0.9.15/src/ldso/x32/dlsym.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/ldso/x32/dlsym.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,6 @@ -+.text -+.global dlsym -+.type dlsym,@function -+dlsym: -+ mov (%rsp),%rdx -+ jmp __dlsym -diff -Nur musl-0.9.15/src/ldso/x32/start.s musl-git/src/ldso/x32/start.s ---- musl-0.9.15/src/ldso/x32/start.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/ldso/x32/start.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,24 @@ -+.text -+.global _start -+_start: -+ mov (%rsp),%rdi /* move argc into 1st argument slot */ -+ lea 4(%rsp),%rsi /* move argv into 2nd argument slot */ -+ call __dynlink -+ /* in case the dynlinker was called directly, it sets the "consumed" -+ argv values to -1. so we must loop over the array as long as -1 -+ is in the top argv slot, decrement argc, and then set the stackpointer -+ to the new argc as well as argc's new value. -+ as the x32 abi has longs in the argv array, we cannot use push/pop.*/ -+ movl (%rsp),%edi /* copy argc into edi */ -+ xor %rdx,%rdx /* we use rdx as an offset to the current argv member */ -+1: dec %edi -+ addl $4, %edx -+ movl (%rsp, %rdx), %esi -+ cmp $-1,%esi -+ jz 1b -+ inc %edi -+ subl $4, %edx -+ lea (%rsp, %rdx), %rsp /* set rsp to new argv[-1] */ -+ movl %edi, (%rsp) /* write new argc there */ -+ xor %edx,%edx -+ jmp *%rax -diff -Nur musl-0.9.15/src/linux/clone.c musl-git/src/linux/clone.c ---- musl-0.9.15/src/linux/clone.c 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/linux/clone.c 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,19 @@ -+#include -+#include -+#include "pthread_impl.h" -+#include "syscall.h" -+ -+int clone(int (*func)(void *), void *stack, int flags, void *arg, ...) -+{ -+ va_list ap; -+ pid_t *ptid, *ctid; -+ void *tls; -+ -+ va_start(ap, arg); -+ ptid = va_arg(ap, pid_t *); -+ tls = va_arg(ap, void *); -+ ctid = va_arg(ap, pid_t *); -+ va_end(ap); -+ -+ return __syscall_ret(__clone(func, stack, flags, arg, ptid, tls, ctid)); -+} -diff -Nur musl-0.9.15/src/linux/fallocate.c musl-git/src/linux/fallocate.c ---- musl-0.9.15/src/linux/fallocate.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/linux/fallocate.c 2014-03-19 07:42:48.000000000 +0100 -@@ -1,9 +1,13 @@ - #define _GNU_SOURCE - #include - #include "syscall.h" -+#include "libc.h" - - int fallocate(int fd, int mode, off_t base, off_t len) - { - return syscall(SYS_fallocate, fd, mode, __SYSCALL_LL_E(base), - __SYSCALL_LL_E(len)); - } -+ -+#undef fallocate64 -+LFS64(fallocate); -diff -Nur musl-0.9.15/src/linux/inotify.c musl-git/src/linux/inotify.c ---- musl-0.9.15/src/linux/inotify.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/linux/inotify.c 2014-03-19 07:42:48.000000000 +0100 -@@ -15,7 +15,7 @@ - return syscall(SYS_inotify_add_watch, fd, pathname, mask); - } - --int inotify_rm_watch(int fd, uint32_t wd) -+int inotify_rm_watch(int fd, int wd) - { - return syscall(SYS_inotify_rm_watch, fd, wd); - } -diff -Nur musl-0.9.15/src/linux/remap_file_pages.c musl-git/src/linux/remap_file_pages.c ---- musl-0.9.15/src/linux/remap_file_pages.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/linux/remap_file_pages.c 2014-03-19 07:42:48.000000000 +0100 -@@ -2,7 +2,7 @@ - #include - #include "syscall.h" - --int remap_file_pages(void *addr, size_t size, int prot, ssize_t pgoff, int flags) -+int remap_file_pages(void *addr, size_t size, int prot, size_t pgoff, int flags) - { - return syscall(SYS_remap_file_pages, addr, size, prot, pgoff, flags); - } -diff -Nur musl-0.9.15/src/linux/stime.c musl-git/src/linux/stime.c ---- musl-0.9.15/src/linux/stime.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/linux/stime.c 2014-03-19 07:42:48.000000000 +0100 -@@ -2,7 +2,7 @@ - #include - #include - --int stime(time_t *t) -+int stime(const time_t *t) - { - struct timeval tv = { .tv_sec = *t, .tv_usec = 0 }; - return settimeofday(&tv, (void *)0); -diff -Nur musl-0.9.15/src/linux/x32/sysinfo.s musl-git/src/linux/x32/sysinfo.s ---- musl-0.9.15/src/linux/x32/sysinfo.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/linux/x32/sysinfo.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,5 @@ -+.text -+.global sysinfo -+.type sysinfo,@function -+sysinfo: -+ jmp __x32_sysinfo -diff -Nur musl-0.9.15/src/locale/wcsxfrm.c musl-git/src/locale/wcsxfrm.c ---- musl-0.9.15/src/locale/wcsxfrm.c 2014-01-03 21:12:17.000000000 +0100 -+++ musl-git/src/locale/wcsxfrm.c 2014-03-19 07:42:48.000000000 +0100 -@@ -6,10 +6,12 @@ - size_t __wcsxfrm_l(wchar_t *restrict dest, const wchar_t *restrict src, size_t n, locale_t loc) - { - size_t l = wcslen(src); -- if (l >= n) { -+ if (l < n) { -+ wmemcpy(dest, src, l+1); -+ } else if (n) { - wmemcpy(dest, src, n-1); - dest[n-1] = 0; -- } else wcscpy(dest, src); -+ } - return l; - } - -diff -Nur musl-0.9.15/src/math/i386/remainderf.s musl-git/src/math/i386/remainderf.s ---- musl-0.9.15/src/math/i386/remainderf.s 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/math/i386/remainderf.s 2014-03-19 07:42:48.000000000 +0100 -@@ -1,6 +1,9 @@ - .global remainderf - .type remainderf,@function - remainderf: -+.weak dremf -+.type dremf,@function -+dremf: - flds 8(%esp) - flds 4(%esp) - 1: fprem1 -diff -Nur musl-0.9.15/src/math/i386/remainder.s musl-git/src/math/i386/remainder.s ---- musl-0.9.15/src/math/i386/remainder.s 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/math/i386/remainder.s 2014-03-19 07:42:48.000000000 +0100 -@@ -1,6 +1,9 @@ - .global remainder - .type remainder,@function - remainder: -+.weak drem -+.type drem,@function -+drem: - fldl 12(%esp) - fldl 4(%esp) - 1: fprem1 -diff -Nur musl-0.9.15/src/math/x32/acosl.s musl-git/src/math/x32/acosl.s ---- musl-0.9.15/src/math/x32/acosl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/acosl.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,16 @@ -+# see ../i386/acos.s -+ -+.global acosl -+.type acosl,@function -+acosl: -+ fldt 8(%esp) -+1: fld %st(0) -+ fld1 -+ fsub %st(0),%st(1) -+ fadd %st(2) -+ fmulp -+ fsqrt -+ fabs -+ fxch %st(1) -+ fpatan -+ ret -diff -Nur musl-0.9.15/src/math/x32/asinl.s musl-git/src/math/x32/asinl.s ---- musl-0.9.15/src/math/x32/asinl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/asinl.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,12 @@ -+.global asinl -+.type asinl,@function -+asinl: -+ fldt 8(%esp) -+1: fld %st(0) -+ fld1 -+ fsub %st(0),%st(1) -+ fadd %st(2) -+ fmulp -+ fsqrt -+ fpatan -+ ret -diff -Nur musl-0.9.15/src/math/x32/atan2l.s musl-git/src/math/x32/atan2l.s ---- musl-0.9.15/src/math/x32/atan2l.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/atan2l.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,7 @@ -+.global atan2l -+.type atan2l,@function -+atan2l: -+ fldt 8(%esp) -+ fldt 24(%esp) -+ fpatan -+ ret -diff -Nur musl-0.9.15/src/math/x32/atanl.s musl-git/src/math/x32/atanl.s ---- musl-0.9.15/src/math/x32/atanl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/atanl.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,7 @@ -+.global atanl -+.type atanl,@function -+atanl: -+ fldt 8(%esp) -+ fld1 -+ fpatan -+ ret -diff -Nur musl-0.9.15/src/math/x32/ceill.s musl-git/src/math/x32/ceill.s ---- musl-0.9.15/src/math/x32/ceill.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/ceill.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1 @@ -+# see floorl.s -diff -Nur musl-0.9.15/src/math/x32/exp2l.s musl-git/src/math/x32/exp2l.s ---- musl-0.9.15/src/math/x32/exp2l.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/exp2l.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,90 @@ -+.global expm1l -+.type expm1l,@function -+expm1l: -+ fldt 8(%esp) -+ fldl2e -+ fmulp -+ movl $0xc2820000,-4(%esp) -+ flds -4(%esp) -+ fucomp %st(1) -+ fnstsw %ax -+ sahf -+ fld1 -+ jb 1f -+ # x*log2e <= -65, return -1 without underflow -+ fstp %st(1) -+ fchs -+ ret -+1: fld %st(1) -+ fabs -+ fucom %st(1) -+ fnstsw %ax -+ fstp %st(0) -+ fstp %st(0) -+ sahf -+ ja 1f -+ f2xm1 -+ ret -+1: push %rax -+ call 1f -+ pop %rax -+ fld1 -+ fsubrp -+ ret -+ -+.global exp2l -+.type exp2l,@function -+exp2l: -+ fldt 8(%esp) -+1: fld %st(0) -+ sub $16,%esp -+ fstpt (%esp) -+ mov 8(%esp),%ax -+ and $0x7fff,%ax -+ cmp $0x3fff+13,%ax -+ jb 4f # |x| < 8192 -+ cmp $0x3fff+15,%ax -+ jae 3f # |x| >= 32768 -+ fsts (%esp) -+ cmpl $0xc67ff800,(%esp) -+ jb 2f # x > -16382 -+ movl $0x5f000000,(%esp) -+ flds (%esp) # 0x1p63 -+ fld %st(1) -+ fsub %st(1) -+ faddp -+ fucomp %st(1) -+ fnstsw -+ sahf -+ je 2f # x - 0x1p63 + 0x1p63 == x -+ movl $1,(%esp) -+ flds (%esp) # 0x1p-149 -+ fdiv %st(1) -+ fstps (%esp) # raise underflow -+2: fld1 -+ fld %st(1) -+ frndint -+ fxch %st(2) -+ fsub %st(2) # st(0)=x-rint(x), st(1)=1, st(2)=rint(x) -+ f2xm1 -+ faddp # 2^(x-rint(x)) -+1: fscale -+ fstp %st(1) -+ add $16,%esp -+ ret -+3: xor %eax,%eax -+4: cmp $0x3fff-64,%ax -+ fld1 -+ jb 1b # |x| < 0x1p-64 -+ fstpt (%esp) -+ fistl 8(%esp) -+ fildl 8(%esp) -+ fsubrp %st(1) -+ addl $0x3fff,8(%esp) -+ f2xm1 -+ fld1 -+ faddp # 2^(x-rint(x)) -+ fldt (%esp) # 2^rint(x) -+ fmulp -+ add $16,%esp -+ ret -diff -Nur musl-0.9.15/src/math/x32/expl.s musl-git/src/math/x32/expl.s ---- musl-0.9.15/src/math/x32/expl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/expl.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,101 @@ -+# exp(x) = 2^hi + 2^hi (2^lo - 1) -+# where hi+lo = log2e*x with 128bit precision -+# exact log2e*x calculation depends on nearest rounding mode -+# using the exact multiplication method of Dekker and Veltkamp -+ -+.global expl -+.type expl,@function -+expl: -+ fldt 8(%esp) -+ -+ # interesting case: 0x1p-32 <= |x| < 16384 -+ # check if (exponent|0x8000) is in [0xbfff-32, 0xbfff+13] -+ mov 16(%esp), %ax -+ or $0x8000, %ax -+ sub $0xbfdf, %ax -+ cmp $45, %ax -+ jbe 2f -+ test %ax, %ax -+ fld1 -+ js 1f -+ # if |x|>=0x1p14 or nan return 2^trunc(x) -+ fscale -+ fstp %st(1) -+ ret -+ # if |x|<0x1p-32 return 1+x -+1: faddp -+ ret -+ -+ # should be 0x1.71547652b82fe178p0L == 0x3fff b8aa3b29 5c17f0bc -+ # it will be wrong on non-nearest rounding mode -+2: fldl2e -+ sub $48, %esp -+ # hi = log2e_hi*x -+ # 2^hi = exp2l(hi) -+ fmul %st(1),%st -+ fld %st(0) -+ fstpt (%esp) -+ fstpt 16(%esp) -+ fstpt 32(%esp) -+ call exp2l -+ # if 2^hi == inf return 2^hi -+ fld %st(0) -+ fstpt (%esp) -+ cmpw $0x7fff, 8(%esp) -+ je 1f -+ fldt 32(%esp) -+ fldt 16(%esp) -+ # fpu stack: 2^hi x hi -+ # exact mult: x*log2e -+ fld %st(1) -+ # c = 0x1p32+1 -+ movq $0x41f0000000100000,%rax -+ pushq %rax -+ fldl (%esp) -+ # xh = x - c*x + c*x -+ # xl = x - xh -+ fmulp -+ fld %st(2) -+ fsub %st(1), %st -+ faddp -+ fld %st(2) -+ fsub %st(1), %st -+ # yh = log2e_hi - c*log2e_hi + c*log2e_hi -+ movq $0x3ff7154765200000,%rax -+ pushq %rax -+ fldl (%esp) -+ # fpu stack: 2^hi x hi xh xl yh -+ # lo = hi - xh*yh + xl*yh -+ fld %st(2) -+ fmul %st(1), %st -+ fsubp %st, %st(4) -+ fmul %st(1), %st -+ faddp %st, %st(3) -+ # yl = log2e_hi - yh -+ movq $0x3de705fc2f000000,%rax -+ pushq %rax -+ fldl (%esp) -+ # fpu stack: 2^hi x lo xh xl yl -+ # lo += xh*yl + xl*yl -+ fmul %st, %st(2) -+ fmulp %st, %st(1) -+ fxch %st(2) -+ faddp -+ faddp -+ # log2e_lo -+ movq $0xbfbe,%rax -+ pushq %rax -+ movq $0x82f0025f2dc582ee,%rax -+ pushq %rax -+ fldt (%esp) -+ add $40,%esp -+ # fpu stack: 2^hi x lo log2e_lo -+ # lo += log2e_lo*x -+ # return 2^hi + 2^hi (2^lo - 1) -+ fmulp %st, %st(2) -+ faddp -+ f2xm1 -+ fmul %st(1), %st -+ faddp -+1: add $48, %esp -+ ret -diff -Nur musl-0.9.15/src/math/x32/expm1l.s musl-git/src/math/x32/expm1l.s ---- musl-0.9.15/src/math/x32/expm1l.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/expm1l.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1 @@ -+# see exp2l.s -diff -Nur musl-0.9.15/src/math/x32/fabsf.s musl-git/src/math/x32/fabsf.s ---- musl-0.9.15/src/math/x32/fabsf.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/fabsf.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,7 @@ -+.global fabsf -+.type fabsf,@function -+fabsf: -+ mov $0x7fffffff,%eax -+ movq %rax,%xmm1 -+ andps %xmm1,%xmm0 -+ ret -diff -Nur musl-0.9.15/src/math/x32/fabsl.s musl-git/src/math/x32/fabsl.s ---- musl-0.9.15/src/math/x32/fabsl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/fabsl.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,6 @@ -+.global fabsl -+.type fabsl,@function -+fabsl: -+ fldt 8(%esp) -+ fabs -+ ret -diff -Nur musl-0.9.15/src/math/x32/fabs.s musl-git/src/math/x32/fabs.s ---- musl-0.9.15/src/math/x32/fabs.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/fabs.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,9 @@ -+.global fabs -+.type fabs,@function -+fabs: -+ xor %eax,%eax -+ dec %rax -+ shr %rax -+ movq %rax,%xmm1 -+ andpd %xmm1,%xmm0 -+ ret -diff -Nur musl-0.9.15/src/math/x32/floorl.s musl-git/src/math/x32/floorl.s ---- musl-0.9.15/src/math/x32/floorl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/floorl.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,27 @@ -+.global floorl -+.type floorl,@function -+floorl: -+ fldt 8(%esp) -+1: mov $0x7,%al -+1: fstcw 8(%esp) -+ mov 9(%esp),%ah -+ mov %al,9(%esp) -+ fldcw 8(%esp) -+ frndint -+ mov %ah,9(%esp) -+ fldcw 8(%esp) -+ ret -+ -+.global ceill -+.type ceill,@function -+ceill: -+ fldt 8(%esp) -+ mov $0xb,%al -+ jmp 1b -+ -+.global truncl -+.type truncl,@function -+truncl: -+ fldt 8(%esp) -+ mov $0xf,%al -+ jmp 1b -diff -Nur musl-0.9.15/src/math/x32/fmodl.s musl-git/src/math/x32/fmodl.s ---- musl-0.9.15/src/math/x32/fmodl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/fmodl.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,11 @@ -+.global fmodl -+.type fmodl,@function -+fmodl: -+ fldt 24(%esp) -+ fldt 8(%esp) -+1: fprem -+ fstsw %ax -+ sahf -+ jp 1b -+ fstp %st(1) -+ ret -diff -Nur musl-0.9.15/src/math/x32/llrintf.s musl-git/src/math/x32/llrintf.s ---- musl-0.9.15/src/math/x32/llrintf.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/llrintf.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,5 @@ -+.global llrintf -+.type llrintf,@function -+llrintf: -+ cvtss2si %xmm0,%rax -+ ret -diff -Nur musl-0.9.15/src/math/x32/llrintl.s musl-git/src/math/x32/llrintl.s ---- musl-0.9.15/src/math/x32/llrintl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/llrintl.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,7 @@ -+.global llrintl -+.type llrintl,@function -+llrintl: -+ fldt 8(%esp) -+ fistpll 8(%esp) -+ mov 8(%esp),%rax -+ ret -diff -Nur musl-0.9.15/src/math/x32/llrint.s musl-git/src/math/x32/llrint.s ---- musl-0.9.15/src/math/x32/llrint.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/llrint.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,5 @@ -+.global llrint -+.type llrint,@function -+llrint: -+ cvtsd2si %xmm0,%rax -+ ret -diff -Nur musl-0.9.15/src/math/x32/log10l.s musl-git/src/math/x32/log10l.s ---- musl-0.9.15/src/math/x32/log10l.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/log10l.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,7 @@ -+.global log10l -+.type log10l,@function -+log10l: -+ fldlg2 -+ fldt 8(%esp) -+ fyl2x -+ ret -diff -Nur musl-0.9.15/src/math/x32/log1pl.s musl-git/src/math/x32/log1pl.s ---- musl-0.9.15/src/math/x32/log1pl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/log1pl.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,15 @@ -+.global log1pl -+.type log1pl,@function -+log1pl: -+ mov 14(%esp),%eax -+ fldln2 -+ and $0x7fffffff,%eax -+ fldt 8(%esp) -+ cmp $0x3ffd9400,%eax -+ ja 1f -+ fyl2xp1 -+ ret -+1: fld1 -+ faddp -+ fyl2x -+ ret -diff -Nur musl-0.9.15/src/math/x32/log2l.s musl-git/src/math/x32/log2l.s ---- musl-0.9.15/src/math/x32/log2l.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/log2l.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,7 @@ -+.global log2l -+.type log2l,@function -+log2l: -+ fld1 -+ fldt 8(%esp) -+ fyl2x -+ ret -diff -Nur musl-0.9.15/src/math/x32/logl.s musl-git/src/math/x32/logl.s ---- musl-0.9.15/src/math/x32/logl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/logl.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,7 @@ -+.global logl -+.type logl,@function -+logl: -+ fldln2 -+ fldt 8(%esp) -+ fyl2x -+ ret -diff -Nur musl-0.9.15/src/math/x32/lrintf.s musl-git/src/math/x32/lrintf.s ---- musl-0.9.15/src/math/x32/lrintf.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/lrintf.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,5 @@ -+.global lrintf -+.type lrintf,@function -+lrintf: -+ cvtss2si %xmm0,%rax -+ ret -diff -Nur musl-0.9.15/src/math/x32/lrintl.s musl-git/src/math/x32/lrintl.s ---- musl-0.9.15/src/math/x32/lrintl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/lrintl.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,7 @@ -+.global lrintl -+.type lrintl,@function -+lrintl: -+ fldt 8(%esp) -+ fistpll 8(%esp) -+ mov 8(%esp),%rax -+ ret -diff -Nur musl-0.9.15/src/math/x32/lrint.s musl-git/src/math/x32/lrint.s ---- musl-0.9.15/src/math/x32/lrint.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/lrint.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,5 @@ -+.global lrint -+.type lrint,@function -+lrint: -+ cvtsd2si %xmm0,%rax -+ ret -diff -Nur musl-0.9.15/src/math/x32/remainderl.s musl-git/src/math/x32/remainderl.s ---- musl-0.9.15/src/math/x32/remainderl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/remainderl.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,11 @@ -+.global remainderl -+.type remainderl,@function -+remainderl: -+ fldt 24(%esp) -+ fldt 8(%esp) -+1: fprem1 -+ fstsw %ax -+ sahf -+ jp 1b -+ fstp %st(1) -+ ret -diff -Nur musl-0.9.15/src/math/x32/rintl.s musl-git/src/math/x32/rintl.s ---- musl-0.9.15/src/math/x32/rintl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/rintl.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,6 @@ -+.global rintl -+.type rintl,@function -+rintl: -+ fldt 8(%esp) -+ frndint -+ ret -diff -Nur musl-0.9.15/src/math/x32/sqrtf.s musl-git/src/math/x32/sqrtf.s ---- musl-0.9.15/src/math/x32/sqrtf.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/sqrtf.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,4 @@ -+.global sqrtf -+.type sqrtf,@function -+sqrtf: sqrtss %xmm0, %xmm0 -+ ret -diff -Nur musl-0.9.15/src/math/x32/sqrtl.s musl-git/src/math/x32/sqrtl.s ---- musl-0.9.15/src/math/x32/sqrtl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/sqrtl.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,5 @@ -+.global sqrtl -+.type sqrtl,@function -+sqrtl: fldt 8(%esp) -+ fsqrt -+ ret -diff -Nur musl-0.9.15/src/math/x32/sqrt.s musl-git/src/math/x32/sqrt.s ---- musl-0.9.15/src/math/x32/sqrt.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/sqrt.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,4 @@ -+.global sqrt -+.type sqrt,@function -+sqrt: sqrtsd %xmm0, %xmm0 -+ ret -diff -Nur musl-0.9.15/src/math/x32/truncl.s musl-git/src/math/x32/truncl.s ---- musl-0.9.15/src/math/x32/truncl.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/math/x32/truncl.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1 @@ -+# see floorl.s -diff -Nur musl-0.9.15/src/misc/nftw.c musl-git/src/misc/nftw.c ---- musl-0.9.15/src/misc/nftw.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/misc/nftw.c 2014-03-19 07:42:48.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/misc/pty.c musl-git/src/misc/pty.c ---- musl-0.9.15/src/misc/pty.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/misc/pty.c 2014-03-19 07:42:48.000000000 +0100 -@@ -26,7 +26,7 @@ - { - int pty, err; - if (!buf) len = 0; -- if ((err = __syscall(SYS_ioctl, fd, TIOCGPTN, &pty))) return err; -+ if ((err = __syscall(SYS_ioctl, fd, TIOCGPTN, &pty))) return -err; - if (snprintf(buf, len, "/dev/pts/%d", pty) >= len) return ERANGE; - return 0; - } -diff -Nur musl-0.9.15/src/misc/syscall.c musl-git/src/misc/syscall.c ---- musl-0.9.15/src/misc/syscall.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/misc/syscall.c 2014-03-19 07:42:48.000000000 +0100 -@@ -6,14 +6,14 @@ - long syscall(long n, ...) - { - va_list ap; -- long a,b,c,d,e,f; -+ syscall_arg_t a,b,c,d,e,f; - va_start(ap, n); -- a=va_arg(ap, long); -- b=va_arg(ap, long); -- c=va_arg(ap, long); -- d=va_arg(ap, long); -- e=va_arg(ap, long); -- f=va_arg(ap, long); -+ a=va_arg(ap, syscall_arg_t); -+ b=va_arg(ap, syscall_arg_t); -+ c=va_arg(ap, syscall_arg_t); -+ d=va_arg(ap, syscall_arg_t); -+ e=va_arg(ap, syscall_arg_t); -+ f=va_arg(ap, syscall_arg_t); - va_end(ap); - return __syscall_ret(__syscall(n,a,b,c,d,e,f)); - } -diff -Nur musl-0.9.15/src/network/accept4.c musl-git/src/network/accept4.c ---- musl-0.9.15/src/network/accept4.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/network/accept4.c 2014-03-19 07:42:48.000000000 +0100 -@@ -1,9 +1,20 @@ - #define _GNU_SOURCE - #include -+#include -+#include - #include "syscall.h" - #include "libc.h" - - int accept4(int fd, struct sockaddr *restrict addr, socklen_t *restrict len, int flg) - { -- return socketcall_cp(accept4, fd, addr, len, flg, 0, 0); -+ if (!flg) return accept(fd, addr, len); -+ int ret = socketcall_cp(accept4, fd, addr, len, flg, 0, 0); -+ if (ret>=0 || (errno != ENOSYS && errno != EINVAL)) return ret; -+ ret = accept(fd, addr, len); -+ if (ret<0) return ret; -+ if (flg & SOCK_CLOEXEC) -+ __syscall(SYS_fcntl, ret, F_SETFD, FD_CLOEXEC); -+ if (flg & SOCK_NONBLOCK) -+ __syscall(SYS_fcntl, ret, F_SETFL, O_NONBLOCK); -+ return ret; - } -diff -Nur musl-0.9.15/src/network/inet_legacy.c musl-git/src/network/inet_legacy.c ---- musl-0.9.15/src/network/inet_legacy.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/network/inet_legacy.c 2014-03-19 07:42:48.000000000 +0100 -@@ -16,9 +16,8 @@ - return 1; - } - --struct in_addr inet_makeaddr(int net, int host) -+struct in_addr inet_makeaddr(in_addr_t n, in_addr_t h) - { -- uint32_t n = net, h = host; - if (n < 256) h |= n<<24; - else if (n < 65536) h |= n<<16; - else h |= n<<8; -diff -Nur musl-0.9.15/src/network/proto.c musl-git/src/network/proto.c ---- musl-0.9.15/src/network/proto.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/network/proto.c 2014-03-19 07:42:48.000000000 +0100 -@@ -4,7 +4,7 @@ - /* do we really need all these?? */ - - static int idx; --static const unsigned char protos[][6] = { -+static const unsigned char protos[][8] = { - "\000ip", - "\001icmp", - "\002igmp", -@@ -13,7 +13,9 @@ - "\014pup", - "\021udp", - "\026idp", -- "\377raw" -+ "\051ipv6", -+ "\072icmpv6", -+ "\377raw", - "\0\0" - }; - -diff -Nur musl-0.9.15/src/prng/random.c musl-git/src/prng/random.c ---- musl-0.9.15/src/prng/random.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/prng/random.c 2014-03-19 07:42:48.000000000 +0100 -@@ -1,10 +1,3 @@ --/* -- * random.c - Copyright © 2011 Szabolcs Nagy -- * Permission to use, copy, modify, and/or distribute this code -- * for any purpose with or without fee is hereby granted. -- * There is no warranty. --*/ -- - #include - #include - #include "libc.h" -@@ -12,11 +5,7 @@ - /* - this code uses the same lagged fibonacci generator as the - original bsd random implementation except for the seeding -- --different seeds produce different sequences with long period --(other libcs seed the state with a park-miller generator --when seed=0 some fail to produce good random sequence --others produce the same sequence as another seed) -+which was broken in the original - */ - - static uint32_t init[] = { -@@ -98,6 +87,7 @@ - n = 63; - x = (uint32_t*)state + 1; - __srandom(seed); -+ savestate(); - UNLOCK(lock); - return old; - } -diff -Nur musl-0.9.15/src/process/posix_spawn.c musl-git/src/process/posix_spawn.c ---- musl-0.9.15/src/process/posix_spawn.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/process/posix_spawn.c 2014-03-19 07:42:48.000000000 +0100 -@@ -166,7 +166,7 @@ - - close(args.p[0]); - -- if (!ec) *res = pid; -+ if (!ec && res) *res = pid; - - pthread_sigmask(SIG_SETMASK, &args.oldmask, 0); - pthread_setcancelstate(cs, 0); -diff -Nur musl-0.9.15/src/process/x32/vfork.s musl-git/src/process/x32/vfork.s ---- musl-0.9.15/src/process/x32/vfork.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/process/x32/vfork.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,12 @@ -+.global __vfork -+.weak vfork -+.type __vfork,@function -+.type vfork,@function -+__vfork: -+vfork: -+ pop %rdx -+ mov $0x4000003a,%eax /* SYS_vfork */ -+ syscall -+ push %rdx -+ mov %rax,%rdi -+ jmp __syscall_ret -diff -Nur musl-0.9.15/src/setjmp/mipsel-sf/longjmp.sub musl-git/src/setjmp/mipsel-sf/longjmp.sub ---- musl-0.9.15/src/setjmp/mipsel-sf/longjmp.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/mipsel-sf/longjmp.sub 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1 @@ -+../mips-sf/longjmp.s -diff -Nur musl-0.9.15/src/setjmp/mipsel-sf/setjmp.sub musl-git/src/setjmp/mipsel-sf/setjmp.sub ---- musl-0.9.15/src/setjmp/mipsel-sf/setjmp.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/mipsel-sf/setjmp.sub 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1 @@ -+../mips-sf/setjmp.s -diff -Nur musl-0.9.15/src/setjmp/mips-sf/longjmp.s musl-git/src/setjmp/mips-sf/longjmp.s ---- musl-0.9.15/src/setjmp/mips-sf/longjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/mips-sf/longjmp.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,25 @@ -+.set noreorder -+ -+.global _longjmp -+.global longjmp -+.type _longjmp,@function -+.type longjmp,@function -+_longjmp: -+longjmp: -+ move $2, $5 -+ bne $2, $0, 1f -+ nop -+ addu $2, $2, 1 -+1: lw $ra, 0($4) -+ lw $sp, 4($4) -+ lw $16, 8($4) -+ lw $17, 12($4) -+ lw $18, 16($4) -+ lw $19, 20($4) -+ lw $20, 24($4) -+ lw $21, 28($4) -+ lw $22, 32($4) -+ lw $23, 36($4) -+ lw $30, 40($4) -+ jr $ra -+ lw $28, 44($4) -diff -Nur musl-0.9.15/src/setjmp/mips-sf/longjmp.sub musl-git/src/setjmp/mips-sf/longjmp.sub ---- musl-0.9.15/src/setjmp/mips-sf/longjmp.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/mips-sf/longjmp.sub 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1 @@ -+longjmp.s -diff -Nur musl-0.9.15/src/setjmp/mips-sf/setjmp.s musl-git/src/setjmp/mips-sf/setjmp.s ---- musl-0.9.15/src/setjmp/mips-sf/setjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/mips-sf/setjmp.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,25 @@ -+.set noreorder -+ -+.global __setjmp -+.global _setjmp -+.global setjmp -+.type __setjmp,@function -+.type _setjmp,@function -+.type setjmp,@function -+__setjmp: -+_setjmp: -+setjmp: -+ sw $ra, 0($4) -+ sw $sp, 4($4) -+ sw $16, 8($4) -+ sw $17, 12($4) -+ sw $18, 16($4) -+ sw $19, 20($4) -+ sw $20, 24($4) -+ sw $21, 28($4) -+ sw $22, 32($4) -+ sw $23, 36($4) -+ sw $30, 40($4) -+ sw $28, 44($4) -+ jr $ra -+ li $2, 0 -diff -Nur musl-0.9.15/src/setjmp/mips-sf/setjmp.sub musl-git/src/setjmp/mips-sf/setjmp.sub ---- musl-0.9.15/src/setjmp/mips-sf/setjmp.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/mips-sf/setjmp.sub 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1 @@ -+setjmp.s -diff -Nur musl-0.9.15/src/setjmp/sh/longjmp.s musl-git/src/setjmp/sh/longjmp.s ---- musl-0.9.15/src/setjmp/sh/longjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/sh/longjmp.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,26 @@ -+.global _longjmp -+.global longjmp -+.type _longjmp, @function -+.type longjmp, @function -+_longjmp: -+longjmp: -+ mov.l @r4+, r8 -+ mov.l @r4+, r9 -+ mov.l @r4+, r10 -+ mov.l @r4+, r11 -+ mov.l @r4+, r12 -+ mov.l @r4+, r13 -+ mov.l @r4+, r14 -+ mov.l @r4+, r15 -+ lds.l @r4+, pr -+ fmov.s @r4+, fr12 -+ fmov.s @r4+, fr13 -+ fmov.s @r4+, fr14 -+ fmov.s @r4+, fr15 -+ -+ tst r5, r5 -+ movt r0 -+ add r5, r0 -+ -+ rts -+ nop -diff -Nur musl-0.9.15/src/setjmp/sh/setjmp.s musl-git/src/setjmp/sh/setjmp.s ---- musl-0.9.15/src/setjmp/sh/setjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/sh/setjmp.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,25 @@ -+.global __setjmp -+.global _setjmp -+.global setjmp -+.type __setjmp, @function -+.type _setjmp, @function -+.type setjmp, @function -+__setjmp: -+_setjmp: -+setjmp: -+ add #52, r4 -+ fmov.s fr15, @-r4 -+ fmov.s fr14, @-r4 -+ fmov.s fr13, @-r4 -+ fmov.s fr12, @-r4 -+ sts.l pr, @-r4 -+ mov.l r15 @-r4 -+ mov.l r14, @-r4 -+ mov.l r13, @-r4 -+ mov.l r12, @-r4 -+ mov.l r11, @-r4 -+ mov.l r10, @-r4 -+ mov.l r9, @-r4 -+ mov.l r8, @-r4 -+ rts -+ mov #0, r0 -diff -Nur musl-0.9.15/src/setjmp/sheb-nofpu/longjmp.sub musl-git/src/setjmp/sheb-nofpu/longjmp.sub ---- musl-0.9.15/src/setjmp/sheb-nofpu/longjmp.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/sheb-nofpu/longjmp.sub 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1 @@ -+../sh-nofpu/longjmp.s -diff -Nur musl-0.9.15/src/setjmp/sheb-nofpu/setjmp.sub musl-git/src/setjmp/sheb-nofpu/setjmp.sub ---- musl-0.9.15/src/setjmp/sheb-nofpu/setjmp.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/sheb-nofpu/setjmp.sub 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1 @@ -+../sh-nofpu/setjmp.s -diff -Nur musl-0.9.15/src/setjmp/sh-nofpu/longjmp.s musl-git/src/setjmp/sh-nofpu/longjmp.s ---- musl-0.9.15/src/setjmp/sh-nofpu/longjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/sh-nofpu/longjmp.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,22 @@ -+.global _longjmp -+.global longjmp -+.type _longjmp, @function -+.type longjmp, @function -+_longjmp: -+longjmp: -+ mov.l @r4+, r8 -+ mov.l @r4+, r9 -+ mov.l @r4+, r10 -+ mov.l @r4+, r11 -+ mov.l @r4+, r12 -+ mov.l @r4+, r13 -+ mov.l @r4+, r14 -+ mov.l @r4+, r15 -+ lds.l @r4+, pr -+ -+ tst r5, r5 -+ movt r0 -+ add r5, r0 -+ -+ rts -+ nop -diff -Nur musl-0.9.15/src/setjmp/sh-nofpu/longjmp.sub musl-git/src/setjmp/sh-nofpu/longjmp.sub ---- musl-0.9.15/src/setjmp/sh-nofpu/longjmp.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/sh-nofpu/longjmp.sub 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1 @@ -+longjmp.s -diff -Nur musl-0.9.15/src/setjmp/sh-nofpu/setjmp.s musl-git/src/setjmp/sh-nofpu/setjmp.s ---- musl-0.9.15/src/setjmp/sh-nofpu/setjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/sh-nofpu/setjmp.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,21 @@ -+.global __setjmp -+.global _setjmp -+.global setjmp -+.type __setjmp, @function -+.type _setjmp, @function -+.type setjmp, @function -+__setjmp: -+_setjmp: -+setjmp: -+ add #36, r4 -+ sts.l pr, @-r4 -+ mov.l r15 @-r4 -+ mov.l r14, @-r4 -+ mov.l r13, @-r4 -+ mov.l r12, @-r4 -+ mov.l r11, @-r4 -+ mov.l r10, @-r4 -+ mov.l r9, @-r4 -+ mov.l r8, @-r4 -+ rts -+ mov #0, r0 -diff -Nur musl-0.9.15/src/setjmp/sh-nofpu/setjmp.sub musl-git/src/setjmp/sh-nofpu/setjmp.sub ---- musl-0.9.15/src/setjmp/sh-nofpu/setjmp.sub 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/sh-nofpu/setjmp.sub 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1 @@ -+setjmp.s -diff -Nur musl-0.9.15/src/setjmp/x32/longjmp.s musl-git/src/setjmp/x32/longjmp.s ---- musl-0.9.15/src/setjmp/x32/longjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/x32/longjmp.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,22 @@ -+/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */ -+.global _longjmp -+.global longjmp -+.type _longjmp,@function -+.type longjmp,@function -+_longjmp: -+longjmp: -+ mov %rsi,%rax /* val will be longjmp return */ -+ test %rax,%rax -+ jnz 1f -+ inc %rax /* if val==0, val=1 per longjmp semantics */ -+1: -+ mov (%rdi),%rbx /* rdi is the jmp_buf, restore regs from it */ -+ mov 8(%rdi),%rbp -+ mov 16(%rdi),%r12 -+ mov 24(%rdi),%r13 -+ mov 32(%rdi),%r14 -+ mov 40(%rdi),%r15 -+ mov 48(%rdi),%rdx /* this ends up being the stack pointer */ -+ mov %rdx,%rsp -+ mov 56(%rdi),%rdx /* this is the instruction pointer */ -+ jmp *%rdx /* goto saved address without altering rsp */ -diff -Nur musl-0.9.15/src/setjmp/x32/setjmp.s musl-git/src/setjmp/x32/setjmp.s ---- musl-0.9.15/src/setjmp/x32/setjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/setjmp/x32/setjmp.s 2014-03-19 07:42:48.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/mips/sigsetjmp.s musl-git/src/signal/mips/sigsetjmp.s ---- musl-0.9.15/src/signal/mips/sigsetjmp.s 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/signal/mips/sigsetjmp.s 2014-03-19 07:42:48.000000000 +0100 -@@ -11,7 +11,7 @@ - sw $4, 20($sp) - sw $ra, 24($sp) - sw $gp, 28($sp) -- addu $6, $4, 124 -+ addu $6, $4, 108 - li $5, 0 - li $4, 1 - sw $4, -4($6) -diff -Nur musl-0.9.15/src/signal/sh/restore.s musl-git/src/signal/sh/restore.s ---- musl-0.9.15/src/signal/sh/restore.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/signal/sh/restore.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,24 @@ -+.global __restore -+.type __restore, @function -+__restore: -+ mov #119, r3 !__NR_sigreturn -+ trapa #16 -+ -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ -+.global __restore_rt -+.type __restore_rt, @function -+__restore_rt: -+ mov #100, r3 !__NR_rt_sigreturn -+ add #73, r3 -+ trapa #16 -+ -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -diff -Nur musl-0.9.15/src/signal/sh/sigsetjmp.s musl-git/src/signal/sh/sigsetjmp.s ---- musl-0.9.15/src/signal/sh/sigsetjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/signal/sh/sigsetjmp.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,27 @@ -+.global sigsetjmp -+.type sigsetjmp, @function -+sigsetjmp: -+ mov.l r5, @(36,r4) -+ tst r5, r5 -+ bf 2f -+ -+ sts.l pr, @-r15 -+ mov.l r4, @-r15 -+ mov r4, r6 -+ add #40, r6 -+ mov #0, r5 -+ mov #2, r4 -+ mov.l L1, r0 -+ bsrf r0 -+ nop -+1: mov.l @r15+, r4 -+ lds.l @r15+, pr -+ -+2: mov.l L2, r0 -+ braf r0 -+ nop -+3: -+ -+.align 2 -+L1: .long pthread_sigmask@PLT-(1b-.) -+L2: .long setjmp@PLT-(3b-.) -diff -Nur musl-0.9.15/src/signal/sigandset.c musl-git/src/signal/sigandset.c ---- musl-0.9.15/src/signal/sigandset.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/signal/sigandset.c 2014-03-19 07:42:48.000000000 +0100 -@@ -3,7 +3,7 @@ - - #define SST_SIZE (_NSIG/8/sizeof(long)) - --int sigandset(sigset_t *dest, sigset_t *left, sigset_t *right) -+int sigandset(sigset_t *dest, const sigset_t *left, const sigset_t *right) - { - unsigned long i = 0, *d = (void*) dest, *l = (void*) left, *r = (void*) right; - for(; i < SST_SIZE; i++) d[i] = l[i] & r[i]; -diff -Nur musl-0.9.15/src/signal/sigorset.c musl-git/src/signal/sigorset.c ---- musl-0.9.15/src/signal/sigorset.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/signal/sigorset.c 2014-03-19 07:42:48.000000000 +0100 -@@ -3,7 +3,7 @@ - - #define SST_SIZE (_NSIG/8/sizeof(long)) - --int sigorset(sigset_t *dest, sigset_t *left, sigset_t *right) -+int sigorset(sigset_t *dest, const sigset_t *left, const sigset_t *right) - { - unsigned long i = 0, *d = (void*) dest, *l = (void*) left, *r = (void*) right; - for(; i < SST_SIZE; i++) d[i] = l[i] | r[i]; -diff -Nur musl-0.9.15/src/signal/x32/restore.s musl-git/src/signal/x32/restore.s ---- musl-0.9.15/src/signal/x32/restore.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/signal/x32/restore.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,8 @@ -+.global __restore_rt -+.global __restore -+.type __restore_rt,@function -+.type __restore,@function -+__restore_rt: -+__restore: -+ movl $0x40000201, %eax /* SYS_rt_sigreturn */ -+ syscall -diff -Nur musl-0.9.15/src/signal/x32/sigsetjmp.s musl-git/src/signal/x32/sigsetjmp.s ---- musl-0.9.15/src/signal/x32/sigsetjmp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/signal/x32/sigsetjmp.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,14 @@ -+/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */ -+.global sigsetjmp -+.type sigsetjmp,@function -+sigsetjmp: -+ andl %esi,%esi -+ movq %rsi,64(%rdi) -+ jz 1f -+ pushq %rdi -+ leaq 72(%rdi),%rdx -+ xorl %esi,%esi -+ movl $2,%edi -+ call sigprocmask -+ popq %rdi -+1: jmp setjmp -diff -Nur musl-0.9.15/src/stdio/__fdopen.c musl-git/src/stdio/__fdopen.c ---- musl-0.9.15/src/stdio/__fdopen.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/stdio/__fdopen.c 2014-03-19 07:42:48.000000000 +0100 -@@ -32,7 +32,9 @@ - /* Set append mode on fd if opened for append */ - if (*mode == 'a') { - int flags = __syscall(SYS_fcntl, fd, F_GETFL); -- __syscall(SYS_fcntl, fd, F_SETFL, flags | O_APPEND); -+ if (!(flags & O_APPEND)) -+ __syscall(SYS_fcntl, fd, F_SETFL, flags | O_APPEND); -+ f->flags |= F_APP; - } - - f->fd = fd; -diff -Nur musl-0.9.15/src/stdio/ftell.c musl-git/src/stdio/ftell.c ---- musl-0.9.15/src/stdio/ftell.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/stdio/ftell.c 2014-03-19 07:42:48.000000000 +0100 -@@ -4,7 +4,9 @@ - - off_t __ftello_unlocked(FILE *f) - { -- off_t pos = f->seek(f, 0, SEEK_CUR); -+ off_t pos = f->seek(f, 0, -+ (f->flags & F_APP) && f->wpos > f->wbase -+ ? SEEK_END : SEEK_CUR); - if (pos < 0) return pos; - - /* Adjust for data in buffer. */ -diff -Nur musl-0.9.15/src/stdio/vfprintf.c musl-git/src/stdio/vfprintf.c ---- musl-0.9.15/src/stdio/vfprintf.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/stdio/vfprintf.c 2014-03-19 07:42:48.000000000 +0100 -@@ -207,7 +207,8 @@ - - static int fmt_fp(FILE *f, long double y, int w, int p, int fl, int t) - { -- uint32_t big[(LDBL_MAX_EXP+LDBL_MANT_DIG)/9+1]; -+ uint32_t big[(LDBL_MANT_DIG+28)/29 + 1 // mantissa expansion -+ + (LDBL_MAX_EXP+LDBL_MANT_DIG+28+8)/9]; // exponent expansion - uint32_t *a, *d, *r, *z; - int e2=0, e, i, j, l; - char buf[9+LDBL_MANT_DIG/4], *s; -@@ -313,7 +314,7 @@ - } - while (e2<0) { - uint32_t carry=0, *b; -- int sh=MIN(9,-e2); -+ int sh=MIN(9,-e2), need=1+(p+LDBL_MANT_DIG/3+8)/9; - for (d=a; d>sh) + carry; -@@ -323,7 +324,7 @@ - if (carry) *z++ = carry; - /* Avoid (slow!) computation past requested precision */ - b = (t|32)=='f' ? r : a; -- if (z-b > 2+p/9) z = b+2+p/9; -+ if (z-b > need) z = b+need; - e2+=sh; - } - -diff -Nur musl-0.9.15/src/stdio/vfscanf.c musl-git/src/stdio/vfscanf.c ---- musl-0.9.15/src/stdio/vfscanf.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/stdio/vfscanf.c 2014-03-19 07:42:48.000000000 +0100 -@@ -328,3 +328,5 @@ - FUNLOCK(f); - return matches; - } -+ -+weak_alias(vfscanf,__isoc99_vfscanf); -diff -Nur musl-0.9.15/src/thread/arm/clone.s musl-git/src/thread/arm/clone.s ---- musl-0.9.15/src/thread/arm/clone.s 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/thread/arm/clone.s 2014-03-19 07:42:48.000000000 +0100 -@@ -1,10 +1,7 @@ - .text - .global __clone --.weak clone - .type __clone,%function --.type clone,%function - __clone: --clone: - stmfd sp!,{r4,r5,r6,r7} - mov r7,#120 - mov r6,r3 -diff -Nur musl-0.9.15/src/thread/cancel_dummy.c musl-git/src/thread/cancel_dummy.c ---- musl-0.9.15/src/thread/cancel_dummy.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/thread/cancel_dummy.c 2014-03-19 07:42:48.000000000 +0100 -@@ -1,6 +1,9 @@ - #include "pthread_impl.h" -+#include "syscall.h" - --static long sccp(long nr, long u, long v, long w, long x, long y, long z) -+static long sccp(syscall_arg_t nr, -+ syscall_arg_t u, syscall_arg_t v, syscall_arg_t w, -+ syscall_arg_t x, syscall_arg_t y, syscall_arg_t z) - { - return (__syscall)(nr, u, v, w, x, y, z); - } -diff -Nur musl-0.9.15/src/thread/cancel_impl.c musl-git/src/thread/cancel_impl.c ---- musl-0.9.15/src/thread/cancel_impl.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/thread/cancel_impl.c 2014-03-19 07:42:48.000000000 +0100 -@@ -1,4 +1,5 @@ - #include "pthread_impl.h" -+#include "syscall.h" - - void __cancel() - { -@@ -8,9 +9,13 @@ - pthread_exit(PTHREAD_CANCELED); - } - --long __syscall_cp_asm(volatile void *, long, long, long, long, long, long, long); -+long __syscall_cp_asm(volatile void *, syscall_arg_t, -+ syscall_arg_t, syscall_arg_t, syscall_arg_t, -+ syscall_arg_t, syscall_arg_t, syscall_arg_t); - --long (__syscall_cp)(long nr, long u, long v, long w, long x, long y, long z) -+long (__syscall_cp)(syscall_arg_t nr, -+ syscall_arg_t u, syscall_arg_t v, syscall_arg_t w, -+ syscall_arg_t x, syscall_arg_t y, syscall_arg_t z) - { - pthread_t self; - long r; -diff -Nur musl-0.9.15/src/thread/clone.c musl-git/src/thread/clone.c ---- musl-0.9.15/src/thread/clone.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/thread/clone.c 2014-03-19 07:42:48.000000000 +0100 -@@ -1,10 +1,7 @@ - #include --#include "libc.h" -+#include "pthread_impl.h" - - int __clone(int (*func)(void *), void *stack, int flags, void *arg, ...) - { -- errno = ENOSYS; -- return -1; -+ return -ENOSYS; - } -- --weak_alias(__clone, clone); -diff -Nur musl-0.9.15/src/thread/i386/clone.s musl-git/src/thread/i386/clone.s ---- musl-0.9.15/src/thread/i386/clone.s 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/thread/i386/clone.s 2014-03-19 07:42:48.000000000 +0100 -@@ -1,10 +1,7 @@ - .text - .global __clone --.weak clone - .type __clone,@function --.type clone,@function - __clone: --clone: - push %ebp - mov %esp,%ebp - push %ebx -diff -Nur musl-0.9.15/src/thread/microblaze/clone.s musl-git/src/thread/microblaze/clone.s ---- musl-0.9.15/src/thread/microblaze/clone.s 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/thread/microblaze/clone.s 2014-03-19 07:42:48.000000000 +0100 -@@ -1,14 +1,11 @@ - .global __clone --.weak clone - .type __clone,@function --.type clone,@function - - # r5, r6, r7, r8, r9, r10, stack - # fn, st, fl, ar, pt, tl, ct - # fl, st, __, pt, ct, tl - - __clone: --clone: - andi r6, r6, -16 - addi r6, r6, -16 - swi r5, r6, 0 -@@ -23,7 +20,7 @@ - beqi r3, 1f - rtsd r15, 8 - nop -- -+ - 1: lwi r3, r1, 0 - lwi r5, r1, 4 - brald r15, r3 -diff -Nur musl-0.9.15/src/thread/sh/clone.s musl-git/src/thread/sh/clone.s ---- musl-0.9.15/src/thread/sh/clone.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/thread/sh/clone.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,47 @@ -+.text -+.global __clone -+.type __clone, @function -+__clone: -+! incoming: fn stack flags arg ptid tls ctid -+! r4 r5 r6 r7 @r15 @(4,r15) @(8,r15) -+ -+ mov #-16, r0 -+ and r0, r5 -+ -+ mov r4, r1 ! r1 = fn -+ mov r7, r2 ! r2 = arg -+ -+ mov #120, r3 ! r3 = __NR_clone -+ mov r6, r4 ! r4 = flags -+ !mov r5, r5 ! r5 = stack -+ mov.l @r15, r6 ! r6 = ptid -+ mov.l @(8,r15), r7 ! r7 = ctid -+ mov.l @(4,r15), r0 ! r0 = tls -+ trapa #21 -+ -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ -+ cmp/eq #0, r0 -+ bt 1f -+ -+ ! we are the parent, return -+ rts -+ nop -+ -+1: ! we are the child, call fn(arg) -+ jsr @r1 -+ mov r2, r4 -+ -+ mov #1, r3 ! __NR_exit -+ mov r0, r4 -+ trapa #17 -+ -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -diff -Nur musl-0.9.15/src/thread/sh/__set_thread_area.s musl-git/src/thread/sh/__set_thread_area.s ---- musl-0.9.15/src/thread/sh/__set_thread_area.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/thread/sh/__set_thread_area.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,5 @@ -+.global __set_thread_area -+.type __set_thread_area, @function -+__set_thread_area: -+ rts -+ ldc r4, gbr -diff -Nur musl-0.9.15/src/thread/sh/syscall_cp.s musl-git/src/thread/sh/syscall_cp.s ---- musl-0.9.15/src/thread/sh/syscall_cp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/thread/sh/syscall_cp.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,39 @@ -+.text -+.global __syscall_cp_asm -+.type __syscall_cp_asm, @function -+__syscall_cp_asm: -+ -+.global __cp_begin -+__cp_begin: -+ mov.l @r4, r4 -+ tst r4, r4 -+ bt 2f -+ -+ mov.l L1, r0 -+ braf r0 -+ nop -+1: -+ -+.align 2 -+L1: .long __cancel@PLT-(1b-.) -+ -+2: mov r5, r3 -+ mov r6, r4 -+ mov r7, r5 -+ mov.l @r15, r6 -+ mov.l @(4,r15), r7 -+ mov.l @(8,r15), r0 -+ mov.l @(12,r15), r1 -+ trapa #22 -+ -+.global __cp_end -+__cp_end: -+ ! work around hardware bug -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ -+ rts -+ nop -diff -Nur musl-0.9.15/src/thread/sh/__unmapself.s musl-git/src/thread/sh/__unmapself.s ---- musl-0.9.15/src/thread/sh/__unmapself.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/thread/sh/__unmapself.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,22 @@ -+.text -+.global __unmapself -+.type __unmapself, @function -+__unmapself: -+ mov #91, r3 ! SYS_munmap -+ trapa #18 -+ -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ -+ mov #1, r3 ! SYS_exit -+ mov #0, r4 -+ trapa #17 -+ -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -diff -Nur musl-0.9.15/src/thread/__wait.c musl-git/src/thread/__wait.c ---- musl-0.9.15/src/thread/__wait.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/thread/__wait.c 2014-03-19 07:42:48.000000000 +0100 -@@ -10,6 +10,6 @@ - } - if (waiters) a_inc(waiters); - while (*addr==val) -- __syscall(SYS_futex, (long)addr, FUTEX_WAIT|priv, val, 0); -+ __syscall(SYS_futex, addr, FUTEX_WAIT|priv, val, 0); - if (waiters) a_dec(waiters); - } -diff -Nur musl-0.9.15/src/thread/x32/clone.s musl-git/src/thread/x32/clone.s ---- musl-0.9.15/src/thread/x32/clone.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/thread/x32/clone.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,25 @@ -+.text -+.global __clone -+.type __clone,@function -+__clone: -+ movl $0x40000038,%eax /* SYS_clone */ -+ mov %rdi,%r11 -+ mov %rdx,%rdi -+ mov %r8,%rdx -+ mov %r9,%r8 -+ mov 8(%rsp),%r10 -+ mov %r11,%r9 -+ and $-16,%rsi -+ sub $8,%rsi -+ mov %rcx,(%rsi) -+ syscall -+ test %eax,%eax -+ jnz 1f -+ xor %ebp,%ebp -+ pop %rdi -+ call *%r9 -+ mov %eax,%edi -+ movl $0x4000003c,%eax /* SYS_exit */ -+ syscall -+ hlt -+1: ret -diff -Nur musl-0.9.15/src/thread/x32/__set_thread_area.s musl-git/src/thread/x32/__set_thread_area.s ---- musl-0.9.15/src/thread/x32/__set_thread_area.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/thread/x32/__set_thread_area.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,10 @@ -+/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */ -+.text -+.global __set_thread_area -+.type __set_thread_area,@function -+__set_thread_area: -+ mov %rdi,%rsi /* shift for syscall */ -+ movl $0x1002,%edi /* SET_FS register */ -+ movl $0x4000009e,%eax /* set fs segment to */ -+ syscall /* arch_prctl(SET_FS, arg)*/ -+ ret -diff -Nur musl-0.9.15/src/thread/x32/syscall_cp.s musl-git/src/thread/x32/syscall_cp.s ---- musl-0.9.15/src/thread/x32/syscall_cp.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/thread/x32/syscall_cp.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,23 @@ -+.text -+.global __syscall_cp_internal -+.type __syscall_cp_internal,@function -+__syscall_cp_internal: -+ -+.global __cp_begin -+__cp_begin: -+ mov (%rdi),%eax -+ test %eax,%eax -+ jnz __cancel -+ mov %rdi,%r11 -+ mov %rsi,%rax -+ mov %rdx,%rdi -+ mov %rcx,%rsi -+ mov %r8,%rdx -+ mov %r9,%r10 -+ mov 8(%rsp),%r8 -+ mov 16(%rsp),%r9 -+ mov %r11,8(%rsp) -+ syscall -+.global __cp_end -+__cp_end: -+ ret -diff -Nur musl-0.9.15/src/thread/x32/__unmapself.s musl-git/src/thread/x32/__unmapself.s ---- musl-0.9.15/src/thread/x32/__unmapself.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/thread/x32/__unmapself.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,10 @@ -+/* Copyright 2011-2012 Nicholas J. Kain, licensed under standard MIT license */ -+.text -+.global __unmapself -+.type __unmapself,@function -+__unmapself: -+ movl $0x4000000b,%eax /* SYS_munmap */ -+ syscall /* munmap(arg2,arg3) */ -+ xor %rdi,%rdi /* exit() args: always return success */ -+ movl $0x4000003c,%eax /* SYS_exit */ -+ syscall /* exit(0) */ -diff -Nur musl-0.9.15/src/thread/x86_64/clone.s musl-git/src/thread/x86_64/clone.s ---- musl-0.9.15/src/thread/x86_64/clone.s 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/thread/x86_64/clone.s 2014-03-19 07:42:48.000000000 +0100 -@@ -1,10 +1,7 @@ - .text - .global __clone --.weak clone - .type __clone,@function --.type clone,@function - __clone: --clone: - xor %eax,%eax - mov $56,%al - mov %rdi,%r11 -diff -Nur musl-0.9.15/src/time/timer_delete.c musl-git/src/time/timer_delete.c ---- musl-0.9.15/src/time/timer_delete.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/time/timer_delete.c 2014-03-19 07:42:48.000000000 +0100 -@@ -10,5 +10,5 @@ - __wake(&td->timer_id, 1, 1); - return 0; - } -- return __syscall(SYS_timer_delete, (long)t); -+ return __syscall(SYS_timer_delete, t); - } -diff -Nur musl-0.9.15/src/time/timer_getoverrun.c musl-git/src/time/timer_getoverrun.c ---- musl-0.9.15/src/time/timer_getoverrun.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/time/timer_getoverrun.c 2014-03-19 07:42:48.000000000 +0100 -@@ -8,5 +8,5 @@ - pthread_t td = (void *)((uintptr_t)t << 1); - t = (void *)(uintptr_t)(td->timer_id & INT_MAX); - } -- return syscall(SYS_timer_getoverrun, (long)t); -+ return syscall(SYS_timer_getoverrun, t); - } -diff -Nur musl-0.9.15/src/time/timer_gettime.c musl-git/src/time/timer_gettime.c ---- musl-0.9.15/src/time/timer_gettime.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/time/timer_gettime.c 2014-03-19 07:42:48.000000000 +0100 -@@ -8,5 +8,5 @@ - pthread_t td = (void *)((uintptr_t)t << 1); - t = (void *)(uintptr_t)(td->timer_id & INT_MAX); - } -- return syscall(SYS_timer_gettime, (long)t, val); -+ return syscall(SYS_timer_gettime, t, val); - } -diff -Nur musl-0.9.15/src/time/timer_settime.c musl-git/src/time/timer_settime.c ---- musl-0.9.15/src/time/timer_settime.c 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/src/time/timer_settime.c 2014-03-19 07:42:48.000000000 +0100 -@@ -8,5 +8,5 @@ - pthread_t td = (void *)((uintptr_t)t << 1); - t = (void *)(uintptr_t)(td->timer_id & INT_MAX); - } -- return syscall(SYS_timer_settime, (long)t, flags, val, old); -+ return syscall(SYS_timer_settime, t, flags, val, old); - } -diff -Nur musl-0.9.15/src/unistd/sh/pipe.s musl-git/src/unistd/sh/pipe.s ---- musl-0.9.15/src/unistd/sh/pipe.s 1970-01-01 01:00:00.000000000 +0100 -+++ musl-git/src/unistd/sh/pipe.s 2014-03-19 07:42:48.000000000 +0100 -@@ -0,0 +1,27 @@ -+.global pipe -+.type pipe, @function -+pipe: -+ mov #42, r3 -+ trapa #17 -+ -+ ! work around hardware bug -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ or r0, r0 -+ -+ cmp/pz r0 -+ bt 1f -+ -+ mov.l L1, r1 -+ braf r1 -+ mov r0, r4 -+ -+1: mov.l r0, @(0,r4) -+ mov.l r1, @(4,r4) -+ rts -+ mov #0, r0 -+ -+.align 2 -+L1: .long __syscall_ret@PLT-(1b-.) -diff -Nur musl-0.9.15/tools/install.sh musl-git/tools/install.sh ---- musl-0.9.15/tools/install.sh 2014-01-03 21:12:18.000000000 +0100 -+++ musl-git/tools/install.sh 2014-03-19 07:42:48.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 -- cgit v1.2.3 From 148af0b5dad8ded4cd8a5a644781cad3783f1065 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 20 Mar 2014 18:57:42 +0100 Subject: fix package compile, overwrite TARGET_CC --- package/mplayer/Makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/package/mplayer/Makefile b/package/mplayer/Makefile index a6851f3fa..0a98de806 100644 --- a/package/mplayer/Makefile +++ b/package/mplayer/Makefile @@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk PKG_NAME:= mplayer PKG_VERSION:= 1.1.1 -PKG_RELEASE:= 1 +PKG_RELEASE:= 2 PKG_MD5SUM:= 39dd55f30eb5403f219a606e79a6648a PKG_DESCR:= popular video player PKG_SECTION:= multimedia @@ -34,9 +34,8 @@ include ${TOPDIR}/mk/package.mk $(eval $(call PKG_template,MPLAYER,mplayer,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) +TARGET_CC:= ${TARGET_COMPILER_PREFIX}gcc XAKE_FLAGS+= GCC_HONOUR_COPTS=s -# gcc 4.5 produces internal compiler error with -Os -#TARGET_CFLAGS:=$(subst Os,O2,$(TARGET_CFLAGS)) TARGET_CFLAGS+= -D_POSIX_SOURCE -D_GNU_SOURCE CONFIG_STYLE:= minimal -- cgit v1.2.3 From 62e121cd12c0bff319f95c43f2fb5a982268d2c5 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 20 Mar 2014 20:56:34 +0100 Subject: reorder --- TODO | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/TODO b/TODO index 6b54af848..1deed7b5c 100644 --- a/TODO +++ b/TODO @@ -1,13 +1,13 @@ +- hash-style=gnu for non-mips and non-musl - check gold for mozilla compile +- check for gcc and SSP again - add daemon() function to functions.sh - add printing of OK/FAIL (optional verbose bootup) - fixup rework libgcc --export-symbols - libgcc static? - static toolchain support -- toolchain in /usr , check gcj - try Preset Loops per Jiffy for faster bootup via lpj= - port uuterm -- hash-style=gnu for non-mips and non-musl - add fb full screen logo - port opkg with gpg signing - restart network (kill wpa_supplicant) @@ -15,7 +15,6 @@ - add grsec kernel patch - microblaze: add cfgfs partition to dts, add partition to spartan dts - evaluate libguestfs for image creation -- check for gcc and SSP again - port w3m - rutorrent porting - lms perl -- cgit v1.2.3 From 3ef9bac3df49421f6a58f5b3e5b0997d144ece38 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 20 Mar 2014 21:04:34 +0100 Subject: update with new host tool dependency stuff --- docs/adding-packages-host.txt | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/docs/adding-packages-host.txt b/docs/adding-packages-host.txt index a858d4563..c9eba6d02 100644 --- a/docs/adding-packages-host.txt +++ b/docs/adding-packages-host.txt @@ -75,18 +75,12 @@ Following mix between host and target package is possible, too: 29: include ${TOPDIR}/mk/pkg-bottom.mk ------------------------ -It is important to have foo-host as package build dependency, see line 12, so that the order is always build the host package -and then the target package. -If you need to rebuild a mixed package, you are advised to use: +If you need to rebuild a mixed package, you can do: ------------ - $ make package= clean hostpackage package + $ make package= hostclean hostpackage clean package ------------ -At the moment there is one limitation regarding the recursive dependency resolving. It is just not implemented, yet. -So you always need to set +PKG_BUILDDEP+ to all host tools dependencies in the right order. If package foo needs host -tool bar, and host tool bar needs host library libbaz, you have to use following +PKG_BUILDDEP+ variable: +If your host package have some dependencies, use following: ------------ - PKG_BUILDDEP:=libbaz-host bar-host + HOST_BUILDDEP:=libbaz-host bar-host ------------ - - -- cgit v1.2.3 From 179f19685eb8b61828f42869e0232255d24ce267 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Fri, 21 Mar 2014 12:35:15 +0100 Subject: mdev -s is required for cfgfs, /dev/root is missing --- package/base-files/Makefile | 2 +- package/base-files/src/etc/init.d/boot | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 7c0a7f1a7..417c3d09f 100644 --- a/package/base-files/Makefile +++ b/package/base-files/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/mk/rootfs.mk PKG_NAME:= base-files PKG_VERSION:= 1.0 -PKG_RELEASE:= 75 +PKG_RELEASE:= 76 PKG_SECTION:= base PKG_DESCR:= basic files and scripts PKG_BUILDDEP:= pkgconf-host file-host diff --git a/package/base-files/src/etc/init.d/boot b/package/base-files/src/etc/init.d/boot index f52e8dc78..2e7215fb8 100644 --- a/package/base-files/src/etc/init.d/boot +++ b/package/base-files/src/etc/init.d/boot @@ -19,6 +19,8 @@ mount -o remount,nosuid,nodev,mode=1777,size=${size}k -t tmpfs tmpfs /tmp # start mdev dynamic device node management echo >/dev/mdev.seq echo "/sbin/mdev" >/proc/sys/kernel/hotplug +# creates f.e. /dev/root +mdev -s # seed some random cat /etc/.rnd >/dev/urandom 2>&1 -- cgit v1.2.3 From a7fa2e4ce6c2d20521c7eb9d00d4bec1d63d2395 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Fri, 21 Mar 2014 13:43:05 +0100 Subject: bulktoolchain fixes --- mk/build.mk | 11 ++++++----- target/tarch.lst | 2 ++ 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/mk/build.mk b/mk/build.mk index 4cdccd8fd..cc07d9fdc 100644 --- a/mk/build.mk +++ b/mk/build.mk @@ -475,17 +475,18 @@ bulktoolchain: ( \ echo === building $$arch $$libc toolchain-$$arch on $$(date); \ tarch=$$(echo $$arch|sed -e "s#el##" -e "s#eb##" -e "s#mips64.*#mips#" -e "s#hf##"); \ - if [ -f ${TOPDIR}/firmware/toolchain_$${arch}_$${libc}.tar.xz ];then exit;fi; \ + carch=$$(echo $$arch|sed -e "s#hf##" -e "s#mips64.*#mips64#"); \ $(GMAKE) prereq && \ $(GMAKE) ARCH=$$tarch SYSTEM=toolchain-$$arch LIBC=$$libc defconfig; \ - $(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; break;fi; \ - if [ $$arch = "armhf" ];then arch=arm; else arch=$$arch;fi; \ tabi=$$(grep ^ADK_TARGET_ABI= .config|cut -d \" -f 2);\ + if [ $$arch = "armhf" ];then arch=arm; else arch=$$arch;fi; \ if [ -z $$tabi ];then abi="";else abi=_$$tabi;fi; \ - tar -cvJf ${TOPDIR}/firmware/toolchain_$${arch}_$${libc}$${abi}.tar.xz toolchain_${GNU_HOST_NAME} target_$${arch}_$${libc}$${abi}; \ + if [ -f ${TOPDIR}/firmware/toolchain_$${arch}_$${libc}$${abi}.tar.xz ];then exit;fi; \ + $(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; break;fi; \ + tar -cvJf ${TOPDIR}/firmware/toolchain_$${arch}_$${libc}$${abi}.tar.xz toolchain_${GNU_HOST_NAME} target_$${carch}_$${libc}$${abi}; \ $(GMAKE) cleantoolchain; \ rm .config; \ - ) 2>&1 | tee $(TOPDIR)/firmware/toolchain_build.log; \ + ) 2>&1 | tee -a $(TOPDIR)/firmware/toolchain_build.log; \ if [ -f .exit ];then break;fi \ done <${TOPDIR}/target/tarch.lst ;\ if [ -f .exit ];then echo "Bulk build failed!"; rm .exit; exit 1;fi \ diff --git a/target/tarch.lst b/target/tarch.lst index 09eed2265..26bda2a75 100644 --- a/target/tarch.lst +++ b/target/tarch.lst @@ -9,6 +9,8 @@ mips64 mips64n32 mips64n64 mips64el +mips64eln32 +mips64eln64 ppc ppc64 sparc -- cgit v1.2.3