Browse Source

Merge branch 'master' of git+ssh://openadk.org/git/openadk

Waldemar Brodkorb 11 years ago
parent
commit
fe967bd0b0
80 changed files with 8598 additions and 2988 deletions
  1. 2 1
      BUGS
  2. 3 3
      Config.in
  3. 3 0
      TODO
  4. 1 0
      mk/build.mk
  5. 3 3
      mk/kernel-ver.mk
  6. 14 6
      package/base-files/Makefile
  7. 3 2
      package/base-files/src/etc/network/if-post-down.d/03-wireless
  8. 1 1
      package/base-files/src/etc/network/if-pre-up.d/04-wireless
  9. 1 1
      package/firefox/files/firefox
  10. 2 1
      package/libpcap/Makefile
  11. 2 2
      package/nss/Makefile
  12. 1 1
      package/strace/Makefile
  13. 33 0
      package/strace/patches/patch-defs_h
  14. 11 0
      package/strace/patches/patch-desc_c
  15. 17 0
      package/strace/patches/patch-net_c
  16. 49 0
      package/strace/patches/patch-process_c
  17. 22 0
      package/strace/patches/patch-signal_c
  18. 17 0
      package/strace/patches/patch-syscall_c
  19. 14 0
      package/strace/patches/patch-time_c
  20. 2 0
      rules.mk
  21. 1 0
      scripts/create-pkg
  22. 10 2
      target/arm/Makefile
  23. 0 1116
      target/arm/kernel.config
  24. 0 1614
      target/arm/kernel.config.sharp-zaurus
  25. 53 0
      target/arm/kernel/qemu-arm-spitz
  26. 0 3
      target/arm/kernel/qemu-arm-versatilepb
  27. 28 0
      target/arm/kernel/qemu-arm-vexpress-a9
  28. 53 0
      target/arm/kernel/sharp-zaurus
  29. 0 1
      target/arm/sys-available/acmesystems-foxg20
  30. 2 1
      target/arm/sys-available/cubox-i
  31. 2 3
      target/arm/sys-available/keyasic-ka2000
  32. 0 2
      target/arm/sys-available/qemu-arm
  33. 2 1
      target/arm/sys-available/raspberry-pi
  34. 1 6
      target/arm/sys-available/sharp-zaurus
  35. 0 1
      target/arm/sys-available/toolchain-arm
  36. 0 1
      target/arm/sys-available/toolchain-armeb
  37. 72 35
      target/config/Config.in
  38. 21 1
      target/config/Config.in.runtime
  39. 0 2
      target/linux/Config.in
  40. 0 5
      target/linux/config/Config.in.cpu
  41. 18 0
      target/linux/config/Config.in.kernel
  42. 0 10
      target/linux/config/Config.in.netdevice
  43. 2 2
      target/linux/config/Config.in.netfilter.ip4
  44. 0 8
      target/linux/config/Config.in.serial
  45. 2 59
      target/linux/config/Config.in.systems
  46. 0 0
      target/linux/patches/3.4.82/bsd-compatibility.patch
  47. 0 0
      target/linux/patches/3.4.82/defaults.patch
  48. 0 0
      target/linux/patches/3.4.82/gemalto.patch
  49. 0 0
      target/linux/patches/3.4.82/lemote-rfkill.patch
  50. 0 0
      target/linux/patches/3.4.82/module-alloc-size-check.patch
  51. 0 0
      target/linux/patches/3.4.82/non-static.patch
  52. 0 0
      target/linux/patches/3.4.82/sparc-include.patch
  53. 0 0
      target/linux/patches/3.4.82/startup.patch
  54. 0 0
      target/linux/patches/3.4.82/usb-defaults-off.patch
  55. 0 0
      target/linux/patches/3.4.82/uuid.patch
  56. 0 0
      target/linux/patches/3.4.82/vga-cons-default-off.patch
  57. 0 0
      target/linux/patches/3.4.82/wlan-cf.patch
  58. 0 0
      target/linux/patches/3.4.82/zlib-inflate.patch
  59. 3 3
      target/mips/Makefile
  60. 31 0
      target/packages/pkg-available/console
  61. 1 8
      target/packages/pkg-available/development
  62. 2 22
      target/packages/pkg-available/xorg
  63. 3 0
      target/ppc/kernel/qemu-ppc
  64. 3 3
      target/tools/mtd-utils/Makefile
  65. 23 15
      target/tools/mtd-utils/patches/lzo.patch
  66. 3 3
      target/x86/Makefile
  67. 3 3
      target/x86_64/Makefile
  68. 0 4
      toolchain/eglibc/Makefile
  69. 1 1
      toolchain/eglibc/Makefile.inc
  70. 14 15
      toolchain/gcc/Makefile
  71. 0 4
      toolchain/glibc/Makefile
  72. 1 1
      toolchain/glibc/Makefile.inc
  73. 0 0
      toolchain/kernel-headers/patches/3.4.82/aufs2.patch
  74. 0 0
      toolchain/kernel-headers/patches/3.4.82/linux-gcc-check.patch
  75. 0 0
      toolchain/kernel-headers/patches/3.4.82/microperl.patch
  76. 0 0
      toolchain/kernel-headers/patches/3.4.82/mkpiggy.patch
  77. 0 0
      toolchain/kernel-headers/patches/3.4.82/relocs.patch
  78. 0 12
      toolchain/musl/patches/mips64.patch
  79. 8039 0
      toolchain/musl/patches/musl-git-20140225.patch
  80. 3 0
      toolchain/uClibc/Makefile

+ 2 - 1
BUGS

@@ -1,4 +1,5 @@
+- arm: thumb mode with glibc does not boot
+- arm: vexpress network card emulation not working
 - sparc: uclibc toolchain is broken
 - sparc: uclibc toolchain is broken
 - sparc64: ide driver not working, only virtio (but unstable)
 - sparc64: ide driver not working, only virtio (but unstable)
 - microblaze big endian: network card emulation fails
 - microblaze big endian: network card emulation fails
-- microblaze: qemu reboot not working

+ 3 - 3
Config.in

@@ -121,8 +121,8 @@ config ADK_KERNEL_VERSION_3_11_10
 	prompt "3.11.10"
 	prompt "3.11.10"
 	boolean
 	boolean
 
 
-config ADK_KERNEL_VERSION_3_4_71
-	prompt "3.4.71"
+config ADK_KERNEL_VERSION_3_4_82
+	prompt "3.4.82"
 	boolean
 	boolean
 
 
 endchoice
 endchoice
@@ -132,7 +132,7 @@ config ADK_KERNEL_VERSION
 	default "3.13.5" if ADK_KERNEL_VERSION_3_13_5
 	default "3.13.5" if ADK_KERNEL_VERSION_3_13_5
 	default "3.12.13" if ADK_KERNEL_VERSION_3_12_13
 	default "3.12.13" if ADK_KERNEL_VERSION_3_12_13
 	default "3.11.10" if ADK_KERNEL_VERSION_3_11_10
 	default "3.11.10" if ADK_KERNEL_VERSION_3_11_10
-	default "3.4.71" if ADK_KERNEL_VERSION_3_4_71
+	default "3.4.82" if ADK_KERNEL_VERSION_3_4_82
 	help
 	help
 
 
 config ADK_KERNEL_COMP_GZIP_RASPBERRY_PI
 config ADK_KERNEL_COMP_GZIP_RASPBERRY_PI

+ 3 - 0
TODO

@@ -1,4 +1,7 @@
 - update gcc to 4.8.2
 - update gcc to 4.8.2
+- socat openssl flavour + update
+- use gnu_host_name for host_ dir
+- move target/tools to tools, mv binaries to host_ dir, use ADK_HOST_NEED_FOO (xz,lzop,bzip2,..)
 - add toolchain archive creation target (optimize for size)
 - add toolchain archive creation target (optimize for size)
 - hash-style=gnu for non-mips and non-musl
 - hash-style=gnu for non-mips and non-musl
 - add arm hard and softfloat toolchains
 - add arm hard and softfloat toolchains

+ 1 - 0
mk/build.mk

@@ -35,6 +35,7 @@ DEFCONFIG=		ADK_DEBUG=n \
 			ADK_PACKAGE_URLGRABBER=n \
 			ADK_PACKAGE_URLGRABBER=n \
 			ADK_PACKAGE_LIBSSP=n \
 			ADK_PACKAGE_LIBSSP=n \
 			ADK_PACKAGE_OPENAFS=n \
 			ADK_PACKAGE_OPENAFS=n \
+			ADK_PACKAGE_OPENJDK7=n \
 			ADK_PKG_XORG=n \
 			ADK_PKG_XORG=n \
 			ADK_PKG_MPDBOX=n \
 			ADK_PKG_MPDBOX=n \
 			ADK_PKG_DEVELOPMENT=n \
 			ADK_PKG_DEVELOPMENT=n \

+ 3 - 3
mk/kernel-ver.mk

@@ -22,9 +22,9 @@ KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_RELEASE:=	1
 KERNEL_RELEASE:=	1
 KERNEL_MD5SUM:=		59f352d3f4e2cdf6755f79e09fa09176
 KERNEL_MD5SUM:=		59f352d3f4e2cdf6755f79e09fa09176
 endif
 endif
-ifeq ($(ADK_KERNEL_VERSION_3_4_71),y)
-KERNEL_VERSION:=	3.4.71
+ifeq ($(ADK_KERNEL_VERSION_3_4_82),y)
+KERNEL_VERSION:=	3.4.82
 KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_MOD_VERSION:=	$(KERNEL_VERSION)
 KERNEL_RELEASE:=	1
 KERNEL_RELEASE:=	1
-KERNEL_MD5SUM:=		d6183a3809c6d3f6779043b6e9f482ca
+KERNEL_MD5SUM:=		9ee57efa65417a7a9ac931122c2b7377
 endif
 endif

+ 14 - 6
package/base-files/Makefile

@@ -6,7 +6,7 @@ include $(TOPDIR)/mk/rootfs.mk
 
 
 PKG_NAME:=		base-files
 PKG_NAME:=		base-files
 PKG_VERSION:=		1.0
 PKG_VERSION:=		1.0
-PKG_RELEASE:=		65
+PKG_RELEASE:=		66
 PKG_SECTION:=		base
 PKG_SECTION:=		base
 PKG_DESCR:=		basic files and scripts
 PKG_DESCR:=		basic files and scripts
 PKG_BUILDDEP:=		pkgconf-host file-host
 PKG_BUILDDEP:=		pkgconf-host file-host
@@ -63,7 +63,10 @@ endif
 	    cat ./files/inittab.serial >> $(IDIR_BASE_FILES)/etc/inittab
 	    cat ./files/inittab.serial >> $(IDIR_BASE_FILES)/etc/inittab
 	test -z $(ADK_RUNTIME_CONSOLE_BOTH) || \
 	test -z $(ADK_RUNTIME_CONSOLE_BOTH) || \
 	    cat ./files/inittab.vga >> $(IDIR_BASE_FILES)/etc/inittab
 	    cat ./files/inittab.vga >> $(IDIR_BASE_FILES)/etc/inittab
-ifeq ($(ADK_TARGET_QEMU_ARM_MODEL_VERSATILE),y)
+ifeq ($(ADK_TARGET_QEMU_ARM_MODEL_VERSATILEPB),y)
+	$(SED) 's#ttyS#ttyAMA#g' $(IDIR_BASE_FILES)/etc/inittab
+endif
+ifeq ($(ADK_TARGET_QEMU_ARM_MODEL_VEXPRESS_A9),y)
 	$(SED) 's#ttyS#ttyAMA#g' $(IDIR_BASE_FILES)/etc/inittab
 	$(SED) 's#ttyS#ttyAMA#g' $(IDIR_BASE_FILES)/etc/inittab
 endif
 endif
 ifeq ($(ADK_TARGET_SYSTEM_ARANYM_M68K),y)
 ifeq ($(ADK_TARGET_SYSTEM_ARANYM_M68K),y)
@@ -111,11 +114,11 @@ ifneq (${ADK_SIMPLE_NETWORK_CONFIG},)
 	echo -e "auto lo\niface lo inet loopback" > ${IDIR_BASE_FILES}/etc/network/interfaces
 	echo -e "auto lo\niface lo inet loopback" > ${IDIR_BASE_FILES}/etc/network/interfaces
 
 
 	# network config eth0
 	# network config eth0
-	# configure nic with manual ip
+	# configure nic with dhcp
 ifeq (${SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NIC},y)
 ifeq (${SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NIC},y)
 	echo -e "\nauto eth0\niface eth0 inet dhcp" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 	echo -e "\nauto eth0\niface eth0 inet dhcp" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 endif
 endif
-	# configure nic with dhcp
+	# configure nic with manual ip
 ifeq (${SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NIC_MANUAL},y)
 ifeq (${SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NIC_MANUAL},y)
 	echo -e "\nauto eth0\niface eth0 inet static" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 	echo -e "\nauto eth0\niface eth0 inet static" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 	echo -e "  address ${SIMPLE_NETWORK_CONFIG_ETH0_IP}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 	echo -e "  address ${SIMPLE_NETWORK_CONFIG_ETH0_IP}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
@@ -137,12 +140,17 @@ ifeq (${SIMPLE_NETWORK_CONFIG_ETH0_TYPE_BRIDGE_IP},y)
 	echo -e "  bridge-ports ${SIMPLE_NETWORK_CONFIG_ETH0_BRIDGE}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 	echo -e "  bridge-ports ${SIMPLE_NETWORK_CONFIG_ETH0_BRIDGE}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 endif
 endif
 
 
+	# network config wlan0
+ifeq (${SIMPLE_NETWORK_CONFIG_WLAN0_TYPE_NIC},y)
+	echo -e "\nauto wlan0\niface wlan0 inet dhcp" >> ${IDIR_BASE_FILES}/etc/network/interfaces
+endif
+
 	# network config eth1
 	# network config eth1
-	# configure nic with manual ip
+	# configure nic with dhcp
 ifeq (${SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NIC},y)
 ifeq (${SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NIC},y)
 	echo -e "\nauto eth1\niface eth1 inet dhcp" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 	echo -e "\nauto eth1\niface eth1 inet dhcp" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 endif
 endif
-	# configure nic with dhcp
+	# configure nic with manual ip
 ifeq (${SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NIC_MANUAL},y)
 ifeq (${SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NIC_MANUAL},y)
 	echo -e "\nauto eth1\niface eth1 inet static" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 	echo -e "\nauto eth1\niface eth1 inet static" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 	echo -e "  address ${SIMPLE_NETWORK_CONFIG_ETH1_IP}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
 	echo -e "  address ${SIMPLE_NETWORK_CONFIG_ETH1_IP}" >> ${IDIR_BASE_FILES}/etc/network/interfaces

+ 3 - 2
package/base-files/src/etc/network/if-post-down.d/03-wireless

@@ -1,4 +1,5 @@
-#!/bin/sh 
+#!/bin/sh
+set -x
 set -e 
 set -e 
 
 
 [ "${IFACE%%[0-9]*}" = "wlan" ] || exit 0
 [ "${IFACE%%[0-9]*}" = "wlan" ] || exit 0
@@ -11,7 +12,7 @@ case "$IF_WIRELESS_MODE" in
 	sta)
 	sta)
 		[ "$IF_WIRELESS_SECURITY" != "none" ] && {
 		[ "$IF_WIRELESS_SECURITY" != "none" ] && {
 			logger -t wireless "Killing wpa_supplicant"
 			logger -t wireless "Killing wpa_supplicant"
-			pkill wpa_supplicant
+			kill -9 $(cat /var/run/wpa_supplicant.pid)
 		}
 		}
 		;;
 		;;
 	*)
 	*)

+ 1 - 1
package/base-files/src/etc/network/if-pre-up.d/04-wireless

@@ -107,7 +107,7 @@ case "$IF_WIRELESS_MODE" in
 		 	echo " psk=\"$IF_WIRELESS_PASSPHRASE\"" >> /tmp/wpa_supplicant.conf
 		 	echo " psk=\"$IF_WIRELESS_PASSPHRASE\"" >> /tmp/wpa_supplicant.conf
 			echo " priority=5" >> /tmp/wpa_supplicant.conf
 			echo " priority=5" >> /tmp/wpa_supplicant.conf
 			echo "}"  >> /tmp/wpa_supplicant.conf
 			echo "}"  >> /tmp/wpa_supplicant.conf
-			wpa_supplicant -B -D${driver} -i${IFACE} -c/tmp/wpa_supplicant.conf
+			wpa_supplicant -B -D${driver} -i${IFACE} -P/var/run/wpa_supplicant.pid -c/tmp/wpa_supplicant.conf
 		}
 		}
 		;;
 		;;
 	*)
 	*)

+ 1 - 1
package/firefox/files/firefox

@@ -1,2 +1,2 @@
 #!/bin/sh
 #!/bin/sh
-env LD_LIBRARY_PATH=/usr/lib/firefox-24.0 /usr/lib/firefox-24.0/firefox
+env LD_LIBRARY_PATH=/usr/lib/firefox-26.0 /usr/lib/firefox-26.0/firefox

+ 2 - 1
package/libpcap/Makefile

@@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
 
 
 PKG_NAME:=		libpcap
 PKG_NAME:=		libpcap
 PKG_VERSION:=		1.5.2
 PKG_VERSION:=		1.5.2
-PKG_RELEASE:=		1
+PKG_RELEASE:=		2
 PKG_MD5SUM:=		33ba2f10f3a402cb5d34f5e2a904794a
 PKG_MD5SUM:=		33ba2f10f3a402cb5d34f5e2a904794a
 PKG_DESCR:=		a low-level packet capture library
 PKG_DESCR:=		a low-level packet capture library
 PKG_SECTION:=		libs
 PKG_SECTION:=		libs
@@ -24,6 +24,7 @@ $(eval $(call PKG_template,LIBPCAP,libpcap,$(PKG_VERSION)-${PKG_RELEASE},${PKG_D
 CONFIGURE_ENV+=		ac_cv_linux_vers=26
 CONFIGURE_ENV+=		ac_cv_linux_vers=26
 CONFIGURE_ARGS+=	--disable-yydebug \
 CONFIGURE_ARGS+=	--disable-yydebug \
 			--with-build-cc=$(CC_FOR_BUILD) \
 			--with-build-cc=$(CC_FOR_BUILD) \
+			--disable-dbus \
 			--without-libnl \
 			--without-libnl \
 			--with-pcap=linux
 			--with-pcap=linux
 TARGET_CFLAGS+=		${TARGET_CPPFLAGS}
 TARGET_CFLAGS+=		${TARGET_CPPFLAGS}

+ 2 - 2
package/nss/Makefile

@@ -30,8 +30,8 @@ $(eval $(call PKG_template,NSS,nss,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},
 CONFIG_STYLE:=		manual
 CONFIG_STYLE:=		manual
 INSTALL_STYLE:=		manual
 INSTALL_STYLE:=		manual
 
 
-ifneq ($(ADK_LINUX_64),)
-ifeq ($(ADK_LINUX_MIPS),y)
+ifeq ($(ADK_LINUX_64),y)
+ifeq ($(ADK_TARGET_ABI_N32),y)
 TARGET_CFLAGS+=		-DNS_PTR_LE_32
 TARGET_CFLAGS+=		-DNS_PTR_LE_32
 endif
 endif
 XAKE_FLAGS+=		USE_64=1
 XAKE_FLAGS+=		USE_64=1

+ 1 - 1
package/strace/Makefile

@@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk
 
 
 PKG_NAME:=		strace
 PKG_NAME:=		strace
 PKG_VERSION:=		4.8
 PKG_VERSION:=		4.8
-PKG_RELEASE:=		7
+PKG_RELEASE:=		8
 PKG_MD5SUM:=		c575ef43829586801f514fd91bfe7575
 PKG_MD5SUM:=		c575ef43829586801f514fd91bfe7575
 PKG_DESCR:=		System call trace program
 PKG_DESCR:=		System call trace program
 PKG_SECTION:=		debug
 PKG_SECTION:=		debug

+ 33 - 0
package/strace/patches/patch-defs_h

@@ -0,0 +1,33 @@
+--- strace-4.8.orig/defs.h	2013-05-14 16:10:42.000000000 +0200
++++ strace-4.8/defs.h	2014-02-26 17:36:34.000000000 +0100
+@@ -155,18 +155,18 @@ extern char *stpcpy(char *dst, const cha
+     || defined(METAG) \
+     || defined(TILE) \
+     || defined(XTENSA) \
+-    ) && defined(__GLIBC__)
++    ) && defined(__linux__)
+ # include <sys/ptrace.h>
+ #else
+ /* Work around awkward prototype in ptrace.h. */
+ # define ptrace xptrace
+ # include <sys/ptrace.h>
+ # undef ptrace
+-# ifdef POWERPC
++#if defined(POWERPC) && defined(__GLIBC__)
+ #  define __KERNEL__
+ #  include <asm/ptrace.h>
+ #  undef __KERNEL__
+-# endif
++#endif
+ extern long ptrace(int, int, char *, long);
+ #endif
+ 
+@@ -222,7 +222,7 @@ extern long ptrace(int, int, char *, lon
+ # define PTRACE_EVENT_EXIT	6
+ #endif
+ 
+-#if !defined(__GLIBC__)
++#if !defined(__GLIBC__) && !defined(PTRACE_PEEKUSER)
+ # define PTRACE_PEEKUSER PTRACE_PEEKUSR
+ # define PTRACE_POKEUSER PTRACE_POKEUSR
+ #endif

+ 11 - 0
package/strace/patches/patch-desc_c

@@ -0,0 +1,11 @@
+--- strace-4.8.orig/desc.c	2013-05-02 00:39:10.000000000 +0200
++++ strace-4.8/desc.c	2014-02-25 15:16:36.000000000 +0100
+@@ -223,7 +223,7 @@ static const struct xlat perf_event_open
+ 	{ 0,				NULL			},
+ };
+ 
+-#if _LFS64_LARGEFILE
++#if defined(_LFS64_LARGEFILE) && defined(__GLIBC__) || defined(__UCLIBC__)
+ /* fcntl/lockf */
+ static void
+ printflock64(struct tcb *tcp, long addr, int getlk)

+ 17 - 0
package/strace/patches/patch-net_c

@@ -0,0 +1,17 @@
+--- strace-4.8.orig/net.c	2013-05-18 00:20:02.000000000 +0200
++++ strace-4.8/net.c	2014-02-25 16:06:44.000000000 +0100
+@@ -95,12 +95,14 @@
+ #endif
+ 
+ /* Under Linux these are enums so we can't test for them with ifdef. */
++#if !defined(IPPROTO_MAX)
+ #define IPPROTO_EGP IPPROTO_EGP
+ #define IPPROTO_PUP IPPROTO_PUP
+ #define IPPROTO_IDP IPPROTO_IDP
+ #define IPPROTO_IGMP IPPROTO_IGMP
+ #define IPPROTO_RAW IPPROTO_RAW
+ #define IPPROTO_MAX IPPROTO_MAX
++#endif
+ 
+ static const struct xlat domains[] = {
+ #ifdef PF_UNSPEC

+ 49 - 0
package/strace/patches/patch-process_c

@@ -0,0 +1,49 @@
+--- strace-4.8.orig/process.c	2013-05-18 00:22:19.000000000 +0200
++++ strace-4.8/process.c	2014-02-25 20:02:55.000000000 +0100
+@@ -55,7 +55,7 @@
+ # endif
+ #endif
+ 
+-#ifdef HAVE_LINUX_PTRACE_H
++#if defined(HAVE_LINUX_PTRACE_H) && defined(__GLIBC__)
+ # undef PTRACE_SYSCALL
+ # ifdef HAVE_STRUCT_IA64_FPREG
+ #  define ia64_fpreg XXX_ia64_fpreg
+@@ -104,6 +104,10 @@
+ # include <asm/rse.h>
+ #endif
+ 
++#ifdef __arm__
++#include <asm/ptrace.h>
++#endif
++
+ #ifdef HAVE_PRCTL
+ # include <sys/prctl.h>
+ 
+@@ -2857,7 +2861,7 @@ sys_sched_setscheduler(struct tcb *tcp)
+ 		if (umove(tcp, tcp->u_arg[2], &p) < 0)
+ 			tprintf(", %#lx", tcp->u_arg[2]);
+ 		else
+-			tprintf(", { %d }", p.__sched_priority);
++			tprintf(", { %d }", p.sched_priority);
+ 	}
+ 	return 0;
+ }
+@@ -2872,7 +2876,7 @@ sys_sched_getparam(struct tcb *tcp)
+ 		if (umove(tcp, tcp->u_arg[1], &p) < 0)
+ 			tprintf("%#lx", tcp->u_arg[1]);
+ 		else
+-			tprintf("{ %d }", p.__sched_priority);
++			tprintf("{ %d }", p.sched_priority);
+ 	}
+ 	return 0;
+ }
+@@ -2885,7 +2889,7 @@ sys_sched_setparam(struct tcb *tcp)
+ 		if (umove(tcp, tcp->u_arg[1], &p) < 0)
+ 			tprintf("%d, %#lx", (int) tcp->u_arg[0], tcp->u_arg[1]);
+ 		else
+-			tprintf("%d, { %d }", (int) tcp->u_arg[0], p.__sched_priority);
++			tprintf("%d, { %d }", (int) tcp->u_arg[0], p.sched_priority);
+ 	}
+ 	return 0;
+ }

+ 22 - 0
package/strace/patches/patch-signal_c

@@ -0,0 +1,22 @@
+--- strace-4.8.orig/signal.c	2013-05-23 15:41:23.000000000 +0200
++++ strace-4.8/signal.c	2014-02-26 17:40:43.000000000 +0100
+@@ -60,6 +60,10 @@
+ # include <asm/ptrace_offsets.h>
+ #endif
+ 
++#ifndef POWERPC
++#include <asm/ptrace.h>
++#endif
++
+ #if defined(SPARC) || defined(SPARC64) || defined(MIPS)
+ typedef struct {
+ 	struct pt_regs		si_regs;
+@@ -815,7 +819,7 @@ sys_sigreturn(struct tcb *tcp)
+ {
+ #if defined(ARM)
+ 	if (entering(tcp)) {
+-		struct sigcontext_struct sc;
++		struct sigcontext sc;
+ 		sigset_t sigm;
+ 		if (umove(tcp, arm_regs.ARM_sp, &sc) < 0)
+ 			return 0;

+ 17 - 0
package/strace/patches/patch-syscall_c

@@ -0,0 +1,17 @@
+--- strace-4.8.orig/syscall.c	2013-05-14 16:10:42.000000000 +0200
++++ strace-4.8/syscall.c	2014-02-26 17:46:14.000000000 +0100
+@@ -72,12 +72,8 @@
+ # include <elf.h>
+ #endif
+ 
+-#if defined(AARCH64)
+-# include <asm/ptrace.h>
+-#endif
+-
+-#if defined(XTENSA)
+-# include <asm/ptrace.h>
++#ifndef POWERPC
++#include <asm/ptrace.h>
+ #endif
+ 
+ #ifndef ERESTARTSYS

+ 14 - 0
package/strace/patches/patch-time_c

@@ -0,0 +1,14 @@
+--- strace-4.8.orig/time.c	2012-05-01 23:17:51.000000000 +0200
++++ strace-4.8/time.c	2014-02-25 17:25:14.000000000 +0100
+@@ -774,7 +774,11 @@ printsigevent(struct tcb *tcp, long arg)
+ 			/* _pad[0] is the _tid field which might not be
+ 			   present in the userlevel definition of the
+ 			   struct.  */
++#if defined(__GLIBC__)
+ 			tprintf("{%d}", sev._sigev_un._pad[0]);
++#else
++			tprintf("{%d}", (int) sev.__pad[0]);
++#endif
+ 		else if (sev.sigev_notify == SIGEV_THREAD)
+ 			tprintf("{%p, %p}", sev.sigev_notify_function,
+ 				sev.sigev_notify_attributes);

+ 2 - 0
rules.mk

@@ -31,6 +31,8 @@ ADK_TARGET_SYSTEM:=	$(strip $(subst ",, $(ADK_TARGET_SYSTEM)))
 ADK_TARGET_LIBC:=	$(strip $(subst ",, $(ADK_TARGET_LIBC)))
 ADK_TARGET_LIBC:=	$(strip $(subst ",, $(ADK_TARGET_LIBC)))
 ADK_TARGET_LIBC_PATH:=	$(strip $(subst ",, $(ADK_TARGET_LIBC_PATH)))
 ADK_TARGET_LIBC_PATH:=	$(strip $(subst ",, $(ADK_TARGET_LIBC_PATH)))
 ADK_TARGET_ENDIAN:=	$(strip $(subst ",, $(ADK_TARGET_ENDIAN)))
 ADK_TARGET_ENDIAN:=	$(strip $(subst ",, $(ADK_TARGET_ENDIAN)))
+ADK_TARGET_FLOAT:=	$(strip $(subst ",, $(ADK_TARGET_FLOAT)))
+ADK_TARGET_ARM_MODE:=	$(strip $(subst ",, $(ADK_TARGET_ARM_MODE)))
 ADK_TARGET_CPU_ARCH:=	$(strip $(subst ",, $(ADK_TARGET_CPU_ARCH)))
 ADK_TARGET_CPU_ARCH:=	$(strip $(subst ",, $(ADK_TARGET_CPU_ARCH)))
 ADK_TARGET_CFLAGS:=	$(strip $(subst ",, $(ADK_TARGET_CFLAGS)))
 ADK_TARGET_CFLAGS:=	$(strip $(subst ",, $(ADK_TARGET_CFLAGS)))
 ADK_TARGET_ABI_CFLAGS:=	$(strip $(subst ",, $(ADK_TARGET_ABI_CFLAGS)))
 ADK_TARGET_ABI_CFLAGS:=	$(strip $(subst ",, $(ADK_TARGET_ABI_CFLAGS)))

+ 1 - 0
scripts/create-pkg

@@ -2,6 +2,7 @@
 topdir=$(readlink -nf $(dirname $0)/.. 2>/dev/null || (cd $(dirname $0)/..; pwd -P))
 topdir=$(readlink -nf $(dirname $0)/.. 2>/dev/null || (cd $(dirname $0)/..; pwd -P))
 
 
 mkdir -p $topdir/target/packages/pkg-enabled
 mkdir -p $topdir/target/packages/pkg-enabled
+rm $topdir/target/packages/pkg-enabled/* 2>/dev/null
 count=1
 count=1
 for i in $(ls $topdir/target/packages/pkg-available/);do
 for i in $(ls $topdir/target/packages/pkg-available/);do
 	cd $topdir/target/packages/pkg-enabled &&
 	cd $topdir/target/packages/pkg-enabled &&

+ 10 - 2
target/arm/Makefile

@@ -18,9 +18,13 @@ LOADADDR:=0x20008000
 ifeq ($(ADK_TARGET_QEMU_ARM_MODEL_SPITZ),y)
 ifeq ($(ADK_TARGET_QEMU_ARM_MODEL_SPITZ),y)
 MACH:=spitz
 MACH:=spitz
 endif
 endif
-ifeq ($(ADK_TARGET_QEMU_ARM_MODEL_VERSATILE),y)
+ifeq ($(ADK_TARGET_QEMU_ARM_MODEL_VERSATILEPB),y)
 MACH:=versatilepb
 MACH:=versatilepb
-NET:=-net user,hostfwd=tcp::2222-:22 -net nic,model=smc91c111
+NET:=-net user -net nic,model=smc91c111
+endif
+ifeq ($(ADK_TARGET_QEMU_ARM_MODEL_VEXPRESS_A9),y)
+MACH:=vexpress-a9
+NET:=-cpu cortex-a9 -device lan9118,netdev=adk0 -netdev user,id=adk0
 endif
 endif
 
 
 kernel-install:
 kernel-install:
@@ -72,10 +76,14 @@ imageinstall: $(FW_DIR)/$(INITRAMFS)
 	@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
 	@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
 	@echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
 	@echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
 ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM),y)
 ifeq ($(ADK_TARGET_SYSTEM_QEMU_ARM),y)
+ifeq ($(ADK_TARGET_QEMU_WITH_VIRTIO),y)
+        @echo 'qemu-system-arm -nographic -kernel $(FW_DIR)/$(TARGET_KERNEL) -drive file=qemu-${CPU_ARCH}.img,if=virtio,index=0 -net nic,model=virtio -net user'
+else
 	@echo "Start qemu with following command line:"
 	@echo "Start qemu with following command line:"
 	@echo 'qemu-system-arm -M $(MACH) -nographic $(NET) -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
 	@echo 'qemu-system-arm -M $(MACH) -nographic $(NET) -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
 endif
 endif
 endif
 endif
+endif
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
 imageinstall: createinitramfs
 imageinstall: createinitramfs
 	@cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
 	@cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)

+ 0 - 1116
target/arm/kernel.config

@@ -1,1116 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/arm 3.11.10 Kernel Configuration
-#
-CONFIG_ARM=y
-CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_HAVE_PROC_CPU=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_ARCH_HAS_CPUFREQ=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_FIQ=y
-CONFIG_VECTORS_BASE=0xffff0000
-CONFIG_ARM_PATCH_PHYS_VIRT=y
-CONFIG_NEED_MACH_IO_H=y
-CONFIG_NEED_MACH_MEMORY_H=y
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_IRQ_WORK=y
-
-#
-# General setup
-#
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_CROSS_COMPILE=""
-# CONFIG_COMPILE_TEST is not set
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_XZ=y
-CONFIG_HAVE_KERNEL_LZO=y
-CONFIG_HAVE_KERNEL_LZ4=y
-# CONFIG_KERNEL_GZIP is not set
-# CONFIG_KERNEL_LZMA is not set
-CONFIG_KERNEL_XZ=y
-# CONFIG_KERNEL_LZO is not set
-# CONFIG_KERNEL_LZ4 is not set
-CONFIG_DEFAULT_HOSTNAME="openadk"
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_FHANDLE is not set
-# CONFIG_AUDIT is not set
-CONFIG_HAVE_GENERIC_HARDIRQS=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_IRQ_DOMAIN=y
-CONFIG_KTIME_SCALAR=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-
-#
-# Timers subsystem
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ_COMMON=y
-# CONFIG_HZ_PERIODIC is not set
-CONFIG_NO_HZ_IDLE=y
-# CONFIG_NO_HZ is not set
-# CONFIG_HIGH_RES_TIMERS is not set
-
-#
-# CPU/Task time and stats accounting
-#
-CONFIG_TICK_CPU_ACCOUNTING=y
-# CONFIG_IRQ_TIME_ACCOUNTING is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_TASKSTATS is not set
-
-#
-# RCU Subsystem
-#
-CONFIG_TINY_RCU=y
-# CONFIG_PREEMPT_RCU is not set
-# CONFIG_RCU_STALL_COMMON is not set
-# CONFIG_TREE_RCU_TRACE is not set
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=16
-CONFIG_GENERIC_SCHED_CLOCK=y
-# CONFIG_CGROUPS is not set
-# CONFIG_CHECKPOINT_RESTORE is not set
-# CONFIG_NAMESPACES is not set
-CONFIG_UIDGID_CONVERTED=y
-# CONFIG_UIDGID_STRICT_TYPE_CHECKS is not set
-# CONFIG_SCHED_AUTOGROUP is not set
-# CONFIG_SYSFS_DEPRECATED is not set
-# CONFIG_RELAY is not set
-# CONFIG_BLK_DEV_INITRD is not set
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=y
-CONFIG_HAVE_UID16=y
-CONFIG_EXPERT=y
-CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
-# CONFIG_KALLSYMS is not set
-CONFIG_PRINTK=y
-# CONFIG_BUG is not set
-# CONFIG_BASE_FULL is not set
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_EMBEDDED=y
-CONFIG_HAVE_PERF_EVENTS=y
-CONFIG_PERF_USE_VMALLOC=y
-
-#
-# Kernel Performance Events And Counters
-#
-# CONFIG_PERF_EVENTS is not set
-# CONFIG_VM_EVENT_COUNTERS is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
-# CONFIG_SLOB is not set
-# CONFIG_PROFILING is not set
-CONFIG_HAVE_OPROFILE=y
-# CONFIG_KPROBES is not set
-# CONFIG_JUMP_LABEL is not set
-# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_ATTRS=y
-CONFIG_HAVE_DMA_CONTIGUOUS=y
-CONFIG_GENERIC_SMP_IDLE_THREAD=y
-CONFIG_GENERIC_IDLE_POLL_SETUP=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_CLK=y
-CONFIG_HAVE_DMA_API_DEBUG=y
-CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
-CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
-CONFIG_HAVE_CONTEXT_TRACKING=y
-CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
-CONFIG_MODULES_USE_ELF_REL=y
-CONFIG_CLONE_BACKWARDS=y
-CONFIG_OLD_SIGSUSPEND3=y
-CONFIG_OLD_SIGACTION=y
-
-#
-# GCOV-based kernel profiling
-#
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=1
-CONFIG_MODULES=y
-# CONFIG_MODULE_FORCE_LOAD is not set
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-# CONFIG_MODULE_SIG is not set
-# CONFIG_BLOCK is not set
-CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-CONFIG_INLINE_READ_UNLOCK=y
-CONFIG_INLINE_READ_UNLOCK_IRQ=y
-CONFIG_INLINE_WRITE_UNLOCK=y
-CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-# CONFIG_FREEZER is not set
-
-#
-# System Type
-#
-CONFIG_MMU=y
-# CONFIG_ARCH_MULTIPLATFORM is not set
-# CONFIG_ARCH_INTEGRATOR is not set
-# CONFIG_ARCH_REALVIEW is not set
-# CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCH_AT91 is not set
-CONFIG_ARCH_BCM2708=y
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_GEMINI is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_NETX is not set
-# CONFIG_ARCH_IOP13XX is not set
-# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
-# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_DOVE is not set
-# CONFIG_ARCH_KIRKWOOD is not set
-# CONFIG_ARCH_MV78XX0 is not set
-# CONFIG_ARCH_ORION5X is not set
-# CONFIG_ARCH_MMP is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_W90X900 is not set
-# CONFIG_ARCH_LPC32XX is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_MSM is not set
-# CONFIG_ARCH_SHMOBILE is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C24XX is not set
-# CONFIG_ARCH_S3C64XX is not set
-# CONFIG_ARCH_S5P64X0 is not set
-# CONFIG_ARCH_S5PC100 is not set
-# CONFIG_ARCH_S5PV210 is not set
-# CONFIG_ARCH_EXYNOS is not set
-# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_DAVINCI is not set
-# CONFIG_ARCH_OMAP1 is not set
-# CONFIG_PLAT_SPEAR is not set
-
-#
-# ST-Ericsson AB U300/U335 Platform
-#
-
-#
-# ST-Ericsson Mobile Platform Products
-#
-
-#
-# ST-Ericsson U300/U335 Feature Selections
-#
-
-#
-# Broadcom BCM2708 Implementations
-#
-CONFIG_MACH_BCM2708=y
-CONFIG_BCM2708_GPIO=y
-CONFIG_BCM2708_VCMEM=y
-# CONFIG_BCM2708_NOL2CACHE is not set
-CONFIG_BCM2708_DMAER=y
-
-#
-# Processor Type
-#
-CONFIG_CPU_V6=y
-CONFIG_CPU_32v6=y
-CONFIG_CPU_ABRT_EV6=y
-CONFIG_CPU_PABRT_V6=y
-CONFIG_CPU_CACHE_V6=y
-CONFIG_CPU_CACHE_VIPT=y
-CONFIG_CPU_COPY_V6=y
-CONFIG_CPU_TLB_V6=y
-CONFIG_CPU_HAS_ASID=y
-CONFIG_CPU_CP15=y
-CONFIG_CPU_CP15_MMU=y
-CONFIG_CPU_USE_DOMAINS=y
-
-#
-# Processor Features
-#
-# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
-# CONFIG_ARM_THUMB is not set
-# CONFIG_CPU_ICACHE_DISABLE is not set
-# CONFIG_CPU_DCACHE_DISABLE is not set
-# CONFIG_CPU_BPREDICT_DISABLE is not set
-CONFIG_KUSER_HELPERS=y
-# CONFIG_CACHE_L2X0 is not set
-CONFIG_ARM_L1_CACHE_SHIFT=5
-CONFIG_ARM_DMA_MEM_BUFFERABLE=y
-CONFIG_ARM_NR_BANKS=8
-# CONFIG_ARM_ERRATA_326103 is not set
-CONFIG_ARM_ERRATA_411920=y
-# CONFIG_ARM_ERRATA_364296 is not set
-
-#
-# Bus support
-#
-CONFIG_ARM_AMBA=y
-# CONFIG_PCI_SYSCALL is not set
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_ARCH_NR_GPIO=0
-CONFIG_PREEMPT_NONE=y
-# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT is not set
-CONFIG_HZ=100
-# CONFIG_SCHED_HRTICK is not set
-CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
-# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-CONFIG_HAVE_ARCH_PFN_VALID=y
-# CONFIG_HIGHMEM is not set
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_HAVE_MEMBLOCK=y
-# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
-CONFIG_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-# CONFIG_COMPACTION is not set
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=0
-# CONFIG_KSM is not set
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-# CONFIG_CROSS_MEMORY_ATTACH is not set
-CONFIG_NEED_PER_CPU_KM=y
-# CONFIG_CLEANCACHE is not set
-# CONFIG_ZBUD is not set
-CONFIG_FORCE_MAX_ZONEORDER=11
-CONFIG_ALIGNMENT_TRAP=y
-# CONFIG_UACCESS_WITH_MEMCPY is not set
-# CONFIG_SECCOMP is not set
-# CONFIG_CC_STACKPROTECTOR is not set
-
-#
-# Boot options
-#
-CONFIG_USE_OF=y
-CONFIG_ATAGS=y
-# CONFIG_DEPRECATED_PARAM_STRUCT is not set
-CONFIG_ZBOOT_ROM_TEXT=0
-CONFIG_ZBOOT_ROM_BSS=0
-# CONFIG_ARM_APPENDED_DTB is not set
-CONFIG_CMDLINE=""
-# CONFIG_XIP_KERNEL is not set
-# CONFIG_KEXEC is not set
-# CONFIG_CRASH_DUMP is not set
-CONFIG_AUTO_ZRELADDR=y
-
-#
-# CPU Power Management
-#
-
-#
-# CPU Frequency scaling
-#
-# CONFIG_CPU_FREQ is not set
-# CONFIG_CPU_IDLE is not set
-# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-CONFIG_VFP=y
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
-CONFIG_BINFMT_SCRIPT=y
-# CONFIG_HAVE_AOUT is not set
-# CONFIG_BINFMT_MISC is not set
-# CONFIG_COREDUMP is not set
-
-#
-# Power management options
-#
-# CONFIG_SUSPEND is not set
-# CONFIG_PM_RUNTIME is not set
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-# CONFIG_ARM_CPU_SUSPEND is not set
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-# CONFIG_PACKET_DIAG is not set
-CONFIG_UNIX=y
-# CONFIG_UNIX_DIAG is not set
-# CONFIG_XFRM_USER is not set
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
-# CONFIG_IP_PNP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE_DEMUX is not set
-# CONFIG_NET_IP_TUNNEL is not set
-# CONFIG_ARPD is not set
-# CONFIG_SYN_COOKIES is not set
-# CONFIG_INET_AH is not set
-# CONFIG_INET_ESP is not set
-# CONFIG_INET_IPCOMP is not set
-# CONFIG_INET_XFRM_TUNNEL is not set
-# CONFIG_INET_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
-# CONFIG_INET_LRO is not set
-# CONFIG_INET_DIAG is not set
-# CONFIG_TCP_CONG_ADVANCED is not set
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_DEFAULT_TCP_CONG="cubic"
-# CONFIG_TCP_MD5SIG is not set
-# CONFIG_IPV6 is not set
-# CONFIG_NETWORK_SECMARK is not set
-# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-# CONFIG_NETFILTER is not set
-# CONFIG_IP_DCCP is not set
-# CONFIG_IP_SCTP is not set
-# CONFIG_RDS is not set
-# CONFIG_TIPC is not set
-# CONFIG_ATM is not set
-# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_PHONET is not set
-# CONFIG_IEEE802154 is not set
-# CONFIG_NET_SCHED is not set
-# CONFIG_DCB is not set
-# CONFIG_BATMAN_ADV is not set
-# CONFIG_OPENVSWITCH is not set
-# CONFIG_VSOCKETS is not set
-# CONFIG_NETLINK_MMAP is not set
-# CONFIG_NETLINK_DIAG is not set
-# CONFIG_NET_MPLS_GSO is not set
-CONFIG_NET_RX_BUSY_POLL=y
-CONFIG_BQL=y
-# CONFIG_BPF_JIT is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_CAN is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT is not set
-# CONFIG_AF_RXRPC is not set
-# CONFIG_WIRELESS is not set
-# CONFIG_WIMAX is not set
-# CONFIG_RFKILL is not set
-# CONFIG_NET_9P is not set
-# CONFIG_CAIF is not set
-# CONFIG_CEPH_LIB is not set
-# CONFIG_NFC is not set
-CONFIG_HAVE_BPF_JIT=y
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER_PATH=""
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-# CONFIG_STANDALONE is not set
-# CONFIG_PREVENT_FIRMWARE_BUILD is not set
-# CONFIG_FW_LOADER is not set
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
-# CONFIG_GENERIC_CPU_DEVICES is not set
-# CONFIG_DMA_SHARED_BUFFER is not set
-# CONFIG_CMA is not set
-
-#
-# Bus devices
-#
-# CONFIG_ARM_CCI is not set
-# CONFIG_CONNECTOR is not set
-# CONFIG_MTD is not set
-CONFIG_DTC=y
-CONFIG_OF=y
-
-#
-# Device Tree and Open Firmware support
-#
-# CONFIG_PROC_DEVICETREE is not set
-# CONFIG_OF_SELFTEST is not set
-CONFIG_OF_FLATTREE=y
-CONFIG_OF_EARLY_FLATTREE=y
-CONFIG_OF_ADDRESS=y
-CONFIG_OF_IRQ=y
-# CONFIG_PARPORT is not set
-
-#
-# Misc devices
-#
-# CONFIG_ATMEL_PWM is not set
-# CONFIG_DUMMY_IRQ is not set
-# CONFIG_ATMEL_SSC is not set
-# CONFIG_ENCLOSURE_SERVICES is not set
-# CONFIG_SRAM is not set
-# CONFIG_C2PORT is not set
-
-#
-# EEPROM support
-#
-# CONFIG_EEPROM_93CX6 is not set
-
-#
-# Texas Instruments shared transport line discipline
-#
-# CONFIG_TI_ST is not set
-
-#
-# Altera FPGA firmware download module
-#
-CONFIG_BCM2708_VCHIQ=y
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-# CONFIG_SCSI_DMA is not set
-# CONFIG_SCSI_NETLINK is not set
-# CONFIG_NETDEVICES is not set
-
-#
-# Input device support
-#
-# CONFIG_INPUT is not set
-
-#
-# Hardware I/O ports
-#
-# CONFIG_SERIO is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_TTY=y
-# CONFIG_VT is not set
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-# CONFIG_N_GSM is not set
-# CONFIG_TRACE_SINK is not set
-# CONFIG_DEVKMEM is not set
-
-#
-# Serial drivers
-#
-# CONFIG_SERIAL_8250 is not set
-
-#
-# Non-8250 serial port support
-#
-# CONFIG_SERIAL_AMBA_PL010 is not set
-# CONFIG_SERIAL_AMBA_PL011 is not set
-# CONFIG_SERIAL_SCCNXP is not set
-# CONFIG_SERIAL_TIMBERDALE is not set
-# CONFIG_SERIAL_ALTERA_JTAGUART is not set
-# CONFIG_SERIAL_ALTERA_UART is not set
-# CONFIG_SERIAL_XILINX_PS_UART is not set
-# CONFIG_SERIAL_ARC is not set
-# CONFIG_SERIAL_FSL_LPUART is not set
-# CONFIG_TTY_PRINTK is not set
-# CONFIG_HVC_DCC is not set
-# CONFIG_IPMI_HANDLER is not set
-# CONFIG_HW_RANDOM is not set
-# CONFIG_R3964 is not set
-# CONFIG_TCG_TPM is not set
-# CONFIG_BRCM_CHAR_DRIVERS is not set
-# CONFIG_I2C is not set
-# CONFIG_SPI is not set
-# CONFIG_HSI is not set
-
-#
-# PPS support
-#
-# CONFIG_PPS is not set
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-# CONFIG_PTP_1588_CLOCK is not set
-
-#
-# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
-#
-CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
-CONFIG_ARCH_REQUIRE_GPIOLIB=y
-CONFIG_GPIO_DEVRES=y
-CONFIG_GPIOLIB=y
-CONFIG_OF_GPIO=y
-# CONFIG_DEBUG_GPIO is not set
-# CONFIG_GPIO_SYSFS is not set
-
-#
-# Memory mapped GPIO drivers:
-#
-# CONFIG_GPIO_GENERIC_PLATFORM is not set
-# CONFIG_GPIO_EM is not set
-# CONFIG_GPIO_PL061 is not set
-# CONFIG_GPIO_RCAR is not set
-# CONFIG_GPIO_TS5500 is not set
-# CONFIG_GPIO_GRGPIO is not set
-
-#
-# I2C GPIO expanders:
-#
-
-#
-# PCI GPIO expanders:
-#
-
-#
-# SPI GPIO expanders:
-#
-
-#
-# AC97 GPIO expanders:
-#
-
-#
-# MODULbus GPIO expanders:
-#
-
-#
-# USB GPIO expanders:
-#
-# CONFIG_W1 is not set
-# CONFIG_POWER_SUPPLY is not set
-# CONFIG_POWER_AVS is not set
-# CONFIG_HWMON is not set
-# CONFIG_THERMAL is not set
-# CONFIG_WATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-# CONFIG_SSB is not set
-CONFIG_BCMA_POSSIBLE=y
-
-#
-# Broadcom specific AMBA
-#
-# CONFIG_BCMA is not set
-
-#
-# Multifunction device drivers
-#
-# CONFIG_MFD_CORE is not set
-# CONFIG_MFD_CROS_EC is not set
-# CONFIG_MFD_ASIC3 is not set
-# CONFIG_HTC_EGPIO is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_MFD_KEMPLD is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_ABX500_CORE is not set
-# CONFIG_MFD_SYSCON is not set
-# CONFIG_MFD_TI_AM335X_TSCADC is not set
-# CONFIG_MFD_TPS65912 is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_MFD_T7L66XB is not set
-# CONFIG_MFD_TC6387XB is not set
-# CONFIG_MFD_TC6393XB is not set
-# CONFIG_VEXPRESS_CONFIG is not set
-# CONFIG_REGULATOR is not set
-# CONFIG_MEDIA_SUPPORT is not set
-
-#
-# Graphics support
-#
-# CONFIG_DRM is not set
-# CONFIG_VGASTATE is not set
-# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-CONFIG_FB=y
-# CONFIG_FIRMWARE_EDID is not set
-# CONFIG_FB_DDC is not set
-# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-# CONFIG_FB_CFB_FILLRECT is not set
-# CONFIG_FB_CFB_COPYAREA is not set
-# CONFIG_FB_CFB_IMAGEBLIT is not set
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-# CONFIG_FB_SYS_FILLRECT is not set
-# CONFIG_FB_SYS_COPYAREA is not set
-# CONFIG_FB_SYS_IMAGEBLIT is not set
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-# CONFIG_FB_SYS_FOPS is not set
-# CONFIG_FB_SVGALIB is not set
-# CONFIG_FB_MACMODES is not set
-# CONFIG_FB_BACKLIGHT is not set
-# CONFIG_FB_MODE_HELPERS is not set
-# CONFIG_FB_TILEBLITTING is not set
-
-#
-# Frame buffer hardware drivers
-#
-# CONFIG_FB_BCM2708 is not set
-# CONFIG_FB_ARMCLCD is not set
-# CONFIG_FB_S1D13XXX is not set
-# CONFIG_FB_GOLDFISH is not set
-# CONFIG_FB_VIRTUAL is not set
-# CONFIG_FB_METRONOME is not set
-# CONFIG_FB_BROADSHEET is not set
-# CONFIG_FB_AUO_K190X is not set
-# CONFIG_FB_SIMPLE is not set
-# CONFIG_EXYNOS_VIDEO is not set
-# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
-# CONFIG_LOGO is not set
-# CONFIG_SOUND is not set
-# CONFIG_USB_SUPPORT is not set
-# CONFIG_MMC is not set
-# CONFIG_MEMSTICK is not set
-# CONFIG_NEW_LEDS is not set
-# CONFIG_ACCESSIBILITY is not set
-# CONFIG_EDAC is not set
-CONFIG_RTC_LIB=y
-# CONFIG_RTC_CLASS is not set
-# CONFIG_DMADEVICES is not set
-# CONFIG_AUXDISPLAY is not set
-# CONFIG_UIO is not set
-# CONFIG_VIRT_DRIVERS is not set
-
-#
-# Virtio drivers
-#
-# CONFIG_VIRTIO_MMIO is not set
-
-#
-# Microsoft Hyper-V guest support
-#
-# CONFIG_STAGING is not set
-CONFIG_CLKDEV_LOOKUP=y
-
-#
-# Hardware Spinlock drivers
-#
-# CONFIG_MAILBOX is not set
-CONFIG_IOMMU_SUPPORT=y
-CONFIG_OF_IOMMU=y
-
-#
-# Remoteproc drivers
-#
-# CONFIG_STE_MODEM_RPROC is not set
-
-#
-# Rpmsg drivers
-#
-# CONFIG_PM_DEVFREQ is not set
-# CONFIG_EXTCON is not set
-# CONFIG_MEMORY is not set
-# CONFIG_IIO is not set
-# CONFIG_PWM is not set
-CONFIG_IRQCHIP=y
-# CONFIG_IPACK_BUS is not set
-# CONFIG_RESET_CONTROLLER is not set
-# CONFIG_FMC is not set
-
-#
-# File systems
-#
-CONFIG_DCACHE_WORD_ACCESS=y
-# CONFIG_FS_POSIX_ACL is not set
-CONFIG_EXPORTFS=y
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_FANOTIFY=y
-# CONFIG_QUOTA is not set
-# CONFIG_QUOTACTL is not set
-# CONFIG_AUTOFS4_FS is not set
-# CONFIG_FUSE_FS is not set
-
-#
-# Caches
-#
-# CONFIG_FSCACHE is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_SYSCTL=y
-# CONFIG_PROC_PAGE_MONITOR is not set
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-# CONFIG_TMPFS_POSIX_ACL is not set
-# CONFIG_TMPFS_XATTR is not set
-# CONFIG_HUGETLB_PAGE is not set
-# CONFIG_CONFIGFS_FS is not set
-# CONFIG_MISC_FILESYSTEMS is not set
-# CONFIG_NETWORK_FILESYSTEMS is not set
-CONFIG_NLS=m
-CONFIG_NLS_DEFAULT="iso8859-1"
-# CONFIG_NLS_CODEPAGE_437 is not set
-# CONFIG_NLS_CODEPAGE_737 is not set
-# CONFIG_NLS_CODEPAGE_775 is not set
-# CONFIG_NLS_CODEPAGE_850 is not set
-# CONFIG_NLS_CODEPAGE_852 is not set
-# CONFIG_NLS_CODEPAGE_855 is not set
-# CONFIG_NLS_CODEPAGE_857 is not set
-# CONFIG_NLS_CODEPAGE_860 is not set
-# CONFIG_NLS_CODEPAGE_861 is not set
-# CONFIG_NLS_CODEPAGE_862 is not set
-# CONFIG_NLS_CODEPAGE_863 is not set
-# CONFIG_NLS_CODEPAGE_864 is not set
-# CONFIG_NLS_CODEPAGE_865 is not set
-# CONFIG_NLS_CODEPAGE_866 is not set
-# CONFIG_NLS_CODEPAGE_869 is not set
-# CONFIG_NLS_CODEPAGE_936 is not set
-# CONFIG_NLS_CODEPAGE_950 is not set
-# CONFIG_NLS_CODEPAGE_932 is not set
-# CONFIG_NLS_CODEPAGE_949 is not set
-# CONFIG_NLS_CODEPAGE_874 is not set
-# CONFIG_NLS_ISO8859_8 is not set
-# CONFIG_NLS_CODEPAGE_1250 is not set
-# CONFIG_NLS_CODEPAGE_1251 is not set
-# CONFIG_NLS_ASCII is not set
-# CONFIG_NLS_ISO8859_1 is not set
-# CONFIG_NLS_ISO8859_2 is not set
-# CONFIG_NLS_ISO8859_3 is not set
-# CONFIG_NLS_ISO8859_4 is not set
-# CONFIG_NLS_ISO8859_5 is not set
-# CONFIG_NLS_ISO8859_6 is not set
-# CONFIG_NLS_ISO8859_7 is not set
-# CONFIG_NLS_ISO8859_9 is not set
-# CONFIG_NLS_ISO8859_13 is not set
-# CONFIG_NLS_ISO8859_14 is not set
-# CONFIG_NLS_ISO8859_15 is not set
-# CONFIG_NLS_KOI8_R is not set
-# CONFIG_NLS_KOI8_U is not set
-# CONFIG_NLS_MAC_ROMAN is not set
-# CONFIG_NLS_MAC_CELTIC is not set
-# CONFIG_NLS_MAC_CENTEURO is not set
-# CONFIG_NLS_MAC_CROATIAN is not set
-# CONFIG_NLS_MAC_CYRILLIC is not set
-# CONFIG_NLS_MAC_GAELIC is not set
-# CONFIG_NLS_MAC_GREEK is not set
-# CONFIG_NLS_MAC_ICELAND is not set
-# CONFIG_NLS_MAC_INUIT is not set
-# CONFIG_NLS_MAC_ROMANIAN is not set
-# CONFIG_NLS_MAC_TURKISH is not set
-# CONFIG_NLS_UTF8 is not set
-
-#
-# Kernel hacking
-#
-
-#
-# printk and dmesg options
-#
-CONFIG_PRINTK_TIME=y
-CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
-# CONFIG_BOOT_PRINTK_DELAY is not set
-
-#
-# Compile-time checks and compiler options
-#
-# CONFIG_DEBUG_INFO is not set
-# CONFIG_ENABLE_WARN_DEPRECATED is not set
-# CONFIG_ENABLE_MUST_CHECK is not set
-CONFIG_FRAME_WARN=1024
-# CONFIG_STRIP_ASM_SYMS is not set
-# CONFIG_READABLE_ASM is not set
-# CONFIG_UNUSED_SYMBOLS is not set
-# CONFIG_DEBUG_FS is not set
-# CONFIG_HEADERS_CHECK is not set
-# CONFIG_DEBUG_SECTION_MISMATCH is not set
-CONFIG_FRAME_POINTER=y
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_DEBUG_KERNEL=y
-
-#
-# Memory Debugging
-#
-# CONFIG_DEBUG_PAGEALLOC is not set
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_DEBUG_SLAB is not set
-CONFIG_HAVE_DEBUG_KMEMLEAK=y
-# CONFIG_DEBUG_KMEMLEAK is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_MEMORY_INIT is not set
-# CONFIG_DEBUG_SHIRQ is not set
-
-#
-# Debug Lockups and Hangs
-#
-# CONFIG_LOCKUP_DETECTOR is not set
-# CONFIG_DETECT_HUNG_TASK is not set
-# CONFIG_PANIC_ON_OOPS is not set
-CONFIG_PANIC_ON_OOPS_VALUE=0
-# CONFIG_SCHED_DEBUG is not set
-# CONFIG_SCHEDSTATS is not set
-# CONFIG_TIMER_STATS is not set
-
-#
-# Lock Debugging (spinlocks, mutexes, etc...)
-#
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_RT_MUTEX_TESTER is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_ATOMIC_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_DEBUG_KOBJECT is not set
-# CONFIG_DEBUG_WRITECOUNT is not set
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_DEBUG_CREDENTIALS is not set
-
-#
-# RCU Debugging
-#
-# CONFIG_SPARSE_RCU_POINTER is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_RCU_TRACE is not set
-# CONFIG_NOTIFIER_ERROR_INJECTION is not set
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_LATENCYTOP is not set
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_TRACING_SUPPORT=y
-# CONFIG_FTRACE is not set
-
-#
-# Runtime Testing
-#
-# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_RBTREE_TEST is not set
-# CONFIG_INTERVAL_TREE_TEST is not set
-# CONFIG_ATOMIC64_SELFTEST is not set
-# CONFIG_TEST_STRING_HELPERS is not set
-# CONFIG_TEST_KSTRTOX is not set
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
-# CONFIG_STRICT_DEVMEM is not set
-# CONFIG_ARM_UNWIND is not set
-# CONFIG_DEBUG_USER is not set
-# CONFIG_DEBUG_LL is not set
-CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
-CONFIG_UNCOMPRESS_INCLUDE="mach/uncompress.h"
-# CONFIG_OC_ETM is not set
-# CONFIG_PID_IN_CONTEXTIDR is not set
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY_DMESG_RESTRICT is not set
-# CONFIG_SECURITY is not set
-# CONFIG_SECURITYFS is not set
-CONFIG_DEFAULT_SECURITY_DAC=y
-CONFIG_DEFAULT_SECURITY=""
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-# CONFIG_CRYPTO_FIPS is not set
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_RNG=m
-CONFIG_CRYPTO_RNG2=m
-# CONFIG_CRYPTO_MANAGER is not set
-# CONFIG_CRYPTO_MANAGER2 is not set
-# CONFIG_CRYPTO_USER is not set
-# CONFIG_CRYPTO_GF128MUL is not set
-# CONFIG_CRYPTO_NULL is not set
-# CONFIG_CRYPTO_CRYPTD is not set
-# CONFIG_CRYPTO_AUTHENC is not set
-# CONFIG_CRYPTO_TEST is not set
-
-#
-# Authenticated Encryption with Associated Data
-#
-# CONFIG_CRYPTO_CCM is not set
-# CONFIG_CRYPTO_GCM is not set
-# CONFIG_CRYPTO_SEQIV is not set
-
-#
-# Block modes
-#
-# CONFIG_CRYPTO_CBC is not set
-# CONFIG_CRYPTO_CTR is not set
-# CONFIG_CRYPTO_CTS is not set
-# CONFIG_CRYPTO_ECB is not set
-# CONFIG_CRYPTO_LRW is not set
-# CONFIG_CRYPTO_PCBC is not set
-# CONFIG_CRYPTO_XTS is not set
-
-#
-# Hash modes
-#
-# CONFIG_CRYPTO_CMAC is not set
-# CONFIG_CRYPTO_HMAC is not set
-# CONFIG_CRYPTO_XCBC is not set
-# CONFIG_CRYPTO_VMAC is not set
-
-#
-# Digest
-#
-# CONFIG_CRYPTO_CRC32C is not set
-# CONFIG_CRYPTO_CRC32 is not set
-# CONFIG_CRYPTO_GHASH is not set
-# CONFIG_CRYPTO_MD4 is not set
-# CONFIG_CRYPTO_MD5 is not set
-# CONFIG_CRYPTO_MICHAEL_MIC is not set
-# CONFIG_CRYPTO_RMD128 is not set
-# CONFIG_CRYPTO_RMD160 is not set
-# CONFIG_CRYPTO_RMD256 is not set
-# CONFIG_CRYPTO_RMD320 is not set
-# CONFIG_CRYPTO_SHA1 is not set
-# CONFIG_CRYPTO_SHA1_ARM is not set
-# CONFIG_CRYPTO_SHA256 is not set
-# CONFIG_CRYPTO_SHA512 is not set
-# CONFIG_CRYPTO_TGR192 is not set
-# CONFIG_CRYPTO_WP512 is not set
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=y
-# CONFIG_CRYPTO_AES_ARM is not set
-# CONFIG_CRYPTO_ANUBIS is not set
-# CONFIG_CRYPTO_ARC4 is not set
-# CONFIG_CRYPTO_BLOWFISH is not set
-# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-# CONFIG_CRYPTO_DES is not set
-# CONFIG_CRYPTO_FCRYPT is not set
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_SALSA20 is not set
-# CONFIG_CRYPTO_SEED is not set
-# CONFIG_CRYPTO_SERPENT is not set
-# CONFIG_CRYPTO_TEA is not set
-# CONFIG_CRYPTO_TWOFISH is not set
-
-#
-# Compression
-#
-# CONFIG_CRYPTO_DEFLATE is not set
-# CONFIG_CRYPTO_ZLIB is not set
-# CONFIG_CRYPTO_LZO is not set
-# CONFIG_CRYPTO_LZ4 is not set
-# CONFIG_CRYPTO_LZ4HC is not set
-
-#
-# Random Number Generation
-#
-CONFIG_CRYPTO_ANSI_CPRNG=m
-# CONFIG_CRYPTO_USER_API_HASH is not set
-# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
-CONFIG_CRYPTO_HW=y
-# CONFIG_BINARY_PRINTF is not set
-
-#
-# Library routines
-#
-CONFIG_GENERIC_STRNCPY_FROM_USER=y
-CONFIG_GENERIC_STRNLEN_USER=y
-CONFIG_GENERIC_NET_UTILS=y
-CONFIG_GENERIC_PCI_IOMAP=y
-CONFIG_GENERIC_IO=y
-# CONFIG_CRC_CCITT is not set
-# CONFIG_CRC16 is not set
-# CONFIG_CRC_T10DIF is not set
-# CONFIG_CRC_ITU_T is not set
-# CONFIG_CRC32 is not set
-# CONFIG_CRC7 is not set
-# CONFIG_LIBCRC32C is not set
-# CONFIG_CRC8 is not set
-# CONFIG_XZ_DEC is not set
-# CONFIG_XZ_DEC_BCJ is not set
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
-CONFIG_DQL=y
-CONFIG_NLATTR=y
-CONFIG_GENERIC_ATOMIC64=y
-CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
-# CONFIG_AVERAGE is not set
-# CONFIG_CORDIC is not set
-# CONFIG_DDR is not set
-# CONFIG_VIRTUALIZATION is not set

+ 0 - 1614
target/arm/kernel.config.sharp-zaurus

@@ -1,1614 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/arm 3.9.11 Kernel Configuration
-#
-CONFIG_ARM=y
-CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_GENERIC_GPIO=y
-CONFIG_HAVE_PROC_CPU=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_ARCH_HAS_CPUFREQ=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_ARCH_MTD_XIP=y
-CONFIG_VECTORS_BASE=0xffff0000
-CONFIG_ARM_PATCH_PHYS_VIRT=y
-CONFIG_NEED_MACH_GPIO_H=y
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_IRQ_WORK=y
-
-#
-# General setup
-#
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_CROSS_COMPILE=""
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_XZ=y
-CONFIG_HAVE_KERNEL_LZO=y
-# CONFIG_KERNEL_GZIP is not set
-CONFIG_KERNEL_LZMA=y
-# CONFIG_KERNEL_XZ is not set
-# CONFIG_KERNEL_LZO is not set
-CONFIG_DEFAULT_HOSTNAME="(none)"
-# CONFIG_SWAP is not set
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-# CONFIG_POSIX_MQUEUE is not set
-# CONFIG_FHANDLE is not set
-# CONFIG_AUDIT is not set
-CONFIG_HAVE_GENERIC_HARDIRQS=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_SPARSE_IRQ=y
-CONFIG_KTIME_SCALAR=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-
-#
-# Timers subsystem
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ=y
-# CONFIG_HIGH_RES_TIMERS is not set
-
-#
-# CPU/Task time and stats accounting
-#
-CONFIG_TICK_CPU_ACCOUNTING=y
-# CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_TASKSTATS is not set
-
-#
-# RCU Subsystem
-#
-CONFIG_TINY_RCU=y
-# CONFIG_PREEMPT_RCU is not set
-# CONFIG_RCU_STALL_COMMON is not set
-# CONFIG_TREE_RCU_TRACE is not set
-# CONFIG_IKCONFIG is not set
-CONFIG_LOG_BUF_SHIFT=14
-# CONFIG_CGROUPS is not set
-# CONFIG_CHECKPOINT_RESTORE is not set
-# CONFIG_NAMESPACES is not set
-CONFIG_UIDGID_CONVERTED=y
-# CONFIG_UIDGID_STRICT_TYPE_CHECKS is not set
-# CONFIG_SCHED_AUTOGROUP is not set
-# CONFIG_SYSFS_DEPRECATED is not set
-# CONFIG_RELAY is not set
-# CONFIG_BLK_DEV_INITRD is not set
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=y
-CONFIG_EXPERT=y
-CONFIG_HAVE_UID16=y
-# CONFIG_UID16 is not set
-# CONFIG_SYSCTL_SYSCALL is not set
-# CONFIG_KALLSYMS is not set
-CONFIG_HOTPLUG=y
-CONFIG_PRINTK=y
-# CONFIG_BUG is not set
-# CONFIG_ELF_CORE is not set
-# CONFIG_BASE_FULL is not set
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_EMBEDDED=y
-CONFIG_HAVE_PERF_EVENTS=y
-CONFIG_PERF_USE_VMALLOC=y
-
-#
-# Kernel Performance Events And Counters
-#
-# CONFIG_PERF_EVENTS is not set
-# CONFIG_VM_EVENT_COUNTERS is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
-# CONFIG_SLOB is not set
-# CONFIG_PROFILING is not set
-CONFIG_HAVE_OPROFILE=y
-# CONFIG_KPROBES is not set
-# CONFIG_JUMP_LABEL is not set
-# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_ATTRS=y
-CONFIG_HAVE_DMA_CONTIGUOUS=y
-CONFIG_GENERIC_SMP_IDLE_THREAD=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_CLK=y
-CONFIG_HAVE_DMA_API_DEBUG=y
-CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
-CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
-CONFIG_MODULES_USE_ELF_REL=y
-CONFIG_CLONE_BACKWARDS=y
-CONFIG_OLD_SIGSUSPEND3=y
-CONFIG_OLD_SIGACTION=y
-
-#
-# GCOV-based kernel profiling
-#
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=1
-CONFIG_MODULES=y
-# CONFIG_MODULE_FORCE_LOAD is not set
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-# CONFIG_MODULE_SIG is not set
-CONFIG_BLOCK=y
-# CONFIG_LBDAF is not set
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_BLK_DEV_BSGLIB is not set
-# CONFIG_BLK_DEV_INTEGRITY is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_KARMA_PARTITION is not set
-# CONFIG_EFI_PARTITION is not set
-# CONFIG_SYSV68_PARTITION is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_DEADLINE=y
-# CONFIG_IOSCHED_CFQ is not set
-CONFIG_DEFAULT_DEADLINE=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="deadline"
-CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-CONFIG_INLINE_READ_UNLOCK=y
-CONFIG_INLINE_READ_UNLOCK_IRQ=y
-CONFIG_INLINE_WRITE_UNLOCK=y
-CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-CONFIG_FREEZER=y
-
-#
-# System Type
-#
-CONFIG_MMU=y
-# CONFIG_ARCH_MULTIPLATFORM is not set
-# CONFIG_ARCH_INTEGRATOR is not set
-# CONFIG_ARCH_REALVIEW is not set
-# CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCH_AT91 is not set
-# CONFIG_ARCH_BCM2708 is not set
-# CONFIG_ARCH_BCM2835 is not set
-# CONFIG_ARCH_CNS3XXX is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_GEMINI is not set
-# CONFIG_ARCH_SIRF is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_MXS is not set
-# CONFIG_ARCH_NETX is not set
-# CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_IOP13XX is not set
-# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
-# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_DOVE is not set
-# CONFIG_ARCH_KIRKWOOD is not set
-# CONFIG_ARCH_MV78XX0 is not set
-# CONFIG_ARCH_ORION5X is not set
-# CONFIG_ARCH_MMP is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_W90X900 is not set
-# CONFIG_ARCH_LPC32XX is not set
-# CONFIG_ARCH_TEGRA is not set
-CONFIG_ARCH_PXA=y
-# CONFIG_ARCH_MSM is not set
-# CONFIG_ARCH_SHMOBILE is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C24XX is not set
-# CONFIG_ARCH_S3C64XX is not set
-# CONFIG_ARCH_S5P64X0 is not set
-# CONFIG_ARCH_S5PC100 is not set
-# CONFIG_ARCH_S5PV210 is not set
-# CONFIG_ARCH_EXYNOS is not set
-# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_U300 is not set
-# CONFIG_ARCH_U8500 is not set
-# CONFIG_ARCH_NOMADIK is not set
-# CONFIG_PLAT_SPEAR is not set
-# CONFIG_ARCH_DAVINCI is not set
-# CONFIG_ARCH_OMAP1 is not set
-# CONFIG_GPIO_PCA953X is not set
-
-#
-# Intel PXA2xx/PXA3xx Implementations
-#
-
-#
-# Intel/Marvell Dev Platforms (sorted by hardware release time)
-#
-# CONFIG_MACH_PXA3XX_DT is not set
-# CONFIG_ARCH_LUBBOCK is not set
-# CONFIG_MACH_MAINSTONE is not set
-# CONFIG_MACH_ZYLONITE300 is not set
-# CONFIG_MACH_ZYLONITE320 is not set
-# CONFIG_MACH_LITTLETON is not set
-# CONFIG_MACH_TAVOREVB is not set
-# CONFIG_MACH_SAAR is not set
-
-#
-# Third Party Dev Platforms (sorted by vendor name)
-#
-# CONFIG_ARCH_PXA_IDP is not set
-# CONFIG_ARCH_VIPER is not set
-# CONFIG_MACH_ARCOM_ZEUS is not set
-# CONFIG_MACH_BALLOON3 is not set
-# CONFIG_MACH_CSB726 is not set
-# CONFIG_MACH_ARMCORE is not set
-# CONFIG_MACH_EM_X270 is not set
-# CONFIG_MACH_EXEDA is not set
-# CONFIG_MACH_CM_X300 is not set
-# CONFIG_MACH_CAPC7117 is not set
-# CONFIG_ARCH_GUMSTIX is not set
-# CONFIG_MACH_INTELMOTE2 is not set
-# CONFIG_MACH_STARGATE2 is not set
-# CONFIG_MACH_XCEP is not set
-# CONFIG_TRIZEPS_PXA is not set
-# CONFIG_MACH_LOGICPD_PXA270 is not set
-# CONFIG_MACH_PCM027 is not set
-# CONFIG_MACH_COLIBRI is not set
-# CONFIG_MACH_COLIBRI300 is not set
-# CONFIG_MACH_COLIBRI320 is not set
-# CONFIG_MACH_VPAC270 is not set
-
-#
-# End-user Products (sorted by vendor name)
-#
-# CONFIG_MACH_H4700 is not set
-# CONFIG_MACH_H5000 is not set
-# CONFIG_MACH_HIMALAYA is not set
-# CONFIG_MACH_MAGICIAN is not set
-# CONFIG_MACH_MIOA701 is not set
-# CONFIG_PXA_EZX is not set
-# CONFIG_MACH_MP900C is not set
-# CONFIG_ARCH_PXA_PALM is not set
-# CONFIG_MACH_RAUMFELD_RC is not set
-# CONFIG_MACH_RAUMFELD_CONNECTOR is not set
-# CONFIG_MACH_RAUMFELD_SPEAKER is not set
-CONFIG_PXA_SHARPSL=y
-CONFIG_PXA_SHARPSL_DETECT_MACH_ID=y
-# CONFIG_MACH_POODLE is not set
-# CONFIG_MACH_CORGI is not set
-# CONFIG_MACH_SHEPHERD is not set
-# CONFIG_MACH_HUSKY is not set
-CONFIG_MACH_AKITA=y
-CONFIG_MACH_SPITZ=y
-CONFIG_MACH_BORZOI=y
-# CONFIG_MACH_TOSA is not set
-# CONFIG_MACH_ICONTROL is not set
-# CONFIG_ARCH_PXA_ESERIES is not set
-# CONFIG_MACH_ZIPIT2 is not set
-CONFIG_PXA27x=y
-CONFIG_PXA_SHARP_Cxx00=y
-CONFIG_SHARPSL_PM=y
-CONFIG_SHARPSL_PM_MAX1111=y
-CONFIG_PXA_SSP=y
-CONFIG_PLAT_PXA=y
-
-#
-# Processor Type
-#
-CONFIG_CPU_XSCALE=y
-CONFIG_CPU_32v5=y
-CONFIG_CPU_ABRT_EV5T=y
-CONFIG_CPU_PABRT_LEGACY=y
-CONFIG_CPU_CACHE_VIVT=y
-CONFIG_CPU_TLB_V4WBI=y
-CONFIG_CPU_CP15=y
-CONFIG_CPU_CP15_MMU=y
-CONFIG_CPU_USE_DOMAINS=y
-
-#
-# Processor Features
-#
-# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
-# CONFIG_ARM_THUMB is not set
-# CONFIG_CPU_DCACHE_DISABLE is not set
-# CONFIG_CACHE_L2X0 is not set
-CONFIG_ARM_L1_CACHE_SHIFT=5
-CONFIG_ARM_NR_BANKS=8
-CONFIG_IWMMXT=y
-CONFIG_XSCALE_PMU=y
-CONFIG_MULTI_IRQ_HANDLER=y
-CONFIG_SHARP_PARAM=y
-CONFIG_SHARP_SCOOP=y
-
-#
-# Bus support
-#
-# CONFIG_PCI_SYSCALL is not set
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_ARCH_NR_GPIO=0
-CONFIG_PREEMPT_NONE=y
-# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT is not set
-CONFIG_HZ=100
-# CONFIG_SCHED_HRTICK is not set
-CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
-# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-CONFIG_HAVE_ARCH_PFN_VALID=y
-# CONFIG_HIGHMEM is not set
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_HAVE_MEMBLOCK=y
-# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
-CONFIG_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=999999
-# CONFIG_COMPACTION is not set
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=0
-# CONFIG_KSM is not set
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_CROSS_MEMORY_ATTACH=y
-CONFIG_NEED_PER_CPU_KM=y
-# CONFIG_CLEANCACHE is not set
-CONFIG_FORCE_MAX_ZONEORDER=11
-CONFIG_ALIGNMENT_TRAP=y
-# CONFIG_UACCESS_WITH_MEMCPY is not set
-# CONFIG_SECCOMP is not set
-# CONFIG_CC_STACKPROTECTOR is not set
-
-#
-# Boot options
-#
-# CONFIG_USE_OF is not set
-CONFIG_ATAGS=y
-# CONFIG_DEPRECATED_PARAM_STRUCT is not set
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_CMDLINE=""
-# CONFIG_XIP_KERNEL is not set
-CONFIG_KEXEC=y
-CONFIG_ATAGS_PROC=y
-# CONFIG_CRASH_DUMP is not set
-CONFIG_AUTO_ZRELADDR=y
-
-#
-# CPU Power Management
-#
-
-#
-# CPU Frequency scaling
-#
-# CONFIG_CPU_FREQ is not set
-# CONFIG_CPU_IDLE is not set
-# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
-CONFIG_HAVE_AOUT=y
-# CONFIG_BINFMT_AOUT is not set
-# CONFIG_BINFMT_MISC is not set
-CONFIG_COREDUMP=y
-
-#
-# Power management options
-#
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-CONFIG_PM_SLEEP=y
-# CONFIG_PM_AUTOSLEEP is not set
-# CONFIG_PM_WAKELOCKS is not set
-# CONFIG_PM_RUNTIME is not set
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_APM_EMULATION=y
-CONFIG_PM_CLK=y
-CONFIG_CPU_PM=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ARM_CPU_SUSPEND=y
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-# CONFIG_PACKET_DIAG is not set
-CONFIG_UNIX=y
-# CONFIG_UNIX_DIAG is not set
-CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
-# CONFIG_XFRM_SUB_POLICY is not set
-# CONFIG_XFRM_MIGRATE is not set
-# CONFIG_XFRM_STATISTICS is not set
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
-# CONFIG_IP_PNP is not set
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE_DEMUX is not set
-# CONFIG_ARPD is not set
-# CONFIG_SYN_COOKIES is not set
-# CONFIG_INET_AH is not set
-# CONFIG_INET_ESP is not set
-# CONFIG_INET_IPCOMP is not set
-# CONFIG_INET_XFRM_TUNNEL is not set
-CONFIG_INET_TUNNEL=y
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
-# CONFIG_INET_LRO is not set
-# CONFIG_INET_DIAG is not set
-# CONFIG_TCP_CONG_ADVANCED is not set
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_DEFAULT_TCP_CONG="cubic"
-# CONFIG_TCP_MD5SIG is not set
-CONFIG_IPV6=y
-# CONFIG_IPV6_PRIVACY is not set
-# CONFIG_IPV6_ROUTER_PREF is not set
-# CONFIG_IPV6_OPTIMISTIC_DAD is not set
-# CONFIG_INET6_AH is not set
-# CONFIG_INET6_ESP is not set
-# CONFIG_INET6_IPCOMP is not set
-# CONFIG_IPV6_MIP6 is not set
-# CONFIG_INET6_XFRM_TUNNEL is not set
-# CONFIG_INET6_TUNNEL is not set
-CONFIG_INET6_XFRM_MODE_TRANSPORT=y
-CONFIG_INET6_XFRM_MODE_TUNNEL=y
-CONFIG_INET6_XFRM_MODE_BEET=y
-# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
-CONFIG_IPV6_SIT=y
-# CONFIG_IPV6_SIT_6RD is not set
-CONFIG_IPV6_NDISC_NODETYPE=y
-# CONFIG_IPV6_TUNNEL is not set
-# CONFIG_IPV6_GRE is not set
-# CONFIG_IPV6_MULTIPLE_TABLES is not set
-# CONFIG_IPV6_MROUTE is not set
-# CONFIG_NETWORK_SECMARK is not set
-# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-# CONFIG_NETFILTER is not set
-# CONFIG_IP_DCCP is not set
-# CONFIG_IP_SCTP is not set
-# CONFIG_RDS is not set
-# CONFIG_TIPC is not set
-# CONFIG_ATM is not set
-# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_PHONET is not set
-# CONFIG_IEEE802154 is not set
-# CONFIG_NET_SCHED is not set
-# CONFIG_DCB is not set
-# CONFIG_BATMAN_ADV is not set
-# CONFIG_OPENVSWITCH is not set
-# CONFIG_VSOCKETS is not set
-CONFIG_BQL=y
-# CONFIG_BPF_JIT is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_HAMRADIO is not set
-# CONFIG_CAN is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT is not set
-# CONFIG_AF_RXRPC is not set
-# CONFIG_WIRELESS is not set
-# CONFIG_WIMAX is not set
-# CONFIG_RFKILL is not set
-# CONFIG_NET_9P is not set
-# CONFIG_CAIF is not set
-# CONFIG_CEPH_LIB is not set
-# CONFIG_NFC is not set
-CONFIG_HAVE_BPF_JIT=y
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER_PATH=""
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=y
-CONFIG_FIRMWARE_IN_KERNEL=y
-CONFIG_EXTRA_FIRMWARE=""
-CONFIG_FW_LOADER_USER_HELPER=y
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
-# CONFIG_GENERIC_CPU_DEVICES is not set
-# CONFIG_DMA_SHARED_BUFFER is not set
-# CONFIG_CMA is not set
-
-#
-# Bus devices
-#
-# CONFIG_CONNECTOR is not set
-# CONFIG_MTD is not set
-# CONFIG_PARPORT is not set
-# CONFIG_BLK_DEV is not set
-
-#
-# Misc devices
-#
-# CONFIG_SENSORS_LIS3LV02D is not set
-# CONFIG_AD525X_DPOT is not set
-# CONFIG_ATMEL_PWM is not set
-# CONFIG_ICS932S401 is not set
-# CONFIG_ATMEL_SSC is not set
-# CONFIG_ENCLOSURE_SERVICES is not set
-# CONFIG_APDS9802ALS is not set
-# CONFIG_ISL29003 is not set
-# CONFIG_ISL29020 is not set
-# CONFIG_SENSORS_TSL2550 is not set
-# CONFIG_SENSORS_BH1780 is not set
-# CONFIG_SENSORS_BH1770 is not set
-# CONFIG_SENSORS_APDS990X is not set
-# CONFIG_HMC6352 is not set
-# CONFIG_DS1682 is not set
-# CONFIG_TI_DAC7512 is not set
-# CONFIG_BMP085_I2C is not set
-# CONFIG_BMP085_SPI is not set
-# CONFIG_USB_SWITCH_FSA9480 is not set
-# CONFIG_LATTICE_ECP3_CONFIG is not set
-# CONFIG_C2PORT is not set
-
-#
-# EEPROM support
-#
-# CONFIG_EEPROM_AT24 is not set
-# CONFIG_EEPROM_AT25 is not set
-# CONFIG_EEPROM_LEGACY is not set
-# CONFIG_EEPROM_MAX6875 is not set
-# CONFIG_EEPROM_93CX6 is not set
-# CONFIG_EEPROM_93XX46 is not set
-
-#
-# Texas Instruments shared transport line discipline
-#
-# CONFIG_TI_ST is not set
-# CONFIG_SENSORS_LIS3_SPI is not set
-# CONFIG_SENSORS_LIS3_I2C is not set
-
-#
-# Altera FPGA firmware download module
-#
-# CONFIG_ALTERA_STAPL is not set
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-# CONFIG_RAID_ATTRS is not set
-# CONFIG_SCSI is not set
-# CONFIG_SCSI_DMA is not set
-# CONFIG_SCSI_NETLINK is not set
-# CONFIG_ATA is not set
-# CONFIG_MD is not set
-# CONFIG_NETDEVICES is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-# CONFIG_INPUT_FF_MEMLESS is not set
-# CONFIG_INPUT_POLLDEV is not set
-# CONFIG_INPUT_SPARSEKMAP is not set
-# CONFIG_INPUT_MATRIXKMAP is not set
-
-#
-# Userland interfaces
-#
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_EVDEV is not set
-# CONFIG_INPUT_EVBUG is not set
-# CONFIG_INPUT_APMPOWER is not set
-
-#
-# Input Device Drivers
-#
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-# CONFIG_INPUT_MISC is not set
-
-#
-# Hardware I/O ports
-#
-# CONFIG_SERIO is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_TTY=y
-CONFIG_VT=y
-# CONFIG_CONSOLE_TRANSLATIONS is not set
-CONFIG_VT_CONSOLE=y
-CONFIG_VT_CONSOLE_SLEEP=y
-CONFIG_HW_CONSOLE=y
-# CONFIG_VT_HW_CONSOLE_BINDING is not set
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-# CONFIG_N_GSM is not set
-# CONFIG_TRACE_SINK is not set
-# CONFIG_DEVKMEM is not set
-
-#
-# Serial drivers
-#
-# CONFIG_SERIAL_8250 is not set
-
-#
-# Non-8250 serial port support
-#
-# CONFIG_SERIAL_MAX3100 is not set
-# CONFIG_SERIAL_MAX310X is not set
-# CONFIG_SERIAL_PXA is not set
-# CONFIG_SERIAL_SCCNXP is not set
-# CONFIG_SERIAL_TIMBERDALE is not set
-# CONFIG_SERIAL_ALTERA_JTAGUART is not set
-# CONFIG_SERIAL_ALTERA_UART is not set
-# CONFIG_SERIAL_IFX6X60 is not set
-# CONFIG_SERIAL_ARC is not set
-# CONFIG_TTY_PRINTK is not set
-# CONFIG_HVC_DCC is not set
-# CONFIG_IPMI_HANDLER is not set
-# CONFIG_HW_RANDOM is not set
-# CONFIG_R3964 is not set
-# CONFIG_RAW_DRIVER is not set
-# CONFIG_TCG_TPM is not set
-# CONFIG_BRCM_CHAR_DRIVERS is not set
-CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=y
-# CONFIG_I2C_COMPAT is not set
-# CONFIG_I2C_CHARDEV is not set
-# CONFIG_I2C_MUX is not set
-# CONFIG_I2C_HELPER_AUTO is not set
-# CONFIG_I2C_SMBUS is not set
-
-#
-# I2C Algorithms
-#
-# CONFIG_I2C_ALGOBIT is not set
-# CONFIG_I2C_ALGOPCF is not set
-# CONFIG_I2C_ALGOPCA is not set
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-# CONFIG_I2C_CBUS_GPIO is not set
-# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
-# CONFIG_I2C_GPIO is not set
-# CONFIG_I2C_OCORES is not set
-# CONFIG_I2C_PCA_PLATFORM is not set
-CONFIG_I2C_PXA=y
-# CONFIG_I2C_PXA_PCI is not set
-# CONFIG_I2C_PXA_SLAVE is not set
-# CONFIG_I2C_SIMTEC is not set
-# CONFIG_I2C_XILINX is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_TAOS_EVM is not set
-
-#
-# Other I2C/SMBus bus drivers
-#
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-CONFIG_SPI=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-
-#
-# SPI Master Controller Drivers
-#
-# CONFIG_SPI_ALTERA is not set
-# CONFIG_SPI_BITBANG is not set
-# CONFIG_SPI_GPIO is not set
-# CONFIG_SPI_OC_TINY is not set
-# CONFIG_SPI_PXA2XX_PXADMA is not set
-CONFIG_SPI_PXA2XX_DMA=y
-CONFIG_SPI_PXA2XX=y
-# CONFIG_SPI_PXA2XX_PCI is not set
-# CONFIG_SPI_SC18IS602 is not set
-# CONFIG_SPI_XCOMM is not set
-# CONFIG_SPI_XILINX is not set
-# CONFIG_SPI_DESIGNWARE is not set
-
-#
-# SPI Protocol Masters
-#
-# CONFIG_SPI_SPIDEV is not set
-# CONFIG_SPI_TLE62X0 is not set
-# CONFIG_HSI is not set
-
-#
-# PPS support
-#
-# CONFIG_PPS is not set
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-# CONFIG_PTP_1588_CLOCK is not set
-
-#
-# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
-#
-# CONFIG_PTP_1588_CLOCK_PCH is not set
-CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
-CONFIG_ARCH_REQUIRE_GPIOLIB=y
-CONFIG_GPIO_DEVRES=y
-CONFIG_GPIOLIB=y
-# CONFIG_DEBUG_GPIO is not set
-# CONFIG_GPIO_SYSFS is not set
-
-#
-# Memory mapped GPIO drivers:
-#
-# CONFIG_GPIO_GENERIC_PLATFORM is not set
-# CONFIG_GPIO_EM is not set
-CONFIG_GPIO_PXA=y
-# CONFIG_GPIO_TS5500 is not set
-
-#
-# I2C GPIO expanders:
-#
-# CONFIG_GPIO_MAX7300 is not set
-# CONFIG_GPIO_MAX732X is not set
-# CONFIG_GPIO_PCF857X is not set
-# CONFIG_GPIO_SX150X is not set
-# CONFIG_GPIO_ADP5588 is not set
-
-#
-# PCI GPIO expanders:
-#
-
-#
-# SPI GPIO expanders:
-#
-# CONFIG_GPIO_MAX7301 is not set
-# CONFIG_GPIO_MCP23S08 is not set
-# CONFIG_GPIO_MC33880 is not set
-# CONFIG_GPIO_74X164 is not set
-
-#
-# AC97 GPIO expanders:
-#
-
-#
-# MODULbus GPIO expanders:
-#
-
-#
-# USB GPIO expanders:
-#
-# CONFIG_W1 is not set
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-CONFIG_PDA_POWER=y
-CONFIG_APM_POWER=y
-# CONFIG_TEST_POWER is not set
-# CONFIG_BATTERY_DS2780 is not set
-# CONFIG_BATTERY_DS2781 is not set
-# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_SBS is not set
-# CONFIG_BATTERY_BQ27x00 is not set
-# CONFIG_BATTERY_MAX17040 is not set
-# CONFIG_BATTERY_MAX17042 is not set
-# CONFIG_CHARGER_MAX8903 is not set
-# CONFIG_CHARGER_LP8727 is not set
-# CONFIG_CHARGER_GPIO is not set
-# CONFIG_CHARGER_BQ2415X is not set
-# CONFIG_CHARGER_SMB347 is not set
-# CONFIG_BATTERY_GOLDFISH is not set
-# CONFIG_POWER_RESET is not set
-# CONFIG_POWER_RESET_RESTART is not set
-# CONFIG_POWER_AVS is not set
-CONFIG_HWMON=y
-# CONFIG_HWMON_VID is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-# CONFIG_SENSORS_AD7314 is not set
-# CONFIG_SENSORS_AD7414 is not set
-# CONFIG_SENSORS_AD7418 is not set
-# CONFIG_SENSORS_ADCXX is not set
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1029 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ADM9240 is not set
-# CONFIG_SENSORS_ADT7410 is not set
-# CONFIG_SENSORS_ADT7411 is not set
-# CONFIG_SENSORS_ADT7462 is not set
-# CONFIG_SENSORS_ADT7470 is not set
-# CONFIG_SENSORS_ADT7475 is not set
-# CONFIG_SENSORS_ASC7621 is not set
-# CONFIG_SENSORS_ATXP1 is not set
-# CONFIG_SENSORS_DS620 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_F71805F is not set
-# CONFIG_SENSORS_F71882FG is not set
-# CONFIG_SENSORS_F75375S is not set
-# CONFIG_SENSORS_G760A is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-# CONFIG_SENSORS_GPIO_FAN is not set
-# CONFIG_SENSORS_HIH6130 is not set
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_JC42 is not set
-# CONFIG_SENSORS_LINEAGE is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM70 is not set
-# CONFIG_SENSORS_LM73 is not set
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_LM93 is not set
-# CONFIG_SENSORS_LTC4151 is not set
-# CONFIG_SENSORS_LTC4215 is not set
-# CONFIG_SENSORS_LTC4245 is not set
-# CONFIG_SENSORS_LTC4261 is not set
-# CONFIG_SENSORS_LM95241 is not set
-# CONFIG_SENSORS_LM95245 is not set
-CONFIG_SENSORS_MAX1111=y
-# CONFIG_SENSORS_MAX16065 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_MAX1668 is not set
-# CONFIG_SENSORS_MAX197 is not set
-# CONFIG_SENSORS_MAX6639 is not set
-# CONFIG_SENSORS_MAX6642 is not set
-# CONFIG_SENSORS_MAX6650 is not set
-# CONFIG_SENSORS_MAX6697 is not set
-# CONFIG_SENSORS_MCP3021 is not set
-# CONFIG_SENSORS_NTC_THERMISTOR is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_PC87427 is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_PMBUS is not set
-# CONFIG_SENSORS_SHT15 is not set
-# CONFIG_SENSORS_SHT21 is not set
-# CONFIG_SENSORS_SMM665 is not set
-# CONFIG_SENSORS_DME1737 is not set
-# CONFIG_SENSORS_EMC1403 is not set
-# CONFIG_SENSORS_EMC2103 is not set
-# CONFIG_SENSORS_EMC6W201 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_SMSC47M192 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_SCH56XX_COMMON is not set
-# CONFIG_SENSORS_ADS1015 is not set
-# CONFIG_SENSORS_ADS7828 is not set
-# CONFIG_SENSORS_ADS7871 is not set
-# CONFIG_SENSORS_AMC6821 is not set
-# CONFIG_SENSORS_INA209 is not set
-# CONFIG_SENSORS_INA2XX is not set
-# CONFIG_SENSORS_THMC50 is not set
-# CONFIG_SENSORS_TMP102 is not set
-# CONFIG_SENSORS_TMP401 is not set
-# CONFIG_SENSORS_TMP421 is not set
-# CONFIG_SENSORS_VT1211 is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83791D is not set
-# CONFIG_SENSORS_W83792D is not set
-# CONFIG_SENSORS_W83793 is not set
-# CONFIG_SENSORS_W83795 is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83L786NG is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_W83627EHF is not set
-# CONFIG_SENSORS_BCM2835 is not set
-# CONFIG_THERMAL is not set
-# CONFIG_WATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-# CONFIG_SSB is not set
-CONFIG_BCMA_POSSIBLE=y
-
-#
-# Broadcom specific AMBA
-#
-# CONFIG_BCMA is not set
-
-#
-# Multifunction device drivers
-#
-# CONFIG_MFD_CORE is not set
-# CONFIG_MFD_88PM860X is not set
-# CONFIG_MFD_88PM800 is not set
-# CONFIG_MFD_88PM805 is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_MFD_ASIC3 is not set
-# CONFIG_MFD_TI_AM335X_TSCADC is not set
-# CONFIG_HTC_EGPIO is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_HTC_I2CPLD is not set
-# CONFIG_MFD_LM3533 is not set
-# CONFIG_TPS6105X is not set
-# CONFIG_TPS65010 is not set
-# CONFIG_TPS6507X is not set
-# CONFIG_MFD_TPS65217 is not set
-# CONFIG_MFD_TPS6586X is not set
-# CONFIG_MFD_TPS65910 is not set
-# CONFIG_MFD_TPS65912_I2C is not set
-# CONFIG_MFD_TPS65912_SPI is not set
-# CONFIG_MFD_TPS80031 is not set
-# CONFIG_TWL4030_CORE is not set
-# CONFIG_TWL6040_CORE is not set
-# CONFIG_MFD_STMPE is not set
-# CONFIG_MFD_TC3589X is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_MFD_T7L66XB is not set
-# CONFIG_MFD_SMSC is not set
-# CONFIG_MFD_TC6387XB is not set
-# CONFIG_MFD_TC6393XB is not set
-# CONFIG_PMIC_DA903X is not set
-# CONFIG_MFD_DA9052_SPI is not set
-# CONFIG_MFD_DA9052_I2C is not set
-# CONFIG_MFD_DA9055 is not set
-# CONFIG_PMIC_ADP5520 is not set
-# CONFIG_MFD_LP8788 is not set
-# CONFIG_MFD_MAX77686 is not set
-# CONFIG_MFD_MAX77693 is not set
-# CONFIG_MFD_MAX8907 is not set
-# CONFIG_MFD_MAX8925 is not set
-# CONFIG_MFD_MAX8997 is not set
-# CONFIG_MFD_MAX8998 is not set
-# CONFIG_MFD_SEC_CORE is not set
-# CONFIG_MFD_ARIZONA_I2C is not set
-# CONFIG_MFD_ARIZONA_SPI is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MFD_WM831X_I2C is not set
-# CONFIG_MFD_WM831X_SPI is not set
-# CONFIG_MFD_WM8350_I2C is not set
-# CONFIG_MFD_WM8994 is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_MC13XXX_SPI is not set
-# CONFIG_MFD_MC13XXX_I2C is not set
-# CONFIG_ABX500_CORE is not set
-# CONFIG_EZX_PCAP is not set
-# CONFIG_MFD_WL1273_CORE is not set
-# CONFIG_MFD_TPS65090 is not set
-# CONFIG_MFD_AAT2870_CORE is not set
-# CONFIG_MFD_RC5T583 is not set
-# CONFIG_MFD_PALMAS is not set
-# CONFIG_MFD_RETU is not set
-# CONFIG_MFD_AS3711 is not set
-# CONFIG_REGULATOR is not set
-# CONFIG_MEDIA_SUPPORT is not set
-
-#
-# Graphics support
-#
-# CONFIG_DRM is not set
-# CONFIG_VGASTATE is not set
-# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-CONFIG_FB=y
-# CONFIG_FIRMWARE_EDID is not set
-# CONFIG_FB_DDC is not set
-# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-# CONFIG_FB_SYS_FILLRECT is not set
-# CONFIG_FB_SYS_COPYAREA is not set
-# CONFIG_FB_SYS_IMAGEBLIT is not set
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-# CONFIG_FB_SYS_FOPS is not set
-# CONFIG_FB_WMT_GE_ROPS is not set
-# CONFIG_FB_SVGALIB is not set
-# CONFIG_FB_MACMODES is not set
-# CONFIG_FB_BACKLIGHT is not set
-# CONFIG_FB_MODE_HELPERS is not set
-# CONFIG_FB_TILEBLITTING is not set
-
-#
-# Frame buffer hardware drivers
-#
-# CONFIG_FB_BCM2708 is not set
-# CONFIG_FB_S1D13XXX is not set
-CONFIG_FB_PXA=y
-# CONFIG_FB_PXA_OVERLAY is not set
-# CONFIG_FB_PXA_SMARTPANEL is not set
-# CONFIG_FB_PXA_PARAMETERS is not set
-# CONFIG_PXA3XX_GCU is not set
-# CONFIG_FB_MBX is not set
-# CONFIG_FB_W100 is not set
-# CONFIG_FB_GOLDFISH is not set
-# CONFIG_FB_VIRTUAL is not set
-# CONFIG_FB_METRONOME is not set
-# CONFIG_FB_BROADSHEET is not set
-# CONFIG_FB_AUO_K190X is not set
-# CONFIG_EXYNOS_VIDEO is not set
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_LCD_CLASS_DEVICE=y
-CONFIG_LCD_CORGI=y
-# CONFIG_LCD_L4F00242T03 is not set
-# CONFIG_LCD_LMS283GF05 is not set
-# CONFIG_LCD_LTV350QV is not set
-# CONFIG_LCD_ILI9320 is not set
-# CONFIG_LCD_TDO24M is not set
-# CONFIG_LCD_VGG2432A4 is not set
-# CONFIG_LCD_PLATFORM is not set
-# CONFIG_LCD_S6E63M0 is not set
-# CONFIG_LCD_LD9040 is not set
-# CONFIG_LCD_AMS369FG06 is not set
-# CONFIG_LCD_LMS501KF03 is not set
-# CONFIG_LCD_HX8357 is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_GENERIC=y
-# CONFIG_BACKLIGHT_ADP8860 is not set
-# CONFIG_BACKLIGHT_ADP8870 is not set
-# CONFIG_BACKLIGHT_LM3630 is not set
-# CONFIG_BACKLIGHT_LM3639 is not set
-# CONFIG_BACKLIGHT_LP855X is not set
-
-#
-# Console display driver support
-#
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
-CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-CONFIG_FONTS=y
-# CONFIG_FONT_8x8 is not set
-CONFIG_FONT_8x16=y
-# CONFIG_FONT_6x11 is not set
-# CONFIG_FONT_7x14 is not set
-# CONFIG_FONT_PEARL_8x8 is not set
-# CONFIG_FONT_ACORN_8x8 is not set
-# CONFIG_FONT_MINI_4x6 is not set
-# CONFIG_FONT_SUN8x16 is not set
-# CONFIG_FONT_SUN12x22 is not set
-# CONFIG_FONT_10x18 is not set
-CONFIG_FONT_AUTOSELECT=y
-CONFIG_LOGO=y
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
-CONFIG_LOGO_LINUX_CLUT224=y
-# CONFIG_SOUND is not set
-
-#
-# HID support
-#
-CONFIG_HID=y
-# CONFIG_HID_BATTERY_STRENGTH is not set
-# CONFIG_HIDRAW is not set
-# CONFIG_UHID is not set
-CONFIG_HID_GENERIC=y
-
-#
-# Special HID drivers
-#
-
-#
-# I2C HID support
-#
-# CONFIG_I2C_HID is not set
-CONFIG_USB_ARCH_HAS_OHCI=y
-# CONFIG_USB_ARCH_HAS_EHCI is not set
-# CONFIG_USB_ARCH_HAS_XHCI is not set
-# CONFIG_USB_SUPPORT is not set
-# CONFIG_MMC is not set
-# CONFIG_MEMSTICK is not set
-# CONFIG_NEW_LEDS is not set
-# CONFIG_ACCESSIBILITY is not set
-# CONFIG_EDAC is not set
-CONFIG_RTC_LIB=y
-# CONFIG_RTC_CLASS is not set
-# CONFIG_DMADEVICES is not set
-# CONFIG_AUXDISPLAY is not set
-# CONFIG_UIO is not set
-
-#
-# Virtio drivers
-#
-# CONFIG_VIRTIO_MMIO is not set
-
-#
-# Microsoft Hyper-V guest support
-#
-# CONFIG_STAGING is not set
-CONFIG_CLKDEV_LOOKUP=y
-
-#
-# Hardware Spinlock drivers
-#
-CONFIG_CLKSRC_MMIO=y
-# CONFIG_MAILBOX is not set
-CONFIG_IOMMU_SUPPORT=y
-
-#
-# Remoteproc drivers
-#
-# CONFIG_STE_MODEM_RPROC is not set
-
-#
-# Rpmsg drivers
-#
-# CONFIG_VIRT_DRIVERS is not set
-# CONFIG_PM_DEVFREQ is not set
-# CONFIG_EXTCON is not set
-# CONFIG_MEMORY is not set
-# CONFIG_IIO is not set
-# CONFIG_PWM is not set
-# CONFIG_IPACK_BUS is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=y
-# CONFIG_EXT2_FS_XATTR is not set
-# CONFIG_EXT2_FS_XIP is not set
-# CONFIG_EXT3_FS is not set
-# CONFIG_EXT4_FS is not set
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_XFS_FS is not set
-# CONFIG_BTRFS_FS is not set
-# CONFIG_NILFS2_FS is not set
-CONFIG_FS_POSIX_ACL=y
-CONFIG_EXPORTFS=y
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-# CONFIG_DNOTIFY is not set
-CONFIG_INOTIFY_USER=y
-# CONFIG_FANOTIFY is not set
-# CONFIG_QUOTA is not set
-# CONFIG_QUOTACTL is not set
-# CONFIG_AUTOFS4_FS is not set
-# CONFIG_FUSE_FS is not set
-CONFIG_GENERIC_ACL=y
-
-#
-# Caches
-#
-# CONFIG_FSCACHE is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-# CONFIG_ISO9660_FS is not set
-# CONFIG_UDF_FS is not set
-
-#
-# DOS/FAT/NT Filesystems
-#
-# CONFIG_MSDOS_FS is not set
-# CONFIG_VFAT_FS is not set
-# CONFIG_NTFS_FS is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_SYSCTL=y
-# CONFIG_PROC_PAGE_MONITOR is not set
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_TMPFS_XATTR=y
-# CONFIG_HUGETLB_PAGE is not set
-# CONFIG_CONFIGFS_FS is not set
-CONFIG_MISC_FILESYSTEMS=y
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_LOGFS is not set
-# CONFIG_CRAMFS is not set
-# CONFIG_SQUASHFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_OMFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_QNX6FS_FS is not set
-# CONFIG_ROMFS_FS is not set
-# CONFIG_PSTORE is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-# CONFIG_F2FS_FS is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-# CONFIG_NFS_FS is not set
-# CONFIG_NFSD is not set
-# CONFIG_CEPH_FS is not set
-# CONFIG_CIFS is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="iso8859-1"
-# CONFIG_NLS_CODEPAGE_437 is not set
-# CONFIG_NLS_CODEPAGE_737 is not set
-# CONFIG_NLS_CODEPAGE_775 is not set
-CONFIG_NLS_CODEPAGE_850=y
-# CONFIG_NLS_CODEPAGE_852 is not set
-# CONFIG_NLS_CODEPAGE_855 is not set
-# CONFIG_NLS_CODEPAGE_857 is not set
-# CONFIG_NLS_CODEPAGE_860 is not set
-# CONFIG_NLS_CODEPAGE_861 is not set
-# CONFIG_NLS_CODEPAGE_862 is not set
-# CONFIG_NLS_CODEPAGE_863 is not set
-# CONFIG_NLS_CODEPAGE_864 is not set
-# CONFIG_NLS_CODEPAGE_865 is not set
-# CONFIG_NLS_CODEPAGE_866 is not set
-# CONFIG_NLS_CODEPAGE_869 is not set
-# CONFIG_NLS_CODEPAGE_936 is not set
-# CONFIG_NLS_CODEPAGE_950 is not set
-# CONFIG_NLS_CODEPAGE_932 is not set
-# CONFIG_NLS_CODEPAGE_949 is not set
-# CONFIG_NLS_CODEPAGE_874 is not set
-# CONFIG_NLS_ISO8859_8 is not set
-# CONFIG_NLS_CODEPAGE_1250 is not set
-# CONFIG_NLS_CODEPAGE_1251 is not set
-# CONFIG_NLS_ASCII is not set
-CONFIG_NLS_ISO8859_1=y
-# CONFIG_NLS_ISO8859_2 is not set
-# CONFIG_NLS_ISO8859_3 is not set
-# CONFIG_NLS_ISO8859_4 is not set
-# CONFIG_NLS_ISO8859_5 is not set
-# CONFIG_NLS_ISO8859_6 is not set
-# CONFIG_NLS_ISO8859_7 is not set
-# CONFIG_NLS_ISO8859_9 is not set
-# CONFIG_NLS_ISO8859_13 is not set
-# CONFIG_NLS_ISO8859_14 is not set
-# CONFIG_NLS_ISO8859_15 is not set
-# CONFIG_NLS_KOI8_R is not set
-# CONFIG_NLS_KOI8_U is not set
-# CONFIG_NLS_MAC_ROMAN is not set
-# CONFIG_NLS_MAC_CELTIC is not set
-# CONFIG_NLS_MAC_CENTEURO is not set
-# CONFIG_NLS_MAC_CROATIAN is not set
-# CONFIG_NLS_MAC_CYRILLIC is not set
-# CONFIG_NLS_MAC_GAELIC is not set
-# CONFIG_NLS_MAC_GREEK is not set
-# CONFIG_NLS_MAC_ICELAND is not set
-# CONFIG_NLS_MAC_INUIT is not set
-# CONFIG_NLS_MAC_ROMANIAN is not set
-# CONFIG_NLS_MAC_TURKISH is not set
-# CONFIG_NLS_UTF8 is not set
-
-#
-# Kernel hacking
-#
-# CONFIG_PRINTK_TIME is not set
-CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
-# CONFIG_ENABLE_WARN_DEPRECATED is not set
-# CONFIG_ENABLE_MUST_CHECK is not set
-CONFIG_FRAME_WARN=2048
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_STRIP_ASM_SYMS is not set
-# CONFIG_READABLE_ASM is not set
-# CONFIG_UNUSED_SYMBOLS is not set
-# CONFIG_DEBUG_FS is not set
-# CONFIG_HEADERS_CHECK is not set
-# CONFIG_DEBUG_SECTION_MISMATCH is not set
-CONFIG_DEBUG_KERNEL=y
-# CONFIG_DEBUG_SHIRQ is not set
-# CONFIG_LOCKUP_DETECTOR is not set
-# CONFIG_PANIC_ON_OOPS is not set
-CONFIG_PANIC_ON_OOPS_VALUE=0
-# CONFIG_DETECT_HUNG_TASK is not set
-CONFIG_SCHED_DEBUG=y
-# CONFIG_SCHEDSTATS is not set
-# CONFIG_TIMER_STATS is not set
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_DEBUG_SLAB is not set
-CONFIG_HAVE_DEBUG_KMEMLEAK=y
-# CONFIG_DEBUG_KMEMLEAK is not set
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_RT_MUTEX_TESTER is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_ATOMIC_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_KOBJECT is not set
-# CONFIG_DEBUG_INFO is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_WRITECOUNT is not set
-# CONFIG_DEBUG_MEMORY_INIT is not set
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_DEBUG_CREDENTIALS is not set
-CONFIG_FRAME_POINTER=y
-# CONFIG_BOOT_PRINTK_DELAY is not set
-
-#
-# RCU Debugging
-#
-# CONFIG_SPARSE_RCU_POINTER is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_RCU_TRACE is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-# CONFIG_NOTIFIER_ERROR_INJECTION is not set
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_LATENCYTOP is not set
-# CONFIG_DEBUG_PAGEALLOC is not set
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_TRACING_SUPPORT=y
-# CONFIG_FTRACE is not set
-# CONFIG_RBTREE_TEST is not set
-# CONFIG_INTERVAL_TREE_TEST is not set
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_ATOMIC64_SELFTEST is not set
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
-# CONFIG_TEST_KSTRTOX is not set
-# CONFIG_STRICT_DEVMEM is not set
-# CONFIG_ARM_UNWIND is not set
-# CONFIG_DEBUG_USER is not set
-# CONFIG_DEBUG_LL is not set
-CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY_DMESG_RESTRICT is not set
-# CONFIG_SECURITY is not set
-# CONFIG_SECURITYFS is not set
-CONFIG_DEFAULT_SECURITY_DAC=y
-CONFIG_DEFAULT_SECURITY=""
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-# CONFIG_CRYPTO_MANAGER is not set
-# CONFIG_CRYPTO_MANAGER2 is not set
-# CONFIG_CRYPTO_USER is not set
-# CONFIG_CRYPTO_GF128MUL is not set
-# CONFIG_CRYPTO_NULL is not set
-# CONFIG_CRYPTO_CRYPTD is not set
-# CONFIG_CRYPTO_AUTHENC is not set
-# CONFIG_CRYPTO_TEST is not set
-
-#
-# Authenticated Encryption with Associated Data
-#
-# CONFIG_CRYPTO_CCM is not set
-# CONFIG_CRYPTO_GCM is not set
-# CONFIG_CRYPTO_SEQIV is not set
-
-#
-# Block modes
-#
-# CONFIG_CRYPTO_CBC is not set
-# CONFIG_CRYPTO_CTR is not set
-# CONFIG_CRYPTO_CTS is not set
-# CONFIG_CRYPTO_ECB is not set
-# CONFIG_CRYPTO_LRW is not set
-# CONFIG_CRYPTO_PCBC is not set
-# CONFIG_CRYPTO_XTS is not set
-
-#
-# Hash modes
-#
-# CONFIG_CRYPTO_HMAC is not set
-# CONFIG_CRYPTO_XCBC is not set
-# CONFIG_CRYPTO_VMAC is not set
-
-#
-# Digest
-#
-# CONFIG_CRYPTO_CRC32C is not set
-# CONFIG_CRYPTO_CRC32 is not set
-# CONFIG_CRYPTO_GHASH is not set
-# CONFIG_CRYPTO_MD4 is not set
-# CONFIG_CRYPTO_MD5 is not set
-# CONFIG_CRYPTO_MICHAEL_MIC is not set
-# CONFIG_CRYPTO_RMD128 is not set
-# CONFIG_CRYPTO_RMD160 is not set
-# CONFIG_CRYPTO_RMD256 is not set
-# CONFIG_CRYPTO_RMD320 is not set
-# CONFIG_CRYPTO_SHA1 is not set
-# CONFIG_CRYPTO_SHA1_ARM is not set
-# CONFIG_CRYPTO_SHA256 is not set
-# CONFIG_CRYPTO_SHA512 is not set
-# CONFIG_CRYPTO_TGR192 is not set
-# CONFIG_CRYPTO_WP512 is not set
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=y
-# CONFIG_CRYPTO_AES_ARM is not set
-# CONFIG_CRYPTO_ANUBIS is not set
-# CONFIG_CRYPTO_ARC4 is not set
-# CONFIG_CRYPTO_BLOWFISH is not set
-# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-# CONFIG_CRYPTO_DES is not set
-# CONFIG_CRYPTO_FCRYPT is not set
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_SALSA20 is not set
-# CONFIG_CRYPTO_SEED is not set
-# CONFIG_CRYPTO_SERPENT is not set
-# CONFIG_CRYPTO_TEA is not set
-# CONFIG_CRYPTO_TWOFISH is not set
-
-#
-# Compression
-#
-# CONFIG_CRYPTO_DEFLATE is not set
-# CONFIG_CRYPTO_ZLIB is not set
-# CONFIG_CRYPTO_LZO is not set
-
-#
-# Random Number Generation
-#
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-# CONFIG_CRYPTO_USER_API_HASH is not set
-# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
-# CONFIG_CRYPTO_HW is not set
-# CONFIG_BINARY_PRINTF is not set
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=y
-CONFIG_GENERIC_STRNCPY_FROM_USER=y
-CONFIG_GENERIC_STRNLEN_USER=y
-CONFIG_GENERIC_PCI_IOMAP=y
-CONFIG_GENERIC_IO=y
-# CONFIG_CRC_CCITT is not set
-CONFIG_CRC16=y
-# CONFIG_CRC_T10DIF is not set
-# CONFIG_CRC_ITU_T is not set
-CONFIG_CRC32=y
-# CONFIG_CRC32_SELFTEST is not set
-CONFIG_CRC32_SLICEBY8=y
-# CONFIG_CRC32_SLICEBY4 is not set
-# CONFIG_CRC32_SARWATE is not set
-# CONFIG_CRC32_BIT is not set
-# CONFIG_CRC7 is not set
-# CONFIG_LIBCRC32C is not set
-# CONFIG_CRC8 is not set
-CONFIG_XZ_DEC=y
-CONFIG_XZ_DEC_X86=y
-CONFIG_XZ_DEC_POWERPC=y
-CONFIG_XZ_DEC_IA64=y
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_ARMTHUMB=y
-CONFIG_XZ_DEC_SPARC=y
-CONFIG_XZ_DEC_BCJ=y
-# CONFIG_XZ_DEC_TEST is not set
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
-CONFIG_DQL=y
-CONFIG_NLATTR=y
-CONFIG_GENERIC_ATOMIC64=y
-CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
-CONFIG_AVERAGE=y
-# CONFIG_CORDIC is not set
-# CONFIG_DDR is not set
-# CONFIG_VIRTUALIZATION is not set

+ 53 - 0
target/arm/kernel/qemu-arm-spitz

@@ -0,0 +1,53 @@
+CONFIG_ARM=y
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_ARCH_PXA=y
+CONFIG_PXA_SHARPSL=y
+CONFIG_PXA_SHARPSL_DETECT_MACH_ID=y
+CONFIG_MACH_SPITZ=y
+CONFIG_PXA27x=y
+CONFIG_PXA_SHARP_Cxx00=y
+CONFIG_SHARPSL_PM=y
+CONFIG_SHARPSL_PM_MAX1111=y
+CONFIG_PXA_SSP=y
+CONFIG_PLAT_PXA=y
+CONFIG_CPU_XSCALE=y
+CONFIG_IWMMXT=y
+CONFIG_XSCALE_PMU=y
+CONFIG_MULTI_IRQ_HANDLER=y
+CONFIG_SHARP_PARAM=y
+CONFIG_SHARP_SCOOP=y
+CONFIG_AEABI=y
+CONFIG_ATAGS=y
+CONFIG_ATAGS_PROC=y
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_PXA=y
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_PXA2XX_DMA=y
+CONFIG_SPI_PXA2XX=y
+CONFIG_GPIO_DEVRES=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_PXA=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_PDA_POWER=y
+CONFIG_APM_POWER=y
+CONFIG_SENSORS_MAX1111=y
+CONFIG_FB=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_PXA=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=y
+CONFIG_LCD_CORGI=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=y
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+CONFIG_FONT_8x16=y
+CONFIG_FONT_AUTOSELECT=y
+CONFIG_HID=y
+CONFIG_HID_GENERIC=y

+ 0 - 3
target/arm/kernel/qemu-arm-versatile → target/arm/kernel/qemu-arm-versatilepb

@@ -14,7 +14,6 @@ CONFIG_PCI_SYSCALL=y
 CONFIG_AEABI=y
 CONFIG_AEABI=y
 CONFIG_USE_OF=y
 CONFIG_USE_OF=y
 CONFIG_ATAGS=y
 CONFIG_ATAGS=y
-CONFIG_VFP=y
 CONFIG_DTC=y
 CONFIG_DTC=y
 CONFIG_OF=y
 CONFIG_OF=y
 CONFIG_SCSI=y
 CONFIG_SCSI=y
@@ -36,5 +35,3 @@ CONFIG_NET_VENDOR_SMSC=y
 CONFIG_SMC91X=y
 CONFIG_SMC91X=y
 CONFIG_SERIAL_AMBA_PL011=y
 CONFIG_SERIAL_AMBA_PL011=y
 CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
 CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y

+ 28 - 0
target/arm/kernel/qemu-arm-vexpress-a9

@@ -0,0 +1,28 @@
+CONFIG_ARM=y
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_ARCH_MULTI_V7=y
+CONFIG_ARCH_VEXPRESS=y
+CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y
+CONFIG_ARCH_VEXPRESS_CA9X4=y
+CONFIG_ARCH_VEXPRESS_DCSCB=y
+CONFIG_ARCH_VEXPRESS_TC2_PM=y
+CONFIG_ARM_AMBA=y
+CONFIG_AEABI=y
+CONFIG_ATAGS=y
+CONFIG_VFP=y
+CONFIG_VFPv3=y
+CONFIG_NEON=y
+CONFIG_OF=y
+CONFIG_DTC=y
+CONFIG_NETDEVICES=y
+CONFIG_NET_CORE=y
+CONFIG_ETHERNET=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMSC911X=y
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_I2C=y
+CONFIG_I2C_VERSATILE=y
+CONFIG_SENSORS_VEXPRESS=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_VEXPRESS=y

+ 53 - 0
target/arm/kernel/sharp-zaurus

@@ -0,0 +1,53 @@
+CONFIG_ARM=y
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_ARCH_PXA=y
+CONFIG_PXA_SHARPSL=y
+CONFIG_PXA_SHARPSL_DETECT_MACH_ID=y
+CONFIG_MACH_SPITZ=y
+CONFIG_PXA27x=y
+CONFIG_PXA_SHARP_Cxx00=y
+CONFIG_SHARPSL_PM=y
+CONFIG_SHARPSL_PM_MAX1111=y
+CONFIG_PXA_SSP=y
+CONFIG_PLAT_PXA=y
+CONFIG_CPU_XSCALE=y
+CONFIG_IWMMXT=y
+CONFIG_XSCALE_PMU=y
+CONFIG_MULTI_IRQ_HANDLER=y
+CONFIG_SHARP_PARAM=y
+CONFIG_SHARP_SCOOP=y
+CONFIG_AEABI=y
+CONFIG_ATAGS=y
+CONFIG_ATAGS_PROC=y
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_PXA=y
+CONFIG_SPI=y
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_PXA2XX_DMA=y
+CONFIG_SPI_PXA2XX=y
+CONFIG_GPIO_DEVRES=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_PXA=y
+CONFIG_POWER_SUPPLY=y
+CONFIG_PDA_POWER=y
+CONFIG_APM_POWER=y
+CONFIG_SENSORS_MAX1111=y
+CONFIG_FB=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+CONFIG_FB_PXA=y
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=y
+CONFIG_LCD_CORGI=y
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_GENERIC=y
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_FONTS=y
+CONFIG_FONT_8x16=y
+CONFIG_FONT_AUTOSELECT=y
+CONFIG_HID=y
+CONFIG_HID_GENERIC=y

+ 0 - 1
target/arm/sys-available/acmesystems-foxg20

@@ -9,7 +9,6 @@ config ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
 	select ADK_KERNEL_MACH_ACMENETUSFOXG20
 	select ADK_KERNEL_MACH_ACMENETUSFOXG20
 	select ADK_KERNEL_AEABI
 	select ADK_KERNEL_AEABI
 	select ADK_EABI
 	select ADK_EABI
-	select ADK_TARGET_NO_FPU
 	select ADK_TARGET_WITH_WATCHDOG
 	select ADK_TARGET_WITH_WATCHDOG
 	select ADK_TARGET_WITH_MMC
 	select ADK_TARGET_WITH_MMC
 	select ADK_TARGET_WITH_RTC
 	select ADK_TARGET_WITH_RTC

+ 2 - 1
target/arm/sys-available/cubox-i

@@ -2,8 +2,9 @@ config ADK_TARGET_SYSTEM_CUBOX_I
 	bool "Cubox-i"
 	bool "Cubox-i"
 	select ADK_arm
 	select ADK_arm
 	select ADK_little
 	select ADK_little
+	select ADK_hard_float
 	select ADK_cubox_i
 	select ADK_cubox_i
-	select ADK_CPU_CUBOX_I
+	select ADK_CPU_CORTEX_A9
 	select ADK_EABIHF
 	select ADK_EABIHF
 	select ADK_TARGET_WITH_MMC
 	select ADK_TARGET_WITH_MMC
 	select ADK_TARGET_WITH_VGA
 	select ADK_TARGET_WITH_VGA

+ 2 - 3
target/arm/sys-available/keyasic-ka2000

@@ -2,11 +2,10 @@ config ADK_TARGET_SYSTEM_KEYASIC_KA2000
 	bool "KeyASIC KA2000 (f.e. Transcend WifiSD)"
 	bool "KeyASIC KA2000 (f.e. Transcend WifiSD)"
 	select ADK_arm
 	select ADK_arm
 	select ADK_little
 	select ADK_little
+	select ADK_soft_float
 	select ADK_keyasic_ka2000
 	select ADK_keyasic_ka2000
-	select ADK_KERNEL_AEABI
 	select ADK_EABI
 	select ADK_EABI
-	select ADK_CPU_ARMV5
-	select ADK_TARGET_NO_FPU
+	select ADK_CPU_ARM926EJ_S
 	select ADK_TOOLCHAIN
 	select ADK_TOOLCHAIN
 	select ADK_STATIC if ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_EGLIBC || ADK_TARGET_LIB_MUSL
 	select ADK_STATIC if ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_EGLIBC || ADK_TARGET_LIB_MUSL
 	select BUSYBOX_STATIC if ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_EGLIBC || ADK_TARGET_LIB_MUSL
 	select BUSYBOX_STATIC if ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_EGLIBC || ADK_TARGET_LIB_MUSL

+ 0 - 2
target/arm/sys-available/qemu-arm

@@ -3,8 +3,6 @@ config ADK_TARGET_SYSTEM_QEMU_ARM
 	select ADK_arm
 	select ADK_arm
 	select ADK_qemu_arm
 	select ADK_qemu_arm
 	select ADK_little
 	select ADK_little
-	select ADK_EABI
-	select ADK_TARGET_NO_FPU
 	select ADK_HARDWARE_QEMU
 	select ADK_HARDWARE_QEMU
 	select ADK_TARGET_KERNEL_ZIMAGE
 	select ADK_TARGET_KERNEL_ZIMAGE
 	select ADK_USE_KERNEL_MINICONFIG
 	select ADK_USE_KERNEL_MINICONFIG

+ 2 - 1
target/arm/sys-available/raspberry-pi

@@ -2,9 +2,10 @@ config ADK_TARGET_SYSTEM_RASPBERRY_PI
 	bool "Raspberry PI"
 	bool "Raspberry PI"
 	select ADK_arm
 	select ADK_arm
 	select ADK_little
 	select ADK_little
+	select ADK_hard_float
 	select ADK_raspberry_pi
 	select ADK_raspberry_pi
+	select ADK_CPU_ARM1176JZF_S
 	select ADK_EABIHF
 	select ADK_EABIHF
-	select ADK_CPU_RASPBERRY_PI
 	select ADK_TARGET_WITH_MMC
 	select ADK_TARGET_WITH_MMC
 	select ADK_TARGET_WITH_VGA
 	select ADK_TARGET_WITH_VGA
 	select ADK_TARGET_WITH_USB
 	select ADK_TARGET_WITH_USB

+ 1 - 6
target/arm/sys-available/sharp-zaurus

@@ -6,17 +6,12 @@ config ADK_TARGET_SYSTEM_SHARP_ZAURUS
 	select ADK_EABI
 	select ADK_EABI
 	select ADK_CPU_XSCALE
 	select ADK_CPU_XSCALE
 	select ADK_TARGET_CPU_WITH_IWMMXT
 	select ADK_TARGET_CPU_WITH_IWMMXT
-	select ADK_TARGET_NO_FPU
 	select ADK_TARGET_WITH_VGA
 	select ADK_TARGET_WITH_VGA
 	select ADK_TARGET_WITH_PCMCIA
 	select ADK_TARGET_WITH_PCMCIA
 	select ADK_TARGET_WITH_INPUT
 	select ADK_TARGET_WITH_INPUT
 	select ADK_TARGET_WITH_SOUND
 	select ADK_TARGET_WITH_SOUND
 	select ADK_TARGET_WITH_TOUCHSCREEN
 	select ADK_TARGET_WITH_TOUCHSCREEN
-	select ADK_KERNEL_ARCH_PXA
-	select ADK_KERNEL_PXA_SHARPSL
-	select ADK_KERNEL_MACH_SPITZ
-	select ADK_KERNEL_PXA_SHARP_Cxx00
-	select ADK_KERNEL_SPI_PXA2XX
 	select ADK_TARGET_KERNEL_ZIMAGE
 	select ADK_TARGET_KERNEL_ZIMAGE
+	select ADK_USE_KERNEL_MINICONFIG
 	help
 	help
 	 Support for Sharp Zaurus CL3200 (Terrier)
 	 Support for Sharp Zaurus CL3200 (Terrier)

+ 0 - 1
target/arm/sys-available/toolchain-arm

@@ -5,7 +5,6 @@ config ADK_TARGET_SYSTEM_TOOLCHAIN_ARM
 	select ADK_little
 	select ADK_little
 	select ADK_TOOLCHAIN
 	select ADK_TOOLCHAIN
 	select ADK_EABI
 	select ADK_EABI
-	select ADK_TARGET_NO_FPU
 	select ADK_TARGET_PACKAGE_TGZ
 	select ADK_TARGET_PACKAGE_TGZ
 	help
 	help
 	  ARM toolchain (little endian).
 	  ARM toolchain (little endian).

+ 0 - 1
target/arm/sys-available/toolchain-armeb

@@ -5,7 +5,6 @@ config ADK_TARGET_SYSTEM_TOOLCHAIN_ARMEB
 	select ADK_big
 	select ADK_big
 	select ADK_TOOLCHAIN
 	select ADK_TOOLCHAIN
 	select ADK_EABI
 	select ADK_EABI
-	select ADK_TARGET_NO_FPU
 	select ADK_TARGET_PACKAGE_TGZ
 	select ADK_TARGET_PACKAGE_TGZ
 	help
 	help
 	  ARM toolchain (big endian).
 	  ARM toolchain (big endian).

+ 72 - 35
target/config/Config.in

@@ -31,6 +31,29 @@ config ADK_big
 config ADK_little
 config ADK_little
 	boolean
 	boolean
 
 
+config ADK_soft_float
+	boolean
+
+config ADK_hard_float
+	boolean
+
+config ADK_mode_arm
+	boolean
+
+config ADK_mode_thumb
+	boolean
+
+config ADK_TARGET_FLOAT
+	string
+	default "hard" if ADK_hard_float
+	default "soft" if ADK_soft_float
+
+config ADK_TARGET_ARM_MODE
+	string
+	default "arm" if ADK_mode_arm
+	default "thumb" if ADK_mode_thumb
+	default "arm"
+
 config ADK_TARGET_ENDIAN
 config ADK_TARGET_ENDIAN
 	string
 	string
 	default "little" if ADK_little
 	default "little" if ADK_little
@@ -161,7 +184,9 @@ config ADK_TARGET_KERNEL_MINICONFIG
 	string
 	string
 	default "qemu-microblaze-s3adsp1800" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800
 	default "qemu-microblaze-s3adsp1800" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800
 	default "qemu-microblaze-ml605" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605
 	default "qemu-microblaze-ml605" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605
-	default "qemu-arm-versatile" if ADK_TARGET_QEMU_ARM_MODEL_VERSATILE
+	default "qemu-arm-versatilepb" if ADK_TARGET_QEMU_ARM_MODEL_VERSATILEPB
+	default "qemu-arm-vexpress-a9" if ADK_TARGET_QEMU_ARM_MODEL_VEXPRESS_A9
+	default "qemu-arm-spitz" if ADK_TARGET_QEMU_ARM_MODEL_SPITZ
 	default "qemu-mips" if ADK_TARGET_SYSTEM_QEMU_MIPS
 	default "qemu-mips" if ADK_TARGET_SYSTEM_QEMU_MIPS
 	default "qemu-mipsel" if ADK_TARGET_SYSTEM_QEMU_MIPSEL
 	default "qemu-mipsel" if ADK_TARGET_SYSTEM_QEMU_MIPSEL
 	default "qemu-mips64" if ADK_TARGET_SYSTEM_QEMU_MIPS64
 	default "qemu-mips64" if ADK_TARGET_SYSTEM_QEMU_MIPS64
@@ -171,21 +196,9 @@ config ADK_TARGET_KERNEL_MINICONFIG
 	default "qemu-sparc" if ADK_TARGET_SYSTEM_QEMU_SPARC
 	default "qemu-sparc" if ADK_TARGET_SYSTEM_QEMU_SPARC
 	default "qemu-sparc64" if ADK_TARGET_SYSTEM_QEMU_SPARC64
 	default "qemu-sparc64" if ADK_TARGET_SYSTEM_QEMU_SPARC64
 	default "qemu-i686" if ADK_TARGET_SYSTEM_QEMU_I686
 	default "qemu-i686" if ADK_TARGET_SYSTEM_QEMU_I686
-	default "raspberry-pi" if ADK_TARGET_SYSTEM_RASPBERRY_PI
 	default "cubox-i" if ADK_TARGET_SYSTEM_CUBOX_I
 	default "cubox-i" if ADK_TARGET_SYSTEM_CUBOX_I
-
-choice
-prompt "Use ARM thumb mode"
-depends on ADK_TARGET_SYSTEM_CUBOX_I
-
-config ADK_LINUX_ARM_WITHOUT_THUMB
-	boolean "disabled"
-
-config ADK_LINUX_ARM_WITH_THUMB
-	boolean "enabled"
-	select ADK_KERNEL_THUMB2_KERNEL
-
-endchoice
+	default "raspberry-pi" if ADK_TARGET_SYSTEM_RASPBERRY_PI
+	default "sharp-zaurus" if ADK_TARGET_SYSTEM_SHARP_ZAURUS
 
 
 choice
 choice
 prompt "Qemu Emulation using VirtIO drivers"
 prompt "Qemu Emulation using VirtIO drivers"
@@ -221,19 +234,43 @@ choice
 prompt "Qemu ARM Emulation"
 prompt "Qemu ARM Emulation"
 depends on ADK_TARGET_SYSTEM_QEMU_ARM
 depends on ADK_TARGET_SYSTEM_QEMU_ARM
 
 
-config ADK_TARGET_QEMU_ARM_MODEL_VERSATILE
-	boolean "ARM Ltd. Versatile"
+config ADK_TARGET_QEMU_ARM_MODEL_VERSATILEPB
+	boolean "ARM Ltd. Versatile/PB"
+	select ADK_soft_float
+	select ADK_EABI
+	select ADK_CPU_ARM926EJ_S
+
+config ADK_TARGET_QEMU_ARM_MODEL_VEXPRESS_A9
+	boolean "ARM Ltd. Versatile Express for Cortex-A9"
+	select ADK_hard_float
+	select ADK_EABIHF
+	select ADK_CPU_CORTEX_A9
 
 
 config ADK_TARGET_QEMU_ARM_MODEL_SPITZ
 config ADK_TARGET_QEMU_ARM_MODEL_SPITZ
 	boolean "Xscale PXA270 Spitz PDA"
 	boolean "Xscale PXA270 Spitz PDA"
-	select ADK_KERNEL_ARCH_PXA
-	select ADK_KERNEL_PXA_SHARPSL
-	select ADK_KERNEL_MACH_SPITZ
-	select ADK_KERNEL_SPI_PXA2XX
+	select ADK_soft_float
+	select ADK_EABI
+	select ADK_CPU_XSCALE
 	select ADK_TARGET_WITH_VGA
 	select ADK_TARGET_WITH_VGA
 
 
 endchoice
 endchoice
 
 
+choice
+prompt "Use ARM thumb mode"
+depends on ADK_CPU_CORTEX_A9
+
+config ADK_LINUX_ARM_WITHOUT_THUMB
+	boolean "disabled"
+	select ADK_mode_arm
+
+config ADK_LINUX_ARM_WITH_THUMB
+	boolean "enabled"
+	select ADK_mode_thumb
+	select ADK_KERNEL_THUMB2_KERNEL
+
+endchoice
+
+
 choice 
 choice 
 prompt "Broadcom BCM47xx Model"
 prompt "Broadcom BCM47xx Model"
 depends on ADK_TARGET_SYSTEM_BROADCOM_BCM47XX
 depends on ADK_TARGET_SYSTEM_BROADCOM_BCM47XX
@@ -336,9 +373,6 @@ config ADK_TARGET_KERNEL_MAY_64BIT
 config ADK_TOOLCHAIN_ONLY
 config ADK_TOOLCHAIN_ONLY
 	boolean
 	boolean
 
 
-config ADK_TARGET_NO_FPU
-	boolean
-
 config ADK_EABI
 config ADK_EABI
 	boolean
 	boolean
 
 
@@ -450,9 +484,6 @@ config ADK_CPU_AMDFAM10
 config ADK_CPU_LOONGSON2F
 config ADK_CPU_LOONGSON2F
 	boolean
 	boolean
 
 
-config ADK_CPU_ARMV5
-	boolean
-
 config ADK_CPU_XSCALE
 config ADK_CPU_XSCALE
 	boolean
 	boolean
 
 
@@ -468,10 +499,13 @@ config ADK_CPU_MIPS64
 config ADK_CPU_MICROBLAZE
 config ADK_CPU_MICROBLAZE
 	boolean
 	boolean
 
 
-config ADK_CPU_RASPBERRY_PI
+config ADK_CPU_ARM926EJ_S
+	boolean
+
+config ADK_CPU_ARM1176JZF_S
 	boolean
 	boolean
 
 
-config ADK_CPU_CUBOX_I
+config ADK_CPU_CORTEX_A9
 	boolean
 	boolean
 
 
 config ADK_TARGET_CPU_ARCH
 config ADK_TARGET_CPU_ARCH
@@ -535,10 +569,13 @@ config ADK_TARGET_CFLAGS
 	default "-march=loongson2f -Wa,-mfix-loongson2f-nop" if ADK_CPU_LOONGSON2F
 	default "-march=loongson2f -Wa,-mfix-loongson2f-nop" if ADK_CPU_LOONGSON2F
 	default "-march=mips32" if ADK_CPU_MIPS32
 	default "-march=mips32" if ADK_CPU_MIPS32
 	default "-march=mips64" if ADK_CPU_MIPS64
 	default "-march=mips64" if ADK_CPU_MIPS64
-	default "-march=armv5te -mtune=arm926ej-s" if ADK_CPU_ARMV5
 	default "-march=armv5te -mtune=iwmmxt" if ADK_CPU_XSCALE
 	default "-march=armv5te -mtune=iwmmxt" if ADK_CPU_XSCALE
-	default "-march=armv6 -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard" if ADK_CPU_RASPBERRY_PI
-	default "-march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=hard" if ADK_CPU_CUBOX_I
+	default "-march=armv5te -mtune=arm926ej-s -mfloat-abi=soft" if ADK_CPU_ARM926EJ_S && ADK_soft_float
+	default "-march=armv5te -mtune=arm926ej-s -mfloat-abi=hard" if ADK_CPU_ARM926EJ_S && ADK_hard_float
+	default "-march=armv6 -mtune=arm1176jzf-s -mfloat-abi=soft" if ADK_CPU_ARM1176JZF_S && ADK_soft_float
+	default "-march=armv6 -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard" if ADK_CPU_ARM1176JZF_S && ADK_hard_float
+	default "-march=armv7-a -mtune=cortex-a9 -mfloat-abi=soft" if ADK_CPU_CORTEX_A9 && ADK_soft_float
+	default "-march=armv7-a -mtune=cortex-a9 -mfpu=neon -mfloat-abi=hard" if ADK_CPU_CORTEX_A9 && ADK_hard_float
 
 
 config ADK_TARGET_CMDLINE
 config ADK_TARGET_CMDLINE
 	string
 	string
@@ -558,7 +595,8 @@ config ADK_TARGET_CMDLINE
 	default "console=ttyS0,115200" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605
 	default "console=ttyS0,115200" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_ML605
 	default "console=ttyS0,115200 console=tty0" if ADK_TARGET_SYSTEM_VBOX_I686
 	default "console=ttyS0,115200 console=tty0" if ADK_TARGET_SYSTEM_VBOX_I686
 	default "console=ttyS0,115200 console=tty0" if ADK_TARGET_QEMU_ARM_MODEL_SPITZ
 	default "console=ttyS0,115200 console=tty0" if ADK_TARGET_QEMU_ARM_MODEL_SPITZ
-	default "console=ttyAMA0 console=tty0" if ADK_TARGET_QEMU_ARM_MODEL_VERSATILE
+	default "console=ttyAMA0 console=tty0" if ADK_TARGET_QEMU_ARM_MODEL_VERSATILEPB
+	default "console=ttyAMA0 console=tty0" if ADK_TARGET_QEMU_ARM_MODEL_VEXPRESS_A9
 	default "console=ttyS0,115200 console=tty0 fbcon=rotate:1" if ADK_TARGET_SYSTEM_SHARP_ZAURUS
 	default "console=ttyS0,115200 console=tty0 fbcon=rotate:1" if ADK_TARGET_SYSTEM_SHARP_ZAURUS
 	default "console=ttySC1 console=tty0" if ADK_TARGET_SYSTEM_QEMU_SH
 	default "console=ttySC1 console=tty0" if ADK_TARGET_SYSTEM_QEMU_SH
 	default "console=ttyS0" if ADK_TARGET_SYSTEM_ARANYM_M68K
 	default "console=ttyS0" if ADK_TARGET_SYSTEM_ARANYM_M68K
@@ -692,7 +730,7 @@ config ADK_TARGET_ROOTFS_INITRAMFS
 	bool "initramfs filesystem"
 	bool "initramfs filesystem"
 	depends on \
 	depends on \
 		ADK_HARDWARE_QEMU || \
 		ADK_HARDWARE_QEMU || \
-		ADK_TARGET_SYSTEM_ARANYM_M68K || \
+		ADK_LINUX_M68K || \
 		ADK_LINUX_ARM || \
 		ADK_LINUX_ARM || \
 		ADK_LINUX_MICROBLAZE || \
 		ADK_LINUX_MICROBLAZE || \
 		ADK_LINUX_MIPS || \
 		ADK_LINUX_MIPS || \
@@ -907,5 +945,4 @@ config ADK_TARGET_PACKAGE_TGZ
 	  directory. There will be no package manager installed onto the target.
 	  directory. There will be no package manager installed onto the target.
 	  
 	  
 endchoice
 endchoice
-
 source "target/config/Config.in.tools"
 source "target/config/Config.in.tools"

+ 21 - 1
target/config/Config.in.runtime

@@ -204,10 +204,30 @@ config SIMPLE_NETWORK_CONFIG_ETH0_BC
 
 
 endmenu
 endmenu
 
 
+menu "wlan0 Configuration"
+depends on ADK_SIMPLE_NETWORK_CONFIG && \
+	ADK_TARGET_SYSTEM_LEMOTE_YEELONG || \
+	ADK_TARGET_SYSTEM_RASPBERRY_PI || \
+	ADK_TARGET_SYSTEM_IBM_X40
 
 
+choice
+	prompt "Type"
+	default SIMPLE_NETWORK_CONFIG_WLAN0_TYPE_NONE
+
+config SIMPLE_NETWORK_CONFIG_WLAN0_TYPE_DHCP
+	bool "DHCP"
+
+config SIMPLE_NETWORK_CONFIG_WLAN0_TYPE_STATIC
+	bool "static IP configuration"
+
+endchoice
+endmenu
 
 
 menu "eth1 Configuration"
 menu "eth1 Configuration"
-depends on ADK_SIMPLE_NETWORK_CONFIG
+depends on ADK_SIMPLE_NETWORK_CONFIG && \
+	!ADK_TARGET_SYSTEM_LEMOTE_YEELONG && \
+	!ADK_TARGET_SYSTEM_RASPBERRY_PI && \
+	!ADK_TARGET_SYSTEM_IBM_X40
 
 
 choice
 choice
 	prompt "Type"
 	prompt "Type"

+ 0 - 2
target/linux/Config.in

@@ -1,4 +1,3 @@
-source target/linux/config/Config.in.systems
 source target/linux/config/Config.in.cpu
 source target/linux/config/Config.in.cpu
 source target/linux/config/Config.in.block
 source target/linux/config/Config.in.block
 source target/linux/config/Config.in.flash
 source target/linux/config/Config.in.flash
@@ -14,7 +13,6 @@ source target/linux/config/Config.in.audio
 source target/linux/config/Config.in.video
 source target/linux/config/Config.in.video
 source target/linux/config/Config.in.crypto
 source target/linux/config/Config.in.crypto
 source target/linux/config/Config.in.bluetooth
 source target/linux/config/Config.in.bluetooth
-#source target/linux/config/Config.in.isdn
 source target/linux/config/Config.in.watchdog
 source target/linux/config/Config.in.watchdog
 source target/linux/config/Config.in.leds
 source target/linux/config/Config.in.leds
 source target/linux/config/Config.in.misc
 source target/linux/config/Config.in.misc

+ 0 - 5
target/linux/config/Config.in.cpu

@@ -33,9 +33,6 @@ config ADK_KERNEL_USE_GENERIC_SMP_HELPERS
 	default y if ADK_TARGET_CPU_WITH_HT
 	default y if ADK_TARGET_CPU_WITH_HT
 	default n
 	default n
 
 
-config ADK_KERNEL_VFP
-	boolean
-
 menu "CPU support"
 menu "CPU support"
 
 
 config ADK_KERNEL_CPU_FREQ
 config ADK_KERNEL_CPU_FREQ
@@ -93,6 +90,4 @@ config ADK_KERNEL_CPU_FREQ_DEFAULT_GOV_USERSPACE
 	select ADK_KERNEL_CPU_FREQ_GOV_USERSPACE
 	select ADK_KERNEL_CPU_FREQ_GOV_USERSPACE
 	
 	
 endchoice
 endchoice
-
 endmenu
 endmenu
-

+ 18 - 0
target/linux/config/Config.in.kernel

@@ -104,3 +104,21 @@ config ADK_KERNEL_PREEMPT
 
 
 config ADK_KERNEL_THUMB2_KERNEL
 config ADK_KERNEL_THUMB2_KERNEL
 	boolean
 	boolean
+
+# page size
+config ADK_KERNEL_PAGE_SIZE_4KB
+	boolean
+
+config ADK_KERNEL_PAGE_SIZE_16KB
+	boolean
+
+# ABI
+config ADK_KERNEL_AEABI
+	boolean
+
+# endianess
+config ADK_KERNEL_CPU_BIG_ENDIAN
+	boolean
+
+config ADK_KERNEL_CPU_LITTLE_ENDIAN
+	boolean

+ 0 - 10
target/linux/config/Config.in.netdevice

@@ -28,16 +28,6 @@ config ADK_KERNEL_VIA_RHINE_MMIO
 config ADK_KERNEL_ATH_CARDS
 config ADK_KERNEL_ATH_CARDS
 	boolean
 	boolean
 
 
-config ADK_KERNEL_SMC91X
-	boolean
-	select ADK_KERNEL_NETDEVICES
-	select ADK_KERNEL_NET_ETHERNET
-	select ADK_KERNEL_NET_PCI
-	select ADK_KERNEL_MII
-	default y if ADK_TARGET_QEMU_ARM_MODEL_VERSATILE
-	default n
-	help
-
 config ADK_KERNEL_CPMAC
 config ADK_KERNEL_CPMAC
 	boolean
 	boolean
 	select ADK_KERNEL_NETDEVICES
 	select ADK_KERNEL_NETDEVICES

+ 2 - 2
target/linux/config/Config.in.netfilter.ip4

@@ -36,7 +36,7 @@ config ADK_KPACKAGE_KMOD_IP_NF_FILTER
 
 
 config ADK_KPACKAGE_KMOD_FULL_NAT
 config ADK_KPACKAGE_KMOD_FULL_NAT
 	tristate "Meta package for Full NAT"
 	tristate "Meta package for Full NAT"
-	select ADK_KPACKAGE_KMOD_NF_NAT if ADK_KERNEL_VERSION_3_4_71
+	select ADK_KPACKAGE_KMOD_NF_NAT if ADK_KERNEL_VERSION_3_4_82
 	select ADK_KPACKAGE_KMOD_NF_NAT_IPV4 if ADK_KERNEL_VERSION_3_11_10
 	select ADK_KPACKAGE_KMOD_NF_NAT_IPV4 if ADK_KERNEL_VERSION_3_11_10
 	select ADK_KPACKAGE_KMOD_NF_NAT_IPV4 if ADK_KERNEL_VERSION_3_12_11
 	select ADK_KPACKAGE_KMOD_NF_NAT_IPV4 if ADK_KERNEL_VERSION_3_12_11
 	select ADK_KPACKAGE_KMOD_NF_NAT_IPV4 if ADK_KERNEL_VERSION_3_13_5
 	select ADK_KPACKAGE_KMOD_NF_NAT_IPV4 if ADK_KERNEL_VERSION_3_13_5
@@ -44,7 +44,7 @@ config ADK_KPACKAGE_KMOD_FULL_NAT
 config ADK_KPACKAGE_KMOD_NF_NAT
 config ADK_KPACKAGE_KMOD_NF_NAT
 	tristate 'Full NAT'
 	tristate 'Full NAT'
 	depends on ADK_KPACKAGE_KMOD_IP_NF_IPTABLES
 	depends on ADK_KPACKAGE_KMOD_IP_NF_IPTABLES
-	depends on ADK_KERNEL_VERSION_3_4_71
+	depends on ADK_KERNEL_VERSION_3_4_82
 	help
 	help
 	  The Full NAT option allows masquerading, port forwarding and other
 	  The Full NAT option allows masquerading, port forwarding and other
 	  forms of full Network Address Port Translation.  It is controlled by
 	  forms of full Network Address Port Translation.  It is controlled by

+ 0 - 8
target/linux/config/Config.in.serial

@@ -7,11 +7,3 @@ config ADK_KERNEL_SERIAL_PXA_CONSOLE
 	boolean
 	boolean
 	default y if ADK_TARGET_QEMU_ARM_MODEL_SPITZ
 	default y if ADK_TARGET_QEMU_ARM_MODEL_SPITZ
 	default y if ADK_TARGET_SYSTEM_SHARP_ZAURUS
 	default y if ADK_TARGET_SYSTEM_SHARP_ZAURUS
-
-config ADK_KERNEL_SERIAL_AMBA_PL011
-	boolean
-	default y if ADK_TARGET_QEMU_ARM_MODEL_VERSATILE
-
-config ADK_KERNEL_SERIAL_AMBA_PL011_CONSOLE
-	boolean
-	default y if ADK_TARGET_QEMU_ARM_MODEL_VERSATILE

+ 2 - 59
target/linux/config/Config.in.systems

@@ -5,68 +5,11 @@ config ADK_KERNEL_PAGE_SIZE_4KB
 config ADK_KERNEL_PAGE_SIZE_16KB
 config ADK_KERNEL_PAGE_SIZE_16KB
 	boolean
 	boolean
 
 
-# mips systems
-config ADK_KERNEL_ATHEROS_AR231X
-	boolean
-
-config ADK_KERNEL_MIKROTIK_RB532
-	boolean
-
-config ADK_KERNEL_AR7
-	boolean
-
-config ADK_KERNEL_BCM47XX
-	select ADK_KERNEL_BCM47XX_SSB
-	boolean
-
-config ADK_KERNEL_ATHEROS_AR71XX
-	boolean
-
-config ADK_KERNEL_AR71XX_MACH_RB4XX
-	boolean
-
-# mips64 systems
-config ADK_KERNEL_MACH_LOONGSON
-	boolean
-
-config ADK_KERNEL_LEMOTE_MACH2F
-	boolean
-
-# arm systems
-config ADK_KERNEL_ARCH_VERSATILE
-	boolean
-
-config ADK_KERNEL_PXA_SHARP_Cxx00
-	boolean
-
-config ADK_KERNEL_ARCH_PXA
-	boolean
-
-config ADK_KERNEL_PXA_SHARPSL
-	boolean
-
-config ADK_KERNEL_MACH_SPITZ
-	boolean
-
-config ADK_KERNEL_ARCH_AT91
-	boolean
-
-config ADK_KERNEL_ARCH_AT91SAM9G20
-	boolean
-
-config ADK_KERNEL_ARCH_AT91SAM9260
-	boolean
-
-config ADK_KERNEL_MACH_ACMENETUSFOXG20
-	boolean
-
-config ADK_KERNEL_BCM47XX_SSB
-	boolean
-
-# endianesss and ABI
+# ABI
 config ADK_KERNEL_AEABI
 config ADK_KERNEL_AEABI
 	boolean
 	boolean
 
 
+# endianess
 config ADK_KERNEL_CPU_BIG_ENDIAN
 config ADK_KERNEL_CPU_BIG_ENDIAN
 	boolean
 	boolean
 
 

+ 0 - 0
target/linux/patches/3.4.71/bsd-compatibility.patch → target/linux/patches/3.4.82/bsd-compatibility.patch


+ 0 - 0
target/linux/patches/3.4.71/defaults.patch → target/linux/patches/3.4.82/defaults.patch


+ 0 - 0
target/linux/patches/3.4.71/gemalto.patch → target/linux/patches/3.4.82/gemalto.patch


+ 0 - 0
target/linux/patches/3.4.71/lemote-rfkill.patch → target/linux/patches/3.4.82/lemote-rfkill.patch


+ 0 - 0
target/linux/patches/3.4.71/module-alloc-size-check.patch → target/linux/patches/3.4.82/module-alloc-size-check.patch


+ 0 - 0
target/linux/patches/3.4.71/non-static.patch → target/linux/patches/3.4.82/non-static.patch


+ 0 - 0
target/linux/patches/3.4.71/sparc-include.patch → target/linux/patches/3.4.82/sparc-include.patch


+ 0 - 0
target/linux/patches/3.4.71/startup.patch → target/linux/patches/3.4.82/startup.patch


+ 0 - 0
target/linux/patches/3.4.71/usb-defaults-off.patch → target/linux/patches/3.4.82/usb-defaults-off.patch


+ 0 - 0
target/linux/patches/3.4.71/uuid.patch → target/linux/patches/3.4.82/uuid.patch


+ 0 - 0
target/linux/patches/3.4.71/vga-cons-default-off.patch → target/linux/patches/3.4.82/vga-cons-default-off.patch


+ 0 - 0
target/linux/patches/3.4.71/wlan-cf.patch → target/linux/patches/3.4.82/wlan-cf.patch


+ 0 - 0
target/linux/patches/3.4.71/zlib-inflate.patch → target/linux/patches/3.4.82/zlib-inflate.patch


+ 3 - 3
target/mips/Makefile

@@ -111,7 +111,7 @@ ifneq ($(ADK_HARDWARE_QEMU),)
 	@echo "Use following command to create a QEMU Image:"
 	@echo "Use following command to create a QEMU Image:"
 	@echo "./scripts/create.sh +g qemu-${CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
 	@echo "./scripts/create.sh +g qemu-${CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
 	@echo "Start qemu with following options:"
 	@echo "Start qemu with following options:"
-	@echo 'qemu-system-${CPU_ARCH} -nographic -M malta -device e1000,netdev=adk0 -netdev user,id=adk0,hostfwd=tcp::2222-:22 -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${CPU_ARCH}.img'
+	@echo 'qemu-system-${CPU_ARCH} -nographic -M malta -device e1000,netdev=adk0 -netdev user,id=adk0 -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${CPU_ARCH}.img'
 endif
 endif
 ifeq ($(ADK_TARGET_SYSTEM_LEMOTE_YEELONG),y)
 ifeq ($(ADK_TARGET_SYSTEM_LEMOTE_YEELONG),y)
 	@echo "Startup the netbook and type del to enter PMON:"
 	@echo "Startup the netbook and type del to enter PMON:"
@@ -127,7 +127,7 @@ imageinstall: $(FW_DIR)/$(INITRAMFS)
 	@echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
 	@echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
 ifneq ($(ADK_HARDWARE_QEMU),)
 ifneq ($(ADK_HARDWARE_QEMU),)
 	@echo "Start qemu with following command line:"
 	@echo "Start qemu with following command line:"
-	@echo 'qemu-system-${CPU_ARCH} -nographic -M malta -device e1000,netdev=adk0 -netdev user,id=adk0,hostfwd=tcp::2222-:22 -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
+	@echo 'qemu-system-${CPU_ARCH} -nographic -M malta -device e1000,netdev=adk0 -netdev user,id=adk0 -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
 endif
 endif
 endif
 endif
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
@@ -136,7 +136,7 @@ imageinstall: createinitramfs
 	@echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
 	@echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
 ifneq ($(ADK_HARDWARE_QEMU),)
 ifneq ($(ADK_HARDWARE_QEMU),)
 	@echo "Start qemu with following command line:"
 	@echo "Start qemu with following command line:"
-	@echo 'qemu-system-${CPU_ARCH} -nographic -M malta -device e1000,netdev=adk0 -netdev user,id=adk0,hostfwd=tcp::2222-:22 -kernel $(FW_DIR)/$(TARGET_KERNEL)'
+	@echo 'qemu-system-${CPU_ARCH} -nographic -M malta -device e1000,netdev=adk0 -netdev user,id=adk0 -kernel $(FW_DIR)/$(TARGET_KERNEL)'
 endif
 endif
 endif
 endif
 ifeq ($(ADK_TARGET_FS),usb)
 ifeq ($(ADK_TARGET_FS),usb)

+ 31 - 0
target/packages/pkg-available/console

@@ -0,0 +1,31 @@
+config ADK_PKG_CONSOLE
+	boolean "Choose packages for a desktop system without X"
+	default n
+	select ADK_PACKAGE_ALSA_UTILS
+	select ADK_PACKAGE_ALSA_UTILS_WITH_ALSAMIXER
+	select ADK_PACKAGE_SCREEN
+	select ADK_PACKAGE_SUDO
+	select ADK_PACKAGE_LINKS
+	select ADK_PACKAGE_ELINKS
+	select ADK_PACKAGE_LYNX
+	select ADK_PACKAGE_KEYCHAIN
+	select ADK_PACKAGE_OPENSSH_CLIENT
+	select ADK_PACKAGE_OPENSSH_CLIENT_UTILS
+	select ADK_PACKAGE_OPENSSH_SERVER
+	select ADK_PACKAGE_MKSH
+	select ADK_PACKAGE_MKSH_FULL
+	select ADK_PACKAGE_MUTT
+	select ADK_PACKAGE_IRSSI
+	select ADK_PACKAGE_IRSSI_WITH_SSL
+	select ADK_PACKAGE_IRSSI_WITH_IPV6
+	select ADK_PACKAGE_MPG123
+	select ADK_PACKAGE_MPLAYER
+	select ADK_PACKAGE_MPC
+	select ADK_PACKAGE_RTORRENT
+	select ADK_PACKAGE_WPA_SUPPLICANT
+	select ADK_PACKAGE_WPA_SUPPLICANT_WITH_OPENSSL
+	select ADK_PACKAGE_TCPDUMP
+	select ADK_PACKAGE_VIM
+	select ADK_PACKAGE_WIRELESS_TOOLS if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
+	select ADK_PACKAGE_IW if ADK_TARGET_SYSTEM_IBM_X40
+	select ADK_KPACKAGE_KMOD_USB_STORAGE

+ 1 - 8
target/packages/pkg-available/development

@@ -2,7 +2,6 @@ config ADK_PKG_DEVELOPMENT
 	bool "Compile a ADK development system"
 	bool "Compile a ADK development system"
 	default n
 	default n
 	select ADK_PACKAGE_BASH
 	select ADK_PACKAGE_BASH
-	select ADK_PACKAGE_BC
 	select ADK_PACKAGE_BINUTILS
 	select ADK_PACKAGE_BINUTILS
 	select ADK_PACKAGE_BZIP2
 	select ADK_PACKAGE_BZIP2
 	select ADK_PACKAGE_DIFFUTILS
 	select ADK_PACKAGE_DIFFUTILS
@@ -23,7 +22,6 @@ config ADK_PKG_DEVELOPMENT
 	select ADK_PACKAGE_MAKE
 	select ADK_PACKAGE_MAKE
 	select ADK_PACKAGE_MKFONTDIR
 	select ADK_PACKAGE_MKFONTDIR
 	select ADK_PACKAGE_PATCH
 	select ADK_PACKAGE_PATCH
-	select ADK_PACKAGE_PKGCONF
 	select ADK_PACKAGE_PERL
 	select ADK_PACKAGE_PERL
 	select BUSYBOX_STAT
 	select BUSYBOX_STAT
 	select BUSYBOX_FEATURE_STAT_FORMAT
 	select BUSYBOX_FEATURE_STAT_FORMAT
@@ -34,14 +32,9 @@ config ADK_PKG_DEVELOPMENT
 	select ADK_PACKAGE_ZLIB_DEV
 	select ADK_PACKAGE_ZLIB_DEV
 	select ADK_PACKAGE_XZ
 	select ADK_PACKAGE_XZ
 	select ADK_PACKAGE_WGET
 	select ADK_PACKAGE_WGET
-	# optional
+	select ADK_PACKAGE_WGET_WITH_OPENSSL
 	select ADK_PACKAGE_STRACE
 	select ADK_PACKAGE_STRACE
 	select ADK_PACKAGE_GDB
 	select ADK_PACKAGE_GDB
-	select ADK_PACKAGE_FLEX
-	select ADK_PACKAGE_BISON
-	select ADK_PACKAGE_AUTOCONF
-	select ADK_PACKAGE_AUTOMAKE
-	select ADK_PACKAGE_LIBTOOL
 	help
 	help
 	  After bootstrapping a Linux system you might want to
 	  After bootstrapping a Linux system you might want to
 	  switch to native builds with your target. 
 	  switch to native builds with your target. 

+ 2 - 22
target/packages/pkg-available/xorg

@@ -1,17 +1,7 @@
 config ADK_PKG_XORG
 config ADK_PKG_XORG
-	bool "Choose packages for graphical system with Xorg"
+	bool "Choose packages for graphical desktop system with Xorg"
 	default n
 	default n
-	select ADK_PACKAGE_ALSA_UTILS
-	select ADK_PACKAGE_ALSA_UTILS_WITH_ALSAMIXER
-	select ADK_PACKAGE_SCREEN
-	select ADK_PACKAGE_SUDO
-	select ADK_PACKAGE_LYNX
-	select ADK_PACKAGE_KEYCHAIN
-	select ADK_PACKAGE_OPENSSH_CLIENT
-	select ADK_PACKAGE_OPENSSH_CLIENT_UTILS
-	select ADK_PACKAGE_OPENSSH_SERVER
-	select ADK_PACKAGE_MKSH
-	select ADK_PACKAGE_MKSH_FULL
+	select ADK_PKG_CONSOLE
 	select ADK_PACKAGE_RXVT_UNICODE
 	select ADK_PACKAGE_RXVT_UNICODE
 	select ADK_PACKAGE_FIREFOX
 	select ADK_PACKAGE_FIREFOX
 	select ADK_PACKAGE_XTERM
 	select ADK_PACKAGE_XTERM
@@ -21,7 +11,6 @@ config ADK_PKG_XORG
 	select ADK_PACKAGE_XF86_INPUT_MOUSE
 	select ADK_PACKAGE_XF86_INPUT_MOUSE
 	select ADK_PACKAGE_XF86_VIDEO_INTEL if ADK_TARGET_SYSTEM_IBM_X40
 	select ADK_PACKAGE_XF86_VIDEO_INTEL if ADK_TARGET_SYSTEM_IBM_X40
 	select ADK_PACKAGE_XF86_VIDEO_SILICONMOTION if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
 	select ADK_PACKAGE_XF86_VIDEO_SILICONMOTION if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
-	select ADK_PACKAGE_XF86_VIDEO_INTEL if ADK_TARGET_SYSTEM_TAROX_PC
 	select ADK_PACKAGE_XF86_VIDEO_CIRRUS if ADK_TARGET_SYSTEM_QEMU_I686
 	select ADK_PACKAGE_XF86_VIDEO_CIRRUS if ADK_TARGET_SYSTEM_QEMU_I686
 	select ADK_PACKAGE_XF86_VIDEO_CIRRUS if ADK_TARGET_SYSTEM_QEMU_X86_64
 	select ADK_PACKAGE_XF86_VIDEO_CIRRUS if ADK_TARGET_SYSTEM_QEMU_X86_64
 	select ADK_PACKAGE_FONT_MISC_MISC
 	select ADK_PACKAGE_FONT_MISC_MISC
@@ -31,14 +20,5 @@ config ADK_PKG_XORG
 	select ADK_PACKAGE_FEH
 	select ADK_PACKAGE_FEH
 	select ADK_PACKAGE_XINIT
 	select ADK_PACKAGE_XINIT
 	select ADK_PACKAGE_EVILWM
 	select ADK_PACKAGE_EVILWM
-	select ADK_PACKAGE_IRSSI
-	select ADK_PACKAGE_IRSSI_WITH_SSL
-	select ADK_PACKAGE_IRSSI_WITH_IPV6
 	select ADK_PACKAGE_DILLO
 	select ADK_PACKAGE_DILLO
-	select ADK_PACKAGE_MPLAYER
-	select ADK_PACKAGE_MPC
-	select ADK_PACKAGE_WPA_SUPPLICANT
-	select ADK_PACKAGE_WPA_SUPPLICANT_WITH_OPENSSL
 	select ADK_PACKAGE_XRDB
 	select ADK_PACKAGE_XRDB
-	select ADK_PACKAGE_VIM
-	select ADK_KPACKAGE_KMOD_USB_STORAGE

+ 3 - 0
target/ppc/kernel/qemu-ppc

@@ -30,6 +30,9 @@ CONFIG_SCSI=y
 CONFIG_SCSI_DMA=y
 CONFIG_SCSI_DMA=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_ATA=y
 CONFIG_ATA=y
+CONFIG_SATA_PMP=y
+CONFIG_ATA_SFF=y
+CONFIG_ATA_BMDMA=y
 CONFIG_PATA_MACIO=y
 CONFIG_PATA_MACIO=y
 CONFIG_MACINTOSH_DRIVERS=y
 CONFIG_MACINTOSH_DRIVERS=y
 CONFIG_ADB=y
 CONFIG_ADB=y

+ 3 - 3
target/tools/mtd-utils/Makefile

@@ -4,9 +4,9 @@
 include $(TOPDIR)/rules.mk
 include $(TOPDIR)/rules.mk
 
 
 PKG_NAME:=		mtd-utils
 PKG_NAME:=		mtd-utils
-PKG_VERSION:=		1.5
+PKG_VERSION:=		1.5.0
 PKG_RELEASE:=		1
 PKG_RELEASE:=		1
-PKG_MD5SUM:=		fbc1e3560a2c941ed2c94a73ae74348c
+PKG_MD5SUM:=		a4df1ad29684be79b0fa699bdae01faf
 PKG_SITES:=		http://openadk.org/distfiles/
 PKG_SITES:=		http://openadk.org/distfiles/
 
 
 include ../rules.mk
 include ../rules.mk
@@ -14,7 +14,7 @@ include ../rules.mk
 all: ${STAGING_HOST_DIR}/bin/mkfs.jffs2
 all: ${STAGING_HOST_DIR}/bin/mkfs.jffs2
 
 
 $(WRKBUILD)/.compiled: ${WRKDIST}/.prepared
 $(WRKBUILD)/.compiled: ${WRKDIST}/.prepared
-	${MAKE} -C ${WRKBUILD} CC='${CC_FOR_BUILD}' CPPFLAGS='-DWITHOUT_XATTR=1 -D_GNU_SOURCE -I./include'
+	${MAKE} -C ${WRKBUILD} CC='${CC_FOR_BUILD}' CPPFLAGS='-DWITHOUT_XATTR=1 -I./include'
 	touch $@
 	touch $@
 
 
 ${STAGING_HOST_DIR}/bin/mkfs.jffs2: $(WRKBUILD)/.compiled
 ${STAGING_HOST_DIR}/bin/mkfs.jffs2: $(WRKBUILD)/.compiled

+ 23 - 15
target/tools/mtd-utils/patches/lzo.patch

@@ -1,6 +1,6 @@
-diff -Nur mtd-utils-1.5.orig/compr.c mtd-utils-1.5/compr.c
---- mtd-utils-1.5.orig/compr.c	2013-12-24 10:42:36.000000000 +0100
-+++ mtd-utils-1.5/compr.c	2013-12-25 22:18:17.000000000 +0100
+diff -Nur mtd-utils-1.5.0.orig/compr.c mtd-utils-1.5.0/compr.c
+--- mtd-utils-1.5.0.orig/compr.c	2012-05-07 09:19:39.000000000 +0200
++++ mtd-utils-1.5.0/compr.c	2014-02-25 21:05:20.000000000 +0100
 @@ -517,9 +517,6 @@
 @@ -517,9 +517,6 @@
  #ifdef CONFIG_JFFS2_RTIME
  #ifdef CONFIG_JFFS2_RTIME
  	jffs2_rtime_init();
  	jffs2_rtime_init();
@@ -20,16 +20,26 @@ diff -Nur mtd-utils-1.5.orig/compr.c mtd-utils-1.5/compr.c
 -#endif
 -#endif
  	return 0;
  	return 0;
  }
  }
-diff -Nur mtd-utils-1.5.orig/Makefile mtd-utils-1.5/Makefile
---- mtd-utils-1.5.orig/Makefile	2013-12-24 10:42:36.000000000 +0100
-+++ mtd-utils-1.5/Makefile	2013-12-25 22:22:52.000000000 +0100
-@@ -26,18 +26,12 @@
- 	rfddump rfdformat \
- 	serve_image recv_image \
- 	sumtool jffs2reader
+diff -Nur mtd-utils-1.5.0.orig/Makefile mtd-utils-1.5.0/Makefile
+--- mtd-utils-1.5.0.orig/Makefile	2012-05-07 09:19:39.000000000 +0200
++++ mtd-utils-1.5.0/Makefile	2014-02-25 21:13:03.000000000 +0100
+@@ -16,27 +16,13 @@
+ 
+ TESTS = tests
+ 
+-MTD_BINS = \
+-	ftl_format flash_erase nanddump doc_loadbios \
+-	ftl_check mkfs.jffs2 flash_lock flash_unlock \
+-	flash_otp_info flash_otp_dump mtd_debug flashcp nandwrite nandtest \
+-	jffs2dump \
+-	nftldump nftl_format docfdisk \
+-	rfddump rfdformat \
+-	serve_image recv_image \
+-	sumtool jffs2reader
 -UBI_BINS = \
 -UBI_BINS = \
 -	ubiupdatevol ubimkvol ubirmvol ubicrc32 ubinfo ubiattach \
 -	ubiupdatevol ubimkvol ubirmvol ubicrc32 ubinfo ubiattach \
 -	ubidetach ubinize ubiformat ubirename mtdinfo ubirsvol
 -	ubidetach ubinize ubiformat ubirename mtdinfo ubirsvol
++MTD_BINS = mkfs.jffs2
  
  
  BINS = $(MTD_BINS)
  BINS = $(MTD_BINS)
 -BINS += mkfs.ubifs/mkfs.ubifs
 -BINS += mkfs.ubifs/mkfs.ubifs
@@ -42,7 +52,7 @@ diff -Nur mtd-utils-1.5.orig/Makefile mtd-utils-1.5/Makefile
  
  
  OBJDEPS = $(BUILDDIR)/include/version.h
  OBJDEPS = $(BUILDDIR)/include/version.h
  
  
-@@ -84,12 +78,12 @@
+@@ -83,12 +69,12 @@
  #
  #
  # Utils in top level
  # Utils in top level
  #
  #
@@ -60,18 +70,16 @@ diff -Nur mtd-utils-1.5.orig/Makefile mtd-utils-1.5/Makefile
  
  
  $(foreach v,$(MTD_BINS),$(eval $(call mkdep,,$(v))))
  $(foreach v,$(MTD_BINS),$(eval $(call mkdep,,$(v))))
  
  
-@@ -104,8 +98,8 @@
+@@ -103,7 +89,7 @@
  #
  #
  obj-mkfs.ubifs = crc16.o lpt.o compr.o devtable.o \
  obj-mkfs.ubifs = crc16.o lpt.o compr.o devtable.o \
  	hashtable/hashtable.o hashtable/hashtable_itr.o
  	hashtable/hashtable.o hashtable/hashtable_itr.o
--LDFLAGS_mkfs.ubifs = $(ZLIBLDFLAGS) $(LZOLDFLAGS) $(UUIDLDFLAGS)
 -LDLIBS_mkfs.ubifs = -lz -llzo2 -lm -luuid
 -LDLIBS_mkfs.ubifs = -lz -llzo2 -lm -luuid
-+LDFLAGS_mkfs.ubifs = $(ZLIBLDFLAGS) $(UUIDLDFLAGS)
 +LDLIBS_mkfs.ubifs = -lz -lm -luuid
 +LDLIBS_mkfs.ubifs = -lz -lm -luuid
  $(call mkdep,mkfs.ubifs/,mkfs.ubifs,,ubi-utils/libubi.a)
  $(call mkdep,mkfs.ubifs/,mkfs.ubifs,,ubi-utils/libubi.a)
  
  
  #
  #
-@@ -119,6 +113,3 @@
+@@ -117,6 +103,3 @@
  obj-mtdinfo   = libubigen.a
  obj-mtdinfo   = libubigen.a
  obj-ubinize   = libubigen.a libiniparser.a
  obj-ubinize   = libubigen.a libiniparser.a
  obj-ubiformat = libubigen.a libscan.a
  obj-ubiformat = libubigen.a libscan.a

+ 3 - 3
target/x86/Makefile

@@ -34,7 +34,7 @@ ifeq ($(ADK_HARDWARE_QEMU),y)
 	@echo "Use following command to create a QEMU Image:"
 	@echo "Use following command to create a QEMU Image:"
 	@echo "./scripts/create.sh qemu-${CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
 	@echo "./scripts/create.sh qemu-${CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
 	@echo "Start qemu with following command line:"
 	@echo "Start qemu with following command line:"
-	@echo 'qemu-system-i386 -nographic -net user,hostfwd=tcp::2222-:22 -net nic,model=e1000 -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${CPU_ARCH}.img'
+	@echo 'qemu-system-i386 -nographic -net user -net nic,model=e1000 -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${CPU_ARCH}.img'
 endif
 endif
 ifeq ($(ADK_HARDWARE_VBOX),y)
 ifeq ($(ADK_HARDWARE_VBOX),y)
 	@cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
 	@cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
@@ -54,7 +54,7 @@ imageinstall: $(FW_DIR)/$(INITRAMFS)
 	@echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
 	@echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
 ifeq ($(ADK_HARDWARE_QEMU),y)
 ifeq ($(ADK_HARDWARE_QEMU),y)
 	@echo "Start qemu with following command line:"
 	@echo "Start qemu with following command line:"
-	@echo 'qemu-system-i386 -nographic -net user,hostfwd=tcp::2222-:22 -net nic,model=e1000 -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
+	@echo 'qemu-system-i386 -nographic -net user -net nic,model=e1000 -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
 endif
 endif
 endif
 endif
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
@@ -63,7 +63,7 @@ imageinstall: createinitramfs
 	@echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
 	@echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
 ifeq ($(ADK_HARDWARE_QEMU),y)
 ifeq ($(ADK_HARDWARE_QEMU),y)
 	@echo "Start qemu with following command line:"
 	@echo "Start qemu with following command line:"
-	@echo 'qemu-system-i386 -nographic -net user,hostfwd=tcp::2222-:22 -net nic,model=e1000 -kernel $(FW_DIR)/$(TARGET_KERNEL)'
+	@echo 'qemu-system-i386 -nographic -net user -net nic,model=e1000 -kernel $(FW_DIR)/$(TARGET_KERNEL)'
 endif
 endif
 endif
 endif
 ifeq (${ADK_TARGET_FS},iso)
 ifeq (${ADK_TARGET_FS},iso)

+ 3 - 3
target/x86_64/Makefile

@@ -17,7 +17,7 @@ ifeq ($(ADK_TARGET_SYSTEM_QEMU_X86_64),y)
 	@echo "Use following command to create a QEMU Image:"
 	@echo "Use following command to create a QEMU Image:"
 	@echo "./scripts/create.sh qemu-${CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
 	@echo "./scripts/create.sh qemu-${CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
 	@echo "Start qemu with following command line:"
 	@echo "Start qemu with following command line:"
-	@echo 'qemu-system-x86_64 -nographic -net user,hostfwd=tcp::2222-:22 -net nic,model=e1000 -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${CPU_ARCH}.img'
+	@echo 'qemu-system-x86_64 -nographic -net user -net nic,model=e1000 -kernel $(FW_DIR)/$(TARGET_KERNEL) qemu-${CPU_ARCH}.img'
 endif
 endif
 endif
 endif
 ifeq ($(ADK_TARGET_FS),usb)
 ifeq ($(ADK_TARGET_FS),usb)
@@ -32,7 +32,7 @@ imageinstall: $(FW_DIR)/$(INITRAMFS)
 	@echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
 	@echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
 ifeq ($(ADK_TARGET_SYSTEM_QEMU_X86_64),y)
 ifeq ($(ADK_TARGET_SYSTEM_QEMU_X86_64),y)
 	@echo "Start qemu with following command line:"
 	@echo "Start qemu with following command line:"
-	@echo 'qemu-system-x86_64 -nographic -net user,hostfwd=tcp::2222-:22 -net nic,model=e1000 -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
+	@echo 'qemu-system-x86_64 -nographic -net user -net nic,model=e1000 -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
 endif
 endif
 endif
 endif
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
 ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
@@ -41,7 +41,7 @@ imageinstall: createinitramfs
 	@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
 	@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
 ifeq ($(ADK_TARGET_SYSTEM_QEMU_X86_64),y)
 ifeq ($(ADK_TARGET_SYSTEM_QEMU_X86_64),y)
 	@echo "Start qemu with following command line:"
 	@echo "Start qemu with following command line:"
-	@echo 'qemu-system-x86_64 -nographic -net user,hostfwd=tcp::2222-:22 -net nic,model=e1000 -kernel $(FW_DIR)/$(TARGET_KERNEL)'
+	@echo 'qemu-system-x86_64 -nographic -net user -net nic,model=e1000 -kernel $(FW_DIR)/$(TARGET_KERNEL)'
 endif
 endif
 endif
 endif
 ifeq ($(ADK_TARGET_FS),nfsroot)
 ifeq ($(ADK_TARGET_FS),nfsroot)

+ 0 - 4
toolchain/eglibc/Makefile

@@ -21,10 +21,6 @@ TARGET_CFLAGS_LIBC:= 	$(filter-out -fstack-protector,$(TARGET_CFLAGS_LIBC))
 include Makefile.inc
 include Makefile.inc
 include ${TOPDIR}/mk/buildhlp.mk
 include ${TOPDIR}/mk/buildhlp.mk
 
 
-ifeq ($(ADK_TARGET_NO_FPU),y)
-EGLIBC_CONFOPTS+=       --without-fp
-endif
-
 EGLIBC_BUILD_DIR_INITIAL:=	${WRKDIR}/$(PKG_NAME)-$(PKG_VERSION)-headers
 EGLIBC_BUILD_DIR_INITIAL:=	${WRKDIR}/$(PKG_NAME)-$(PKG_VERSION)-headers
 EGLIBC_BUILD_DIR_FINAL:=	${WRKDIR}/$(PKG_NAME)-$(PKG_VERSION)-final
 EGLIBC_BUILD_DIR_FINAL:=	${WRKDIR}/$(PKG_NAME)-$(PKG_VERSION)-final
 
 

+ 1 - 1
toolchain/eglibc/Makefile.inc

@@ -10,7 +10,7 @@ EGLIBC_CONFOPTS:=	--build=$(GNU_HOST_NAME) \
 			--without-cvs \
 			--without-cvs \
 			--disable-profile \
 			--disable-profile \
 			--disable-debug \
 			--disable-debug \
-			--enable-kernel=2.6.0 \
+			--enable-kernel=2.6.32 \
 			--without-gd \
 			--without-gd \
 			--disable-nscd \
 			--disable-nscd \
 			--with-__thread \
 			--with-__thread \

+ 14 - 15
toolchain/gcc/Makefile

@@ -81,24 +81,21 @@ else
 GCC_CONFOPTS+=		--enable-target-optspace
 GCC_CONFOPTS+=		--enable-target-optspace
 endif
 endif
 
 
-ifeq ($(ARCH),mips)
-ifeq ($(ADK_TARGET_NO_FPU),y)
-GCC_CONFOPTS+=		--with-float=soft
-else
-GCC_CONFOPTS+=          --with-float=hard
-endif
+ifeq ($(ARCH),arm)
+GCC_CONFOPTS+=		--with-float=$(ADK_TARGET_FLOAT)
+GCC_CONFOPTS+=		--with-mode=$(ADK_TARGET_ARM_MODE)
 endif
 endif
 
 
-ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI),y)
-GCC_CONFOPTS+=          --with-arch=armv6 --with-tune=arm1176jzf-s --with-fpu=vfp --with-float=hard
+ifeq ($(ADK_CPU_ARM926EJ_S),y)
+GCC_CONFOPTS+=          --with-arch=armv5te --with-tune=arm1176jzf-s
 endif
 endif
 
 
-ifeq ($(ADK_TARGET_SYSTEM_CUBOX_I),y)
-ifeq ($(ADK_LINUX_ARM_WITH_THUMB),y)
-GCC_CONFOPTS+=          --with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=neon --with-float=hard  --with-mode=thumb
-else
-GCC_CONFOPTS+=          --with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=neon --with-float=hard  --with-mode=arm
+ifeq ($(ADK_CPU_ARM1176JZF_S),y)
+GCC_CONFOPTS+=          --with-arch=armv6 --with-tune=arm1176jzf-s --with-fpu=vfp
 endif
 endif
+
+ifeq ($(ADK_CPU_CORTEX_A9),y)
+GCC_CONFOPTS+=          --with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=neon
 endif
 endif
 
 
 ifneq ($(ADK_TARGET_ABI),)
 ifneq ($(ADK_TARGET_ABI),)
@@ -209,10 +206,12 @@ $(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
 	# fix linking g++ apps with libtool
 	# fix linking g++ apps with libtool
 	@-test -d $(STAGING_TARGET_DIR)/lib32 && \
 	@-test -d $(STAGING_TARGET_DIR)/lib32 && \
 		cd $(STAGING_TARGET_DIR)/lib32 && \
 		cd $(STAGING_TARGET_DIR)/lib32 && \
-		ln -sf libstdc++.so.6.0.17 libstdc++.so
+		ln -sf libstdc++.so.6.0.17 libstdc++.so && \
+		ln -sf libstdc++.so.6.0.17 libstdc++.so.6
 	@-test -d $(STAGING_TARGET_DIR)/lib64 && \
 	@-test -d $(STAGING_TARGET_DIR)/lib64 && \
 		cd $(STAGING_TARGET_DIR)/lib64 && \
 		cd $(STAGING_TARGET_DIR)/lib64 && \
-		ln -sf libstdc++.so.6.0.17 libstdc++.so
+		ln -sf libstdc++.so.6.0.17 libstdc++.so && \
+		ln -sf libstdc++.so.6.0.17 libstdc++.so.6
 	# cleanup unneeded docs
 	# cleanup unneeded docs
 	rm -rf $(STAGING_HOST_DIR)/share
 	rm -rf $(STAGING_HOST_DIR)/share
 	touch $@
 	touch $@

+ 0 - 4
toolchain/glibc/Makefile

@@ -16,10 +16,6 @@ TARGET_CFLAGS_LIBC:=	$(filter-out -fstack-protector,$(TARGET_CFLAGS_LIBC))
 include Makefile.inc
 include Makefile.inc
 include ${TOPDIR}/mk/buildhlp.mk
 include ${TOPDIR}/mk/buildhlp.mk
 
 
-ifeq ($(ADK_TARGET_NO_FPU),y)
-GLIBC_CONFOPTS+=	--without-fp
-endif
-
 GLIBC_MAKEOPTS+=	cross-compiling=yes
 GLIBC_MAKEOPTS+=	cross-compiling=yes
 ifeq (${ADK_MAKE_PARALLEL},y)
 ifeq (${ADK_MAKE_PARALLEL},y)
 GLIBC_MAKEOPTS+=	PARALLELMFLAGS="-j1"
 GLIBC_MAKEOPTS+=	PARALLELMFLAGS="-j1"

+ 1 - 1
toolchain/glibc/Makefile.inc

@@ -18,7 +18,7 @@ GLIBC_CONFOPTS:=	--build=$(GNU_HOST_NAME) \
 			--disable-nscd \
 			--disable-nscd \
 			--with-__thread \
 			--with-__thread \
 			--with-tls \
 			--with-tls \
-			--enable-kernel="2.6.0" \
+			--enable-kernel="2.6.32" \
 			--enable-add-ons
 			--enable-add-ons
 GLIBC_ENV:=             PATH='${TARGET_PATH}' \
 GLIBC_ENV:=             PATH='${TARGET_PATH}' \
                         BUILD_CC=${CC_FOR_BUILD} \
                         BUILD_CC=${CC_FOR_BUILD} \

+ 0 - 0
toolchain/kernel-headers/patches/3.4.71/aufs2.patch → toolchain/kernel-headers/patches/3.4.82/aufs2.patch


+ 0 - 0
toolchain/kernel-headers/patches/3.4.71/linux-gcc-check.patch → toolchain/kernel-headers/patches/3.4.82/linux-gcc-check.patch


+ 0 - 0
toolchain/kernel-headers/patches/3.4.71/microperl.patch → toolchain/kernel-headers/patches/3.4.82/microperl.patch


+ 0 - 0
toolchain/kernel-headers/patches/3.4.71/mkpiggy.patch → toolchain/kernel-headers/patches/3.4.82/mkpiggy.patch


+ 0 - 0
toolchain/kernel-headers/patches/3.4.71/relocs.patch → toolchain/kernel-headers/patches/3.4.82/relocs.patch


+ 0 - 12
toolchain/musl/patches/mips64.patch

@@ -1,12 +0,0 @@
-diff -Nur musl-0.9.14.orig/configure musl-0.9.14/configure
---- musl-0.9.14.orig/configure	2013-09-23 23:01:11.000000000 +0200
-+++ musl-0.9.14/configure	2013-11-09 20:16:14.000000000 +0100
-@@ -225,7 +225,7 @@
- arm*) ARCH=arm ;;
- i?86*) ARCH=i386 ;;
- x86_64*) ARCH=x86_64 ;;
--mips-*|mipsel-*) ARCH=mips ;;
-+mips-*|mipsel-*|mips64-*|mips64el-*) ARCH=mips ;;
- microblaze-*) ARCH=microblaze ;;
- powerpc-*) ARCH=powerpc ;;
- unknown) fail "$0: unable to detect target arch; try $0 --target=..." ;;

+ 8039 - 0
toolchain/musl/patches/musl-git-20140225.patch

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

+ 3 - 0
toolchain/uClibc/Makefile

@@ -56,6 +56,9 @@ endif
 ifneq ($(ADK_PACKAGE_GDB),)
 ifneq ($(ADK_PACKAGE_GDB),)
 	$(SED) "s/.*\(PTHREADS_DEBUG_SUPPORT\).*/\1=y/" ${WRKBUILD}/.config
 	$(SED) "s/.*\(PTHREADS_DEBUG_SUPPORT\).*/\1=y/" ${WRKBUILD}/.config
 endif
 endif
+ifeq ($(ADK_LINUX_ARM_WITH_THUMB),y)
+	$(SED) 's/.*\(COMPILE_IN_THUMB_MODE\).*/\1=y/' ${WRKBUILD}/.config
+endif
 ifeq ($(ADK_TOOLCHAIN_GCC_USE_SSP),y)
 ifeq ($(ADK_TOOLCHAIN_GCC_USE_SSP),y)
 	$(SED) 's,.*UCLIBC_HAS_SSP,UCLIBC_HAS_SSP=y,' ${WRKBUILD}/.config
 	$(SED) 's,.*UCLIBC_HAS_SSP,UCLIBC_HAS_SSP=y,' ${WRKBUILD}/.config
 	echo "UCLIBC_HAS_SSP_COMPAT=n" >> ${WRKBUILD}/.config
 	echo "UCLIBC_HAS_SSP_COMPAT=n" >> ${WRKBUILD}/.config