From 95813e9c0009a0fff2e5e30a39e1ea45b061cbc0 Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Wed, 19 Mar 2014 08:51:57 +0100
Subject: prefer gnutls, smaller then openssl

---
 package/curl/Makefile           | 2 +-
 package/dovecot/Makefile        | 2 +-
 package/hostapd/Makefile        | 2 +-
 package/strongswan/Makefile     | 2 +-
 package/tntnet/Makefile         | 2 +-
 package/wget/Makefile           | 2 +-
 package/wpa_supplicant/Makefile | 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/package/curl/Makefile b/package/curl/Makefile
index f2fb4d573..7a03fcd9e 100644
--- a/package/curl/Makefile
+++ b/package/curl/Makefile
@@ -24,7 +24,7 @@ PKGSS_LIBCURL:=		zlib
 PKG_FLAVOURS_CURL:=	WITH_IPV6
 PKGFD_WITH_IPV6:=	enable IPv6 support
 
-PKG_CHOICES_LIBCURL:=	WITHOUT_SSL WITH_OPENSSL WITH_GNUTLS
+PKG_CHOICES_LIBCURL:=	WITH_GNUTLS WITH_OPENSSL WITHOUT_SSL
 PKGCD_WITHOUT_SSL:=	use no SSL
 PKGCD_WITH_OPENSSL:=	use OpenSSL for crypto
 PKGCS_WITH_OPENSSL:=	libopenssl ca-certificates libgmp
diff --git a/package/dovecot/Makefile b/package/dovecot/Makefile
index 369264c6d..624d47672 100644
--- a/package/dovecot/Makefile
+++ b/package/dovecot/Makefile
@@ -12,7 +12,7 @@ PKG_SECTION:=		mail
 PKG_URL:=		http://www.dovecot.org/
 PKG_SITES:=		http://www.dovecot.org/releases/2.0/
 
-PKG_CHOICES_DOVECOT:=	WITH_OPENSSL WITH_GNUTLS
+PKG_CHOICES_DOVECOT:=	WITH_GNUTLS WITH_OPENSSL
 PKGCD_WITH_OPENSSL:=	use OpenSSL for crypto
 PKGCS_WITH_OPENSSL:=	libopenssl
 PKGCB_WITH_OPENSSL:=	openssl
diff --git a/package/hostapd/Makefile b/package/hostapd/Makefile
index 0b8d3aa7a..99ca40234 100644
--- a/package/hostapd/Makefile
+++ b/package/hostapd/Makefile
@@ -16,7 +16,7 @@ PKG_SITES:=		http://hostap.epitest.fi/releases/
 PKG_MULTI:=		1
 
 PKG_SUBPKGS:=		HOSTAPD HOSTAPD_UTILS
-PKG_CHOICES_HOSTAPD:=	WITH_OPENSSL WITH_GNUTLS
+PKG_CHOICES_HOSTAPD:=	WITH_GNUTLS WITH_OPENSSL
 PKGCD_WITH_OPENSSL:=	use OpenSSL for crypto
 PKGCS_WITH_OPENSSL:=	libopenssl
 PKGCB_WITH_OPENSSL:=	openssl
diff --git a/package/strongswan/Makefile b/package/strongswan/Makefile
index b60c6e6d7..314e30635 100644
--- a/package/strongswan/Makefile
+++ b/package/strongswan/Makefile
@@ -20,7 +20,7 @@ PKG_SITES:=		http://download.strongswan.org/
 
 PKG_LIBC_DEPENDS:=	uclibc glibc
 
-PKG_CHOICES_STRONGSWAN:=WITH_GMP WITH_OPENSSL WITH_GNUTLS
+PKG_CHOICES_STRONGSWAN:=WITH_GNUTLS WITH_OPENSSL WITH_GMP
 PKGCD_WITH_GMP:=	use GMP for crypto
 PKGCS_WITH_GMP:=	libgmp
 PKGCB_WITH_GMP:=	gmp
diff --git a/package/tntnet/Makefile b/package/tntnet/Makefile
index 109f13963..e8e674fcc 100644
--- a/package/tntnet/Makefile
+++ b/package/tntnet/Makefile
@@ -17,7 +17,7 @@ PKG_NEED_CXX:=		1
 
 PKG_ARCH_DEPENDS:=	!arm !m68k
 
-PKG_CHOICES_TNTNET:=	WITHOUT_SSL WITH_OPENSSL WITH_GNUTLS
+PKG_CHOICES_TNTNET:=	WITH_GNUTLS WITH_OPENSSL WITHOUT_SSL
 PKGCD_WITHOUT_SSL:=	use no SSL
 PKGCD_WITH_OPENSSL:=	use OpenSSL for crypto
 PKGCS_WITH_OPENSSL:=	libopenssl
diff --git a/package/wget/Makefile b/package/wget/Makefile
index 9c412c3ea..516576a86 100644
--- a/package/wget/Makefile
+++ b/package/wget/Makefile
@@ -13,7 +13,7 @@ PKG_BUILDDEP:=		autotool
 PKG_URL:=		http://www.gnu.org/software/wget/
 PKG_SITES:=		${MASTER_SITE_GNU:=wget/}
 
-PKG_CHOICES_WGET:=	WITHOUT_SSL WITH_OPENSSL WITH_GNUTLS
+PKG_CHOICES_WGET:=	WITH_GNUTLS WITH_OPENSSL WITHOUT_SSL
 PKGCD_WITHOUT_SSL:=	use no SSL
 PKGCD_WITH_OPENSSL:=	use OpenSSL for crypto
 PKGCS_WITH_OPENSSL:=	libopenssl ca-certificates libgmp
diff --git a/package/wpa_supplicant/Makefile b/package/wpa_supplicant/Makefile
index e1545e64c..38895bb24 100644
--- a/package/wpa_supplicant/Makefile
+++ b/package/wpa_supplicant/Makefile
@@ -18,7 +18,7 @@ PKG_DFLT_WPA_SUPPLICANT:=	y if ADK_TARGET_SYSTEM_IBM_X40
 
 WRKSRC=			${WRKDIST}/${PKG_NAME}
 
-PKG_CHOICES_WPA_SUPPLICANT:=	WITH_OPENSSL WITH_GNUTLS WITH_INTERNAL
+PKG_CHOICES_WPA_SUPPLICANT:=	WITH_GNUTLS WITH_OPENSSL WITH_INTERNAL
 PKGCD_WITH_OPENSSL:=		use OpenSSL for crypto
 PKGCS_WITH_OPENSSL:=		libopenssl
 PKGCB_WITH_OPENSSL:=		openssl
-- 
cgit v1.2.3


From c4d8c6e0b3186b4c29c5ff397fbc12b8fc1196dd Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Wed, 19 Mar 2014 08:54:17 +0100
Subject: use BUSYBOX_STATIC when ADK_STATIC is choosen

---
 package/busybox/config/Config.in | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/busybox/config/Config.in b/package/busybox/config/Config.in
index 3a5e340ae..40f67caa7 100644
--- a/package/busybox/config/Config.in
+++ b/package/busybox/config/Config.in
@@ -454,6 +454,7 @@ menu 'Build Options'
 
 config BUSYBOX_STATIC
 	bool "Build BusyBox as a static binary (no shared libs)"
+	default y if ADK_STATIC
 	default n
 	help
 	  If you want to build a static BusyBox binary, which does not
-- 
cgit v1.2.3


From e9908f5a7a00fc48f7c9dddf7c234ba689b6d759 Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Wed, 19 Mar 2014 08:54:27 +0100
Subject: use BUSYBOX_STATIC when ADK_STATIC is choosen

---
 target/config/Config.in.adk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/target/config/Config.in.adk b/target/config/Config.in.adk
index 7544723bf..27b72941e 100644
--- a/target/config/Config.in.adk
+++ b/target/config/Config.in.adk
@@ -36,6 +36,7 @@ config ADK_DEBUG_STRIP
 config ADK_STATIC
 	bool "Link applications statically by default"
 	default n
+	select BUSYBOX_STATIC
 	help
 	  Useful for toolchain only target devices.
 
-- 
cgit v1.2.3


From 910966c0e7582620e1087549b10828f2ace1738f Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Wed, 19 Mar 2014 09:12:55 +0100
Subject: add ADK_RUNTIME_CONSOLE_SERIAL_DEVICE, minor cleanups while there

---
 BUGS                                    |  1 +
 mk/vars.mk                              |  3 +-
 package/base-files/Makefile             | 24 ++-------------
 package/base-files/files/inittab.serial |  2 +-
 rules.mk                                | 54 ++++++++++++++++-----------------
 target/config/Config.in.runtime         | 11 +++++++
 target/config/Config.in.tools           |  6 ----
 7 files changed, 42 insertions(+), 59 deletions(-)

diff --git a/BUGS b/BUGS
index 70759ad05..5bd4fc77c 100644
--- a/BUGS
+++ b/BUGS
@@ -1,3 +1,4 @@
+- qemu-i386: uCLibc fails for non-debug builds
 - qemu-sparc: startup kernel with gcc 4.8.2 broken
 - qemu-sh4: usb keyboard is broken
 - qemu-arm: thumb mode with glibc does not boot
diff --git a/mk/vars.mk b/mk/vars.mk
index 699f3eda4..f22717c2e 100644
--- a/mk/vars.mk
+++ b/mk/vars.mk
@@ -100,8 +100,7 @@ TARGET_CFLAGS:=		$(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident -fhonour-copts
 TARGET_CXXFLAGS:=	$(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident
 TARGET_LDFLAGS:=	-L$(STAGING_TARGET_DIR)/lib -L$(STAGING_TARGET_DIR)/usr/lib \
 			-Wl,-O1 -Wl,-rpath -Wl,/usr/lib \
-			-Wl,-rpath-link -Wl,${STAGING_TARGET_DIR}/usr/lib \
-			$(ADK_TARGET_ABI_LDFLAGS)
+			-Wl,-rpath-link -Wl,${STAGING_TARGET_DIR}/usr/lib
 
 # security optimization, see http://www.akkadia.org/drepper/dsohowto.pdf
 TARGET_LDFLAGS+=	-Wl,-z,relro,-z,now
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 11fb4f507..25314b5ec 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -6,7 +6,7 @@ include $(TOPDIR)/mk/rootfs.mk
 
 PKG_NAME:=		base-files
 PKG_VERSION:=		1.0
-PKG_RELEASE:=		72
+PKG_RELEASE:=		73
 PKG_SECTION:=		base
 PKG_DESCR:=		basic files and scripts
 PKG_BUILDDEP:=		pkgconf-host file-host
@@ -63,27 +63,7 @@ endif
 	    cat ./files/inittab.serial >> $(IDIR_BASE_FILES)/etc/inittab
 	test -z $(ADK_RUNTIME_CONSOLE_BOTH) || \
 	    cat ./files/inittab.vga >> $(IDIR_BASE_FILES)/etc/inittab
-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
-endif
-ifeq ($(ADK_TARGET_SYSTEM_ARANYM_M68K),y)
-	$(SED) 's#ttyS#nfcon#g' $(IDIR_BASE_FILES)/etc/inittab
-endif
-ifeq ($(ADK_TARGET_SYSTEM_QEMU_PPC64),y)
-	$(SED) 's#ttyS#hvc#g' $(IDIR_BASE_FILES)/etc/inittab
-endif
-ifeq ($(ADK_TARGET_SYSTEM_QEMU_SH4),y)
-	$(SED) 's#ttyS0#ttySC1#g' $(IDIR_BASE_FILES)/etc/inittab
-endif
-ifeq ($(ADK_TARGET_SYSTEM_QEMU_SH4EB),y)
-	$(SED) 's#ttyS0#ttySC1#g' $(IDIR_BASE_FILES)/etc/inittab
-endif
-ifeq ($(ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800),y)
-	$(SED) 's#ttyS#ttyUL#g' $(IDIR_BASE_FILES)/etc/inittab
-endif
+	$(SED) 's#@DEVICE@#$(ADK_RUNTIME_CONSOLE_SERIAL_DEVICE)#' $(IDIR_BASE_FILES)/etc/inittab
 	$(SED) 's#@SPEED@#$(ADK_RUNTIME_CONSOLE_SERIAL_SPEED)#' $(IDIR_BASE_FILES)/etc/inittab
 	test -z $(ADK_RUNTIME_HOSTNAME) || \
 	    echo $(ADK_RUNTIME_HOSTNAME) > $(IDIR_BASE_FILES)/etc/hostname; \
diff --git a/package/base-files/files/inittab.serial b/package/base-files/files/inittab.serial
index 5de880f2a..dcb09e438 100644
--- a/package/base-files/files/inittab.serial
+++ b/package/base-files/files/inittab.serial
@@ -1 +1 @@
-ttyS0::respawn:/sbin/getty -i -L ttyS0 @SPEED@ vt100
+@DEVICE@::respawn:/sbin/getty -i -L @DEVICE@ @SPEED@ vt100
diff --git a/rules.mk b/rules.mk
index 2fe8aa751..81c613c83 100644
--- a/rules.mk
+++ b/rules.mk
@@ -25,37 +25,35 @@ SET_DASHX:=		:
 endif
 
 # Strip off the annoying quoting
-ADK_TARGET_KERNEL:=	$(strip $(subst ",, $(ADK_TARGET_KERNEL)))
-ADK_TARGET_ARCH:=	$(strip $(subst ",, $(ADK_TARGET_ARCH)))
-ADK_TARGET_SYSTEM:=	$(strip $(subst ",, $(ADK_TARGET_SYSTEM)))
-ADK_TARGET_LIBC:=	$(strip $(subst ",, $(ADK_TARGET_LIBC)))
-ADK_TARGET_LIBC_PATH:=	$(strip $(subst ",, $(ADK_TARGET_LIBC_PATH)))
-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_CFLAGS:=	$(strip $(subst ",, $(ADK_TARGET_CFLAGS)))
-ADK_TARGET_ABI_CFLAGS:=	$(strip $(subst ",, $(ADK_TARGET_ABI_CFLAGS)))
-ADK_TARGET_ABI_LDFLAGS:=	$(strip $(subst ",, $(ADK_TARGET_ABI_LDFLAGS)))
-ADK_TARGET_KERNEL_LDFLAGS:=	$(strip $(subst ",, $(ADK_TARGET_KERNEL_LDFLAGS)))
-ADK_TARGET_ABI:=	$(strip $(subst ",, $(ADK_TARGET_ABI)))
-ADK_TARGET_MIPS_ABI:=	$(strip $(subst ",, $(ADK_TARGET_MIPS_ABI)))
-ADK_TARGET_IP:=		$(strip $(subst ",, $(ADK_TARGET_IP)))
-ADK_TARGET_SUFFIX:=	$(strip $(subst ",, $(ADK_TARGET_SUFFIX)))
-ADK_TARGET_CMDLINE:=	$(strip $(subst ",, $(ADK_TARGET_CMDLINE)))
-ADK_QEMU_ARGS:=		$(strip $(subst ",, $(ADK_QEMU_ARGS)))
-ADK_RUNTIME_TMPFS_SIZE:=	$(strip $(subst ",, $(ADK_RUNTIME_TMPFS_SIZE)))
+ADK_TARGET_KERNEL:=			$(strip $(subst ",, $(ADK_TARGET_KERNEL)))
+ADK_TARGET_ARCH:=			$(strip $(subst ",, $(ADK_TARGET_ARCH)))
+ADK_TARGET_SYSTEM:=			$(strip $(subst ",, $(ADK_TARGET_SYSTEM)))
+ADK_TARGET_LIBC:=			$(strip $(subst ",, $(ADK_TARGET_LIBC)))
+ADK_TARGET_LIBC_PATH:=			$(strip $(subst ",, $(ADK_TARGET_LIBC_PATH)))
+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_CFLAGS:=			$(strip $(subst ",, $(ADK_TARGET_CFLAGS)))
+ADK_TARGET_ABI_CFLAGS:=			$(strip $(subst ",, $(ADK_TARGET_ABI_CFLAGS)))
+ADK_TARGET_ABI:=			$(strip $(subst ",, $(ADK_TARGET_ABI)))
+ADK_TARGET_MIPS_ABI:=			$(strip $(subst ",, $(ADK_TARGET_MIPS_ABI)))
+ADK_TARGET_IP:=				$(strip $(subst ",, $(ADK_TARGET_IP)))
+ADK_TARGET_SUFFIX:=			$(strip $(subst ",, $(ADK_TARGET_SUFFIX)))
+ADK_TARGET_CMDLINE:=			$(strip $(subst ",, $(ADK_TARGET_CMDLINE)))
+ADK_QEMU_ARGS:=				$(strip $(subst ",, $(ADK_QEMU_ARGS)))
+ADK_RUNTIME_TMPFS_SIZE:=		$(strip $(subst ",, $(ADK_RUNTIME_TMPFS_SIZE)))
 ADK_RUNTIME_CONSOLE_SERIAL_SPEED:=	$(strip $(subst ",, $(ADK_RUNTIME_CONSOLE_SERIAL_SPEED)))
-ADK_HOST:=		$(strip $(subst ",, $(ADK_HOST)))
-ADK_VENDOR:=		$(strip $(subst ",, $(ADK_VENDOR)))
-ADK_DL_DIR:=		$(strip $(subst ",, $(ADK_DL_DIR)))
-ADK_COMPRESSION_TOOL:=		$(strip $(subst ",, $(ADK_COMPRESSION_TOOL)))
-ADK_TOOLS_ADDPATTERN_ARGS:=	$(strip $(subst ",, $(ADK_TOOLS_ADDPATTERN_ARGS)))
-ADK_KERNEL_VERSION:=		$(strip $(subst ",, $(ADK_KERNEL_VERSION)))
+ADK_RUNTIME_CONSOLE_SERIAL_DEVICE:=	$(strip $(subst ",, $(ADK_RUNTIME_CONSOLE_SERIAL_DEVICE)))
+ADK_HOST:=				$(strip $(subst ",, $(ADK_HOST)))
+ADK_VENDOR:=				$(strip $(subst ",, $(ADK_VENDOR)))
+ADK_DL_DIR:=				$(strip $(subst ",, $(ADK_DL_DIR)))
+ADK_COMPRESSION_TOOL:=			$(strip $(subst ",, $(ADK_COMPRESSION_TOOL)))
+ADK_KERNEL_VERSION:=			$(strip $(subst ",, $(ADK_KERNEL_VERSION)))
 ADK_PARAMETER_NETCONSOLE_SRC_IP:=	$(strip $(subst ",, $(ADK_PARAMETER_NETCONSOLE_SRC_IP)))
 ADK_PARAMETER_NETCONSOLE_DST_IP:=	$(strip $(subst ",, $(ADK_PARAMETER_NETCONSOLE_DST_IP)))
-ADK_JFFS2_OPTS:=	$(strip $(subst ",, $(ADK_JFFS2_OPTS)))
-ADK_WGET_TIMEOUT:=	$(strip $(subst ",, $(ADK_WGET_TIMEOUT)))
+ADK_JFFS2_OPTS:=			$(strip $(subst ",, $(ADK_JFFS2_OPTS)))
+ADK_WGET_TIMEOUT:=			$(strip $(subst ",, $(ADK_WGET_TIMEOUT)))
 
 ifeq ($(strip ${ADK_HAVE_DOT_CONFIG}),y)
 ifneq ($(strip $(wildcard $(TOPDIR)/target/$(ADK_TARGET_ARCH)/target.mk)),)
diff --git a/target/config/Config.in.runtime b/target/config/Config.in.runtime
index cb0929822..a459940d6 100644
--- a/target/config/Config.in.runtime
+++ b/target/config/Config.in.runtime
@@ -59,8 +59,19 @@ config ADK_RUNTIME_CONSOLE_BOTH
 
 endchoice
 
+config ADK_RUNTIME_CONSOLE_SERIAL_DEVICE
+	string
+	default "hvc0" if ADK_TARGET_SYSTEM_QEMU_PPC64
+	default "ttyUL0" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800
+	default "ttyAMA0" if ADK_TARGET_QEMU_ARM_MODEL_VERSATILEPB || ADK_TARGET_QEMU_ARM_MODEL_VEXPRESS_A9
+	default "ttySC1" if ADK_TARGET_SYSTEM_QEMU_SH4 || ADK_TARGET_SYSTEM_QEMU_SH4EB
+	default "ttymxc0" if ADK_TARGET_SYSTEM_CUBOX_I
+	default "nfcon0" if ADK_TARGET_SYSTEM_ARANYM_M68K
+	default "ttyS0"
+
 config ADK_RUNTIME_CONSOLE_SERIAL_SPEED
 	string
+	default "9600" if ADK_TARGET_SYSTEM_QEMU_PPC
 	default "9600" if ADK_TARGET_SYSTEM_FON_FON2100
 	default "38400" if ADK_TARGET_SYSTEM_PCENGINES_WRAP	
 	default "115200"
diff --git a/target/config/Config.in.tools b/target/config/Config.in.tools
index c2dee7e19..7e37f5ec1 100644
--- a/target/config/Config.in.tools
+++ b/target/config/Config.in.tools
@@ -42,9 +42,3 @@ config ADK_HOST_NEED_PCRE
 	boolean
 	default y if ADK_HOST_DARWIN
 	default n
-
-config ADK_TOOLS_ADDPATTERN_ARGS
-	string
-	default "-p W54G -v v4.20.6" if ADK_TARGET_BROADCOM_MODEL_LINKSYS_WRT54G
-	default "-p W54S -v v4.70.6" if ADK_TARGET_BROADCOM_MODEL_LINKSYS_WRT54GS
-	default ""
-- 
cgit v1.2.3


From 09981c6824ff47fa75ec4c17ca569bc92635996a Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Wed, 19 Mar 2014 09:44:26 +0100
Subject: rework getty/shell runtime options, add git as dependency, used in
 base-files and is always good to create patches, get updates,..

---
 README                                 |  1 +
 TODO                                   |  1 -
 mk/build.mk                            |  2 +-
 package/base-files/Makefile            | 12 ++++------
 package/base-files/files/inittab.shell |  1 +
 scripts/scan-tools.sh                  |  6 +++++
 target/config/Config.in.runtime        | 42 ++++++++++++++++++++++------------
 7 files changed, 42 insertions(+), 23 deletions(-)
 create mode 100644 package/base-files/files/inittab.shell

diff --git a/README b/README
index 687950abd..65011f0ad 100644
--- a/README
+++ b/README
@@ -19,6 +19,7 @@ Before you can start you need to install some tools:
 - ncurses5 headers
 - zlib headers
 - perl
+- git
 
 There is a check for the required versions of these tools in advance, though.
 (to re-issue the checks, use "make prereq").
diff --git a/TODO b/TODO
index d3a55ea0b..6b54af848 100644
--- a/TODO
+++ b/TODO
@@ -1,5 +1,4 @@
 - check gold for mozilla compile
-- getty + serial rework
 - add daemon() function to functions.sh
 - add printing of OK/FAIL (optional verbose bootup)
 - fixup rework libgcc --export-symbols
diff --git a/mk/build.mk b/mk/build.mk
index ff9abd229..4cdccd8fd 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -98,7 +98,7 @@ POSTCONFIG=		-@\
 			touch .rebuild.busybox;\
 			rebuild=1;\
 		fi; \
-		for i in ADK_RUNTIME_PASSWORD ADK_RUNTIME_TMPFS_SIZE ADK_RUNTIME_HOSTNAME ADK_TARGET_ROOTFS ADK_RUNTIME_CONSOLE ADK_TARGET_QEMU_MICROBLAZE_MODEL;do \
+		for i in ADK_RUNTIME_PASSWORD ADK_RUNTIME_TMPFS_SIZE ADK_RUNTIME_HOSTNAME ADK_TARGET_ROOTFS ADK_RUNTIME_GETTY ADK_RUNTIME_SHELL;do \
 			if [ "$$(grep ^$$i .config|md5sum)" != "$$(grep ^$$i .config.old|md5sum)" ];then \
 				touch .rebuild.base-files;\
 				rebuild=1;\
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 25314b5ec..0dee1aa94 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -6,7 +6,7 @@ include $(TOPDIR)/mk/rootfs.mk
 
 PKG_NAME:=		base-files
 PKG_VERSION:=		1.0
-PKG_RELEASE:=		73
+PKG_RELEASE:=		74
 PKG_SECTION:=		base
 PKG_DESCR:=		basic files and scripts
 PKG_BUILDDEP:=		pkgconf-host file-host
@@ -55,14 +55,12 @@ endif
 	ln -sf ../proc/mounts $(IDIR_BASE_FILES)/etc/mtab
 	rm -rf $(IDIR_BASE_FILES)/var
 	ln -sf tmp $(IDIR_BASE_FILES)/var
-	test -z $(ADK_RUNTIME_CONSOLE_VGA) || \
+	test -z $(ADK_RUNTIME_SHELL) || \
+	    cat ./files/inittab.shell >> $(IDIR_BASE_FILES)/etc/inittab
+	test -z $(ADK_RUNTIME_GETTY_VGA) || \
 	    cat ./files/inittab.vga >> $(IDIR_BASE_FILES)/etc/inittab
-	test -z $(ADK_RUNTIME_CONSOLE_SERIAL) || \
+	test -z $(ADK_RUNTIME_GETTY_SERIAL) || \
 	    cat ./files/inittab.serial >> $(IDIR_BASE_FILES)/etc/inittab
-	test -z $(ADK_RUNTIME_CONSOLE_BOTH) || \
-	    cat ./files/inittab.serial >> $(IDIR_BASE_FILES)/etc/inittab
-	test -z $(ADK_RUNTIME_CONSOLE_BOTH) || \
-	    cat ./files/inittab.vga >> $(IDIR_BASE_FILES)/etc/inittab
 	$(SED) 's#@DEVICE@#$(ADK_RUNTIME_CONSOLE_SERIAL_DEVICE)#' $(IDIR_BASE_FILES)/etc/inittab
 	$(SED) 's#@SPEED@#$(ADK_RUNTIME_CONSOLE_SERIAL_SPEED)#' $(IDIR_BASE_FILES)/etc/inittab
 	test -z $(ADK_RUNTIME_HOSTNAME) || \
diff --git a/package/base-files/files/inittab.shell b/package/base-files/files/inittab.shell
new file mode 100644
index 000000000..55e5e429f
--- /dev/null
+++ b/package/base-files/files/inittab.shell
@@ -0,0 +1 @@
+::askfirst:/bin/sh
diff --git a/scripts/scan-tools.sh b/scripts/scan-tools.sh
index c16aff609..33365483a 100644
--- a/scripts/scan-tools.sh
+++ b/scripts/scan-tools.sh
@@ -208,6 +208,12 @@ if ! which g++ >/dev/null 2>&1; then
 	out=1
 fi
 
+if ! which git >/dev/null 2>&1; then
+	echo  "You need git to continue."
+	echo
+	out=1
+fi
+
 cd $topdir
 rm -rf tmp
 
diff --git a/target/config/Config.in.runtime b/target/config/Config.in.runtime
index a459940d6..721f623de 100644
--- a/target/config/Config.in.runtime
+++ b/target/config/Config.in.runtime
@@ -37,27 +37,41 @@ config ADK_RUNTIME_TIMEZONE
 	  Predefine the timezone for the embedded system.
 
 choice
-prompt "Console output on embedded system"
-default ADK_RUNTIME_CONSOLE_BOTH if ADK_TARGET_WITH_VGA || ADK_TARGET_QEMU_WITH_GRAPHIC && !ADK_TARGET_SYSTEM_RASPBERRY_PI && !ADK_TARGET_SYSTEM_LEMOTE_YEELONG
-default ADK_RUNTIME_CONSOLE_VGA if ADK_TARGET_SYSTEM_RASPBERRY_PI || ADK_TARGET_SYSTEM_LEMOTE_YEELONG
-default ADK_RUNTIME_CONSOLE_SERIAL
+prompt "Start getty or shell after bootup"
+default ADK_RUNTIME_GETTY
 
-config ADK_RUNTIME_CONSOLE_VGA
-	bool "console output on VGA"
+config ADK_RUNTIME_GETTY
+	boolean "start a getty after bootup"
 	help
-          Start getty on VGA console. (tty1-tty6)
+	  Start a getty after bootup.
 
-config ADK_RUNTIME_CONSOLE_SERIAL
-	bool "console output on serial"
+config ADK_RUNTIME_SHELL
+	boolean "start a shell after bootup"
 	help
-	  Start getty on serial console.
+	  Start a shell after bootup
+
+endchoice
 
-config ADK_RUNTIME_CONSOLE_BOTH
-	bool "console output on VGA and serial"
+config ADK_RUNTIME_GETTY_VGA
+	boolean "start getty on VGA console (tty1-tty6)"
+	depends on ADK_RUNTIME_GETTY
+	default y if ADK_TARGET_QEMU_WITH_GRAPHIC
+	default y if ADK_TARGET_SYSTEM_RASPBERRY_PI
+	default y if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
+	default y if ADK_TARGET_SYSTEM_IBM_X40
+	default n
 	help
-	  Start getty on VGA console and serial device.
+          Start getty on VGA console. (tty1-tty6)
 
-endchoice
+config ADK_RUNTIME_GETTY_SERIAL
+	boolean "start getty on serial console"
+	depends on ADK_RUNTIME_GETTY
+	default n if ADK_TARGET_SYSTEM_RASPBERRY_PI
+	default n if ADK_TARGET_SYSTEM_LEMOTE_YEELONG
+	default n if ADK_TARGET_SYSTEM_IBM_X40
+	default y
+	help
+	  Start getty on serial console.
 
 config ADK_RUNTIME_CONSOLE_SERIAL_DEVICE
 	string
-- 
cgit v1.2.3


From 289643bf8528175c8c16489400d04c479a7875d0 Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Wed, 19 Mar 2014 09:44:39 +0100
Subject: udpate musl from git

---
 toolchain/musl/patches/musl-git-20140318.patch | 8718 -----------------------
 toolchain/musl/patches/musl-git-20140319.patch | 8864 ++++++++++++++++++++++++
 2 files changed, 8864 insertions(+), 8718 deletions(-)
 delete mode 100644 toolchain/musl/patches/musl-git-20140318.patch
 create mode 100644 toolchain/musl/patches/musl-git-20140319.patch

diff --git a/toolchain/musl/patches/musl-git-20140318.patch b/toolchain/musl/patches/musl-git-20140318.patch
deleted file mode 100644
index 6b4a797f2..000000000
--- a/toolchain/musl/patches/musl-git-20140318.patch
+++ /dev/null
@@ -1,8718 +0,0 @@
-diff -Nur musl-0.9.15/arch/arm/bits/sem.h musl-git/arch/arm/bits/sem.h
---- musl-0.9.15/arch/arm/bits/sem.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/arm/bits/sem.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,16 @@
-+struct semid_ds {
-+	struct ipc_perm sem_perm;
-+	time_t sem_otime;
-+	time_t __unused1;
-+	time_t sem_ctime;
-+	time_t __unused2;
-+#if __BYTE_ORDER == __LITTLE_ENDIAN
-+	unsigned short sem_nsems;
-+	char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
-+#else
-+	char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
-+	unsigned short sem_nsems;
-+#endif
-+	time_t __unused3;
-+	time_t __unused4;
-+};
-diff -Nur musl-0.9.15/arch/arm/bits/shm.h musl-git/arch/arm/bits/shm.h
---- musl-0.9.15/arch/arm/bits/shm.h	2014-01-03 21:12:17.000000000 +0100
-+++ musl-git/arch/arm/bits/shm.h	2014-03-17 16:49:44.000000000 +0100
-@@ -16,3 +16,14 @@
- 	unsigned long __pad1;
- 	unsigned long __pad2;
- };
-+
-+struct shminfo {
-+	unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];
-+};
-+
-+struct shm_info {
-+	int __used_ids;
-+	unsigned long shm_tot, shm_rss, shm_swp;
-+	unsigned long __swap_attempts, __swap_successes;
-+};
-+
-diff -Nur musl-0.9.15/arch/arm/bits/termios.h musl-git/arch/arm/bits/termios.h
---- musl-0.9.15/arch/arm/bits/termios.h	2014-01-03 21:12:17.000000000 +0100
-+++ musl-git/arch/arm/bits/termios.h	2014-03-17 16:49:44.000000000 +0100
-@@ -42,6 +42,7 @@
- #define IXANY   0004000
- #define IXOFF   0010000
- #define IMAXBEL 0020000
-+#define IUTF8   0040000
- 
- #define OPOST  0000001
- #define OLCUC  0000002
-@@ -75,9 +76,6 @@
- #define VT0    0000000
- #define VT1    0040000
- 
--/* ?? */
--#define XTABS  0014000
--
- #define B0       0000000
- #define B50      0000001
- #define B75      0000002
-@@ -125,8 +123,6 @@
- #define HUPCL  0002000
- #define CLOCAL 0004000
- 
--#define CRTSCTS  020000000000
--
- #define ISIG   0000001
- #define ICANON 0000002
- #define ECHO   0000010
-@@ -137,14 +133,11 @@
- #define TOSTOP 0000400
- #define IEXTEN 0100000
- 
--/* Extensions? */
--#define CBAUDEX 0010000
- #define ECHOCTL 0001000
- #define ECHOPRT 0002000
- #define ECHOKE 0004000
- #define FLUSHO 0010000
- #define PENDIN 0040000
--#define EXTPROC 0200000
- 
- #define TCOOFF 0
- #define TCOON  1
-@@ -158,3 +151,10 @@
- #define TCSANOW   0
- #define TCSADRAIN 1
- #define TCSAFLUSH 2
-+
-+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-+#define CBAUDEX 0010000
-+#define CRTSCTS  020000000000
-+#define EXTPROC 0200000
-+#define XTABS  0014000
-+#endif
-diff -Nur musl-0.9.15/arch/arm/syscall_arch.h musl-git/arch/arm/syscall_arch.h
---- musl-0.9.15/arch/arm/syscall_arch.h	2014-01-03 21:12:17.000000000 +0100
-+++ musl-git/arch/arm/syscall_arch.h	2014-03-17 16:49:44.000000000 +0100
-@@ -3,6 +3,8 @@
- ((union { long long ll; long l[2]; }){ .ll = x }).l[1]
- #define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x))
- 
-+long (__syscall)(long, ...);
-+
- #ifndef __clang__
- 
- #define __asm_syscall(...) do { \
-diff -Nur musl-0.9.15/arch/i386/bits/sem.h musl-git/arch/i386/bits/sem.h
---- musl-0.9.15/arch/i386/bits/sem.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/i386/bits/sem.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,16 @@
-+struct semid_ds {
-+	struct ipc_perm sem_perm;
-+	time_t sem_otime;
-+	time_t __unused1;
-+	time_t sem_ctime;
-+	time_t __unused2;
-+#if __BYTE_ORDER == __LITTLE_ENDIAN
-+	unsigned short sem_nsems;
-+	char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
-+#else
-+	char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
-+	unsigned short sem_nsems;
-+#endif
-+	time_t __unused3;
-+	time_t __unused4;
-+};
-diff -Nur musl-0.9.15/arch/i386/bits/shm.h musl-git/arch/i386/bits/shm.h
---- musl-0.9.15/arch/i386/bits/shm.h	2014-01-03 21:12:17.000000000 +0100
-+++ musl-git/arch/i386/bits/shm.h	2014-03-17 16:49:44.000000000 +0100
-@@ -16,3 +16,14 @@
- 	unsigned long __pad1;
- 	unsigned long __pad2;
- };
-+
-+struct shminfo {
-+	unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];
-+};
-+
-+struct shm_info {
-+	int __used_ids;
-+	unsigned long shm_tot, shm_rss, shm_swp;
-+	unsigned long __swap_attempts, __swap_successes;
-+};
-+
-diff -Nur musl-0.9.15/arch/i386/bits/termios.h musl-git/arch/i386/bits/termios.h
---- musl-0.9.15/arch/i386/bits/termios.h	2014-01-03 21:12:17.000000000 +0100
-+++ musl-git/arch/i386/bits/termios.h	2014-03-17 16:49:44.000000000 +0100
-@@ -42,6 +42,7 @@
- #define IXANY   0004000
- #define IXOFF   0010000
- #define IMAXBEL 0020000
-+#define IUTF8   0040000
- 
- #define OPOST  0000001
- #define OLCUC  0000002
-@@ -75,9 +76,6 @@
- #define VT0    0000000
- #define VT1    0040000
- 
--/* ?? */
--#define XTABS  0014000
--
- #define B0       0000000
- #define B50      0000001
- #define B75      0000002
-@@ -125,8 +123,6 @@
- #define HUPCL  0002000
- #define CLOCAL 0004000
- 
--#define CRTSCTS  020000000000
--
- #define ISIG   0000001
- #define ICANON 0000002
- #define ECHO   0000010
-@@ -137,14 +133,11 @@
- #define TOSTOP 0000400
- #define IEXTEN 0100000
- 
--/* Extensions? */
--#define CBAUDEX 0010000
- #define ECHOCTL 0001000
- #define ECHOPRT 0002000
- #define ECHOKE 0004000
- #define FLUSHO 0010000
- #define PENDIN 0040000
--#define EXTPROC 0200000
- 
- #define TCOOFF 0
- #define TCOON  1
-@@ -158,3 +151,10 @@
- #define TCSANOW   0
- #define TCSADRAIN 1
- #define TCSAFLUSH 2
-+
-+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-+#define CBAUDEX 0010000
-+#define CRTSCTS  020000000000
-+#define EXTPROC 0200000
-+#define XTABS  0014000
-+#endif
-diff -Nur musl-0.9.15/arch/microblaze/bits/sem.h musl-git/arch/microblaze/bits/sem.h
---- musl-0.9.15/arch/microblaze/bits/sem.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/microblaze/bits/sem.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,16 @@
-+struct semid_ds {
-+	struct ipc_perm sem_perm;
-+	time_t sem_otime;
-+	time_t __unused1;
-+	time_t sem_ctime;
-+	time_t __unused2;
-+#if __BYTE_ORDER == __LITTLE_ENDIAN
-+	unsigned short sem_nsems;
-+	char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
-+#else
-+	char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
-+	unsigned short sem_nsems;
-+#endif
-+	time_t __unused3;
-+	time_t __unused4;
-+};
-diff -Nur musl-0.9.15/arch/microblaze/bits/shm.h musl-git/arch/microblaze/bits/shm.h
---- musl-0.9.15/arch/microblaze/bits/shm.h	2014-01-03 21:12:17.000000000 +0100
-+++ musl-git/arch/microblaze/bits/shm.h	2014-03-17 16:49:44.000000000 +0100
-@@ -16,3 +16,14 @@
- 	unsigned long __pad1;
- 	unsigned long __pad2;
- };
-+
-+struct shminfo {
-+	unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];
-+};
-+
-+struct shm_info {
-+	int __used_ids;
-+	unsigned long shm_tot, shm_rss, shm_swp;
-+	unsigned long __swap_attempts, __swap_successes;
-+};
-+
-diff -Nur musl-0.9.15/arch/microblaze/bits/termios.h musl-git/arch/microblaze/bits/termios.h
---- musl-0.9.15/arch/microblaze/bits/termios.h	2014-01-03 21:12:17.000000000 +0100
-+++ musl-git/arch/microblaze/bits/termios.h	2014-03-17 16:49:44.000000000 +0100
-@@ -42,6 +42,7 @@
- #define IXANY   0004000
- #define IXOFF   0010000
- #define IMAXBEL 0020000
-+#define IUTF8   0040000
- 
- #define OPOST  0000001
- #define OLCUC  0000002
-@@ -75,9 +76,6 @@
- #define VT0    0000000
- #define VT1    0040000
- 
--/* ?? */
--#define XTABS  0014000
--
- #define B0       0000000
- #define B50      0000001
- #define B75      0000002
-@@ -125,8 +123,6 @@
- #define HUPCL  0002000
- #define CLOCAL 0004000
- 
--#define CRTSCTS  020000000000
--
- #define ISIG   0000001
- #define ICANON 0000002
- #define ECHO   0000010
-@@ -137,14 +133,11 @@
- #define TOSTOP 0000400
- #define IEXTEN 0100000
- 
--/* Extensions? */
--#define CBAUDEX 0010000
- #define ECHOCTL 0001000
- #define ECHOPRT 0002000
- #define ECHOKE 0004000
- #define FLUSHO 0010000
- #define PENDIN 0040000
--#define EXTPROC 0200000
- 
- #define TCOOFF 0
- #define TCOON  1
-@@ -158,3 +151,10 @@
- #define TCSANOW   0
- #define TCSADRAIN 1
- #define TCSAFLUSH 2
-+
-+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-+#define CBAUDEX 0010000
-+#define CRTSCTS  020000000000
-+#define EXTPROC 0200000
-+#define XTABS  0014000
-+#endif
-diff -Nur musl-0.9.15/arch/microblaze/syscall_arch.h musl-git/arch/microblaze/syscall_arch.h
---- musl-0.9.15/arch/microblaze/syscall_arch.h	2014-01-03 21:12:17.000000000 +0100
-+++ musl-git/arch/microblaze/syscall_arch.h	2014-03-17 16:49:44.000000000 +0100
-@@ -3,6 +3,8 @@
- ((union { long long ll; long l[2]; }){ .ll = x }).l[1]
- #define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x))
- 
-+long (__syscall)(long, ...);
-+
- #ifndef __clang__
- 
- static __inline long __syscall0(long n)
-diff -Nur musl-0.9.15/arch/mips/bits/fenv.h musl-git/arch/mips/bits/fenv.h
---- musl-0.9.15/arch/mips/bits/fenv.h	2014-01-03 21:12:17.000000000 +0100
-+++ musl-git/arch/mips/bits/fenv.h	2014-03-17 16:49:44.000000000 +0100
-@@ -1,3 +1,7 @@
-+#ifdef __mips_soft_float
-+#define FE_ALL_EXCEPT 0
-+#define FE_TONEAREST  0
-+#else
- #define FE_INEXACT    4
- #define FE_UNDERFLOW  8
- #define FE_OVERFLOW   16
-@@ -10,6 +14,7 @@
- #define FE_TOWARDZERO 1
- #define FE_UPWARD     2
- #define FE_DOWNWARD   3
-+#endif
- 
- typedef unsigned short fexcept_t;
- 
-diff -Nur musl-0.9.15/arch/mips/bits/sem.h musl-git/arch/mips/bits/sem.h
---- musl-0.9.15/arch/mips/bits/sem.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/mips/bits/sem.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,14 @@
-+struct semid_ds {
-+	struct ipc_perm sem_perm;
-+	time_t sem_otime;
-+	time_t sem_ctime;
-+#if __BYTE_ORDER == __LITTLE_ENDIAN
-+	unsigned short sem_nsems;
-+	char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
-+#else
-+	char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
-+	unsigned short sem_nsems;
-+#endif
-+	time_t __unused3;
-+	time_t __unused4;
-+};
-diff -Nur musl-0.9.15/arch/mips/bits/shm.h musl-git/arch/mips/bits/shm.h
---- musl-0.9.15/arch/mips/bits/shm.h	2014-01-03 21:12:17.000000000 +0100
-+++ musl-git/arch/mips/bits/shm.h	2014-03-17 16:49:44.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/statfs.h musl-git/arch/mips/bits/statfs.h
---- musl-0.9.15/arch/mips/bits/statfs.h	2014-01-03 21:12:17.000000000 +0100
-+++ musl-git/arch/mips/bits/statfs.h	2014-03-17 16:49:44.000000000 +0100
-@@ -1,7 +1,8 @@
- struct statfs {
--	unsigned long f_type, f_bsize;
--	fsblkcnt_t f_blocks, f_bfree, f_bavail;
-+	unsigned long f_type, f_bsize, f_frsize;
-+	fsblkcnt_t f_blocks, f_bfree;
- 	fsfilcnt_t f_files, f_ffree;
-+	fsblkcnt_t f_bavail;
- 	fsid_t f_fsid;
--	unsigned long f_namelen, f_frsize, f_flags, f_spare[4];
-+	unsigned long f_namelen, f_flags, f_spare[5];
- };
-diff -Nur musl-0.9.15/arch/mips/bits/termios.h musl-git/arch/mips/bits/termios.h
---- musl-0.9.15/arch/mips/bits/termios.h	2014-01-03 21:12:17.000000000 +0100
-+++ musl-git/arch/mips/bits/termios.h	2014-03-17 16:49:44.000000000 +0100
-@@ -77,9 +77,6 @@
- #define VT0    0000000
- #define VT1    0040000
- 
--/* ?? */
--#define XTABS  0014000
--
- #define B0       0000000
- #define B50      0000001
- #define B75      0000002
-@@ -129,12 +126,6 @@
- #define PARODD 0001000
- #define HUPCL  0002000
- #define CLOCAL 0004000
--#define CBAUDEX 0010000
--
--#define CIBAUD   002003600000
--#define CMSPAR   010000000000
--#define CRTSCTS  020000000000
--#define IBSHIFT 16
- 
- #define ISIG   0000001
- #define ICANON 0000002
-@@ -152,9 +143,6 @@
- #define PENDIN 0040000
- #define TOSTOP 0100000
- #define ITOSTOP 0100000
--#define EXTPROC 0200000
--
--#define TIOCSER_TEMT 1
- 
- #define TCOOFF 0
- #define TCOON  1
-@@ -168,3 +156,14 @@
- #define TCSANOW   0
- #define TCSADRAIN 1
- #define TCSAFLUSH 2
-+
-+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-+#define CBAUDEX 0010000
-+#define CIBAUD   002003600000
-+#define IBSHIFT 16
-+#define CMSPAR   010000000000
-+#define CRTSCTS  020000000000
-+#define EXTPROC 0200000
-+#define XTABS  0014000
-+#define TIOCSER_TEMT 1
-+#endif
-diff -Nur musl-0.9.15/arch/mips/reloc.h musl-git/arch/mips/reloc.h
---- musl-0.9.15/arch/mips/reloc.h	2014-01-03 21:12:17.000000000 +0100
-+++ musl-git/arch/mips/reloc.h	2014-03-17 16:49:44.000000000 +0100
-@@ -8,7 +8,13 @@
- #define ENDIAN_SUFFIX ""
- #endif
- 
--#define LDSO_ARCH "mips" ENDIAN_SUFFIX
-+#ifdef __mips_soft_float
-+#define FP_SUFFIX "-sf"
-+#else
-+#define FP_SUFFIX ""
-+#endif
-+
-+#define LDSO_ARCH "mips" ENDIAN_SUFFIX FP_SUFFIX
- 
- #define IS_COPY(x) ((x)==R_MIPS_COPY)
- #define IS_PLT(x) 1
-diff -Nur musl-0.9.15/arch/mips/syscall_arch.h musl-git/arch/mips/syscall_arch.h
---- musl-0.9.15/arch/mips/syscall_arch.h	2014-01-03 21:12:17.000000000 +0100
-+++ musl-git/arch/mips/syscall_arch.h	2014-03-17 16:49:44.000000000 +0100
-@@ -3,6 +3,8 @@
- ((union { long long ll; long l[2]; }){ .ll = x }).l[1]
- #define __SYSCALL_LL_O(x) 0, __SYSCALL_LL_E((x))
- 
-+long (__syscall)(long, ...);
-+
- #ifndef __clang__
- 
- #define __asm_syscall(...) do { \
-diff -Nur musl-0.9.15/arch/powerpc/bits/ipc.h musl-git/arch/powerpc/bits/ipc.h
---- musl-0.9.15/arch/powerpc/bits/ipc.h	2014-01-03 21:12:17.000000000 +0100
-+++ musl-git/arch/powerpc/bits/ipc.h	2014-03-17 16:49:44.000000000 +0100
-@@ -7,8 +7,9 @@
- 	gid_t cgid;
- 	mode_t mode;
- 	int __ipc_perm_seq;
--	long __pad1;
--	long __pad2;
-+	int __pad1;
-+	long long __pad2;
-+	long long __pad3;
- };
- 
- #define IPC_64 0x100
-diff -Nur musl-0.9.15/arch/powerpc/bits/msg.h musl-git/arch/powerpc/bits/msg.h
---- musl-0.9.15/arch/powerpc/bits/msg.h	2014-01-03 21:12:17.000000000 +0100
-+++ musl-git/arch/powerpc/bits/msg.h	2014-03-17 16:49:44.000000000 +0100
-@@ -1,12 +1,12 @@
- struct msqid_ds
- {
- 	struct ipc_perm msg_perm;
--	time_t msg_stime;
- 	int __unused1;
--	time_t msg_rtime;
-+	time_t msg_stime;
- 	int __unused2;
--	time_t msg_ctime;
-+	time_t msg_rtime;
- 	int __unused3;
-+	time_t msg_ctime;
- 	unsigned long msg_cbytes;
- 	msgqnum_t msg_qnum;
- 	msglen_t msg_qbytes;
-diff -Nur musl-0.9.15/arch/powerpc/bits/sem.h musl-git/arch/powerpc/bits/sem.h
---- musl-0.9.15/arch/powerpc/bits/sem.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/powerpc/bits/sem.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,10 @@
-+struct semid_ds {
-+	struct ipc_perm sem_perm;
-+	int __unused1;
-+	time_t sem_otime;
-+	int  __unused2;
-+	time_t sem_ctime;
-+	unsigned short __sem_nsems_pad, sem_nsems;
-+	long __unused3;
-+	long __unused4;
-+};
-diff -Nur musl-0.9.15/arch/powerpc/bits/shm.h musl-git/arch/powerpc/bits/shm.h
---- musl-0.9.15/arch/powerpc/bits/shm.h	2014-01-03 21:12:17.000000000 +0100
-+++ musl-git/arch/powerpc/bits/shm.h	2014-03-17 16:49:44.000000000 +0100
-@@ -3,16 +3,28 @@
- struct shmid_ds
- {
- 	struct ipc_perm shm_perm;
--	size_t shm_segsz;
--	time_t shm_atime;
- 	int __unused1;
--	time_t shm_dtime;
-+	time_t shm_atime;
- 	int __unused2;
--	time_t shm_ctime;
-+	time_t shm_dtime;
- 	int __unused3;
-+	time_t shm_ctime;
-+	int __unused4;
-+	size_t shm_segsz;
- 	pid_t shm_cpid;
- 	pid_t shm_lpid;
- 	unsigned long shm_nattch;
- 	unsigned long __pad1;
- 	unsigned long __pad2;
- };
-+
-+struct shminfo {
-+	unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];
-+};
-+
-+struct shm_info {
-+	int __used_ids;
-+	unsigned long shm_tot, shm_rss, shm_swp;
-+	unsigned long __swap_attempts, __swap_successes;
-+};
-+
-diff -Nur musl-0.9.15/arch/powerpc/bits/socket.h musl-git/arch/powerpc/bits/socket.h
---- musl-0.9.15/arch/powerpc/bits/socket.h	2014-01-03 21:12:17.000000000 +0100
-+++ musl-git/arch/powerpc/bits/socket.h	2014-03-17 16:49:44.000000000 +0100
-@@ -1,12 +1,12 @@
- struct msghdr
- {
- 	void *msg_name;
--	int msg_namelen;
-+	socklen_t msg_namelen;
- 	struct iovec *msg_iov;
--	unsigned long msg_iovlen;
-+	int msg_iovlen;
- 	void *msg_control;
--	unsigned long  msg_controllen;
--	unsigned msg_flags;
-+	socklen_t msg_controllen;
-+	int msg_flags;
- };
- 
- struct cmsghdr
-diff -Nur musl-0.9.15/arch/powerpc/bits/termios.h musl-git/arch/powerpc/bits/termios.h
---- musl-0.9.15/arch/powerpc/bits/termios.h	2014-01-03 21:12:17.000000000 +0100
-+++ musl-git/arch/powerpc/bits/termios.h	2014-03-17 16:49:44.000000000 +0100
-@@ -66,7 +66,6 @@
- #define TAB1	00002000
- #define TAB2	00004000
- #define TAB3	00006000
--#define XTABS	00006000
- #define CRDLY	00030000
- #define CR0	00000000
- #define CR1	00010000
-@@ -101,7 +100,6 @@
- #define B38400	0000017
- #define EXTA	B19200
- #define EXTB	B38400
--#define CBAUDEX	0000000
- #define B57600	00020
- #define B115200	00021
- #define B230400	00022
-@@ -120,9 +118,6 @@
- #define B4000000	00036
- #define BOTHER	00037
- 
--#define CIBAUD	077600000
--#define IBSHIFT 16
--
- #define CSIZE	00001400
- #define CS5	00000000
- #define CS6	00000400
-@@ -136,8 +131,6 @@
- #define HUPCL	00040000
- 
- #define CLOCAL	00100000
--#define CMSPAR	010000000000
--#define CRTSCTS	020000000000
- 
- #define ISIG	0x00000080
- #define ICANON	0x00000100
-@@ -154,7 +147,6 @@
- #define FLUSHO	0x00800000
- #define PENDIN	0x20000000
- #define IEXTEN	0x00000400
--#define EXTPROC 0x10000000
- 
- #define TCOOFF	0
- #define TCOON	1
-@@ -168,3 +160,13 @@
- #define TCSANOW		0
- #define TCSADRAIN	1
- #define TCSAFLUSH	2
-+
-+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-+#define CBAUDEX	0000000
-+#define CIBAUD	077600000
-+#define IBSHIFT 16
-+#define CMSPAR	010000000000
-+#define CRTSCTS	020000000000
-+#define EXTPROC 0x10000000
-+#define XTABS	00006000
-+#endif
-diff -Nur musl-0.9.15/arch/sh/atomic.h musl-git/arch/sh/atomic.h
---- musl-0.9.15/arch/sh/atomic.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/sh/atomic.h	2014-03-17 16:49:44.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/sh/bits/alltypes.h.in musl-git/arch/sh/bits/alltypes.h.in
---- musl-0.9.15/arch/sh/bits/alltypes.h.in	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/sh/bits/alltypes.h.in	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,23 @@
-+#define _Addr int
-+#define _Int64 long long
-+#define _Reg int
-+
-+TYPEDEF __builtin_va_list va_list;
-+TYPEDEF __builtin_va_list __isoc_va_list;
-+
-+#ifndef __cplusplus
-+TYPEDEF long wchar_t;
-+#endif
-+TYPEDEF unsigned wint_t;
-+
-+TYPEDEF float float_t;
-+TYPEDEF double double_t;
-+
-+TYPEDEF long time_t;
-+TYPEDEF long suseconds_t;
-+
-+TYPEDEF struct { union { int __i[9]; unsigned __s[9]; } __u; } pthread_attr_t;
-+TYPEDEF struct { union { int __i[6]; void *__p[6]; } __u; } pthread_mutex_t;
-+TYPEDEF struct { union { int __i[12]; void *__p[12]; } __u; } pthread_cond_t;
-+TYPEDEF struct { union { int __i[8]; void *__p[8]; } __u; } pthread_rwlock_t;
-+TYPEDEF struct { union { int __i[5]; void *__p[5]; } __u; } pthread_barrier_t;
-diff -Nur musl-0.9.15/arch/sh/bits/endian.h musl-git/arch/sh/bits/endian.h
---- musl-0.9.15/arch/sh/bits/endian.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/sh/bits/endian.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,5 @@
-+#if __BIG_ENDIAN__
-+#define __BYTE_ORDER __BIG_ENDIAN
-+#else
-+#define __BYTE_ORDER __LITTLE_ENDIAN
-+#endif
-diff -Nur musl-0.9.15/arch/sh/bits/errno.h musl-git/arch/sh/bits/errno.h
---- musl-0.9.15/arch/sh/bits/errno.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/sh/bits/errno.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,134 @@
-+#define EPERM            1
-+#define ENOENT           2
-+#define ESRCH            3
-+#define EINTR            4
-+#define EIO              5
-+#define ENXIO            6
-+#define E2BIG            7
-+#define ENOEXEC          8
-+#define EBADF            9
-+#define ECHILD          10
-+#define EAGAIN          11
-+#define ENOMEM          12
-+#define EACCES          13
-+#define EFAULT          14
-+#define ENOTBLK         15
-+#define EBUSY           16
-+#define EEXIST          17
-+#define EXDEV           18
-+#define ENODEV          19
-+#define ENOTDIR         20
-+#define EISDIR          21
-+#define EINVAL          22
-+#define ENFILE          23
-+#define EMFILE          24
-+#define ENOTTY          25
-+#define ETXTBSY         26
-+#define EFBIG           27
-+#define ENOSPC          28
-+#define ESPIPE          29
-+#define EROFS           30
-+#define EMLINK          31
-+#define EPIPE           32
-+#define EDOM            33
-+#define ERANGE          34
-+#define EDEADLK         35
-+#define ENAMETOOLONG    36
-+#define ENOLCK          37
-+#define ENOSYS          38
-+#define ENOTEMPTY       39
-+#define ELOOP           40
-+#define EWOULDBLOCK     EAGAIN
-+#define ENOMSG          42
-+#define EIDRM           43
-+#define ECHRNG          44
-+#define EL2NSYNC        45
-+#define EL3HLT          46
-+#define EL3RST          47
-+#define ELNRNG          48
-+#define EUNATCH         49
-+#define ENOCSI          50
-+#define EL2HLT          51
-+#define EBADE           52
-+#define EBADR           53
-+#define EXFULL          54
-+#define ENOANO          55
-+#define EBADRQC         56
-+#define EBADSLT         57
-+#define EDEADLOCK       EDEADLK
-+#define EBFONT          59
-+#define ENOSTR          60
-+#define ENODATA         61
-+#define ETIME           62
-+#define ENOSR           63
-+#define ENONET          64
-+#define ENOPKG          65
-+#define EREMOTE         66
-+#define ENOLINK         67
-+#define EADV            68
-+#define ESRMNT          69
-+#define ECOMM           70
-+#define EPROTO          71
-+#define EMULTIHOP       72
-+#define EDOTDOT         73
-+#define EBADMSG         74
-+#define EOVERFLOW       75
-+#define ENOTUNIQ        76
-+#define EBADFD          77
-+#define EREMCHG         78
-+#define ELIBACC         79
-+#define ELIBBAD         80
-+#define ELIBSCN         81
-+#define ELIBMAX         82
-+#define ELIBEXEC        83
-+#define EILSEQ          84
-+#define ERESTART        85
-+#define ESTRPIPE        86
-+#define EUSERS          87
-+#define ENOTSOCK        88
-+#define EDESTADDRREQ    89
-+#define EMSGSIZE        90
-+#define EPROTOTYPE      91
-+#define ENOPROTOOPT     92
-+#define EPROTONOSUPPORT 93
-+#define ESOCKTNOSUPPORT 94
-+#define EOPNOTSUPP      95
-+#define ENOTSUP         EOPNOTSUPP
-+#define EPFNOSUPPORT    96
-+#define EAFNOSUPPORT    97
-+#define EADDRINUSE      98
-+#define EADDRNOTAVAIL   99
-+#define ENETDOWN        100
-+#define ENETUNREACH     101
-+#define ENETRESET       102
-+#define ECONNABORTED    103
-+#define ECONNRESET      104
-+#define ENOBUFS         105
-+#define EISCONN         106
-+#define ENOTCONN        107
-+#define ESHUTDOWN       108
-+#define ETOOMANYREFS    109
-+#define ETIMEDOUT       110
-+#define ECONNREFUSED    111
-+#define EHOSTDOWN       112
-+#define EHOSTUNREACH    113
-+#define EALREADY        114
-+#define EINPROGRESS     115
-+#define ESTALE          116
-+#define EUCLEAN         117
-+#define ENOTNAM         118
-+#define ENAVAIL         119
-+#define EISNAM          120
-+#define EREMOTEIO       121
-+#define EDQUOT          122
-+#define ENOMEDIUM       123
-+#define EMEDIUMTYPE     124
-+#define ECANCELED       125
-+#define ENOKEY          126
-+#define EKEYEXPIRED     127
-+#define EKEYREVOKED     128
-+#define EKEYREJECTED    129
-+#define EOWNERDEAD      130
-+#define ENOTRECOVERABLE 131
-+#define ERFKILL         132
-+#define EHWPOISON       133
-diff -Nur musl-0.9.15/arch/sh/bits/fcntl.h musl-git/arch/sh/bits/fcntl.h
---- musl-0.9.15/arch/sh/bits/fcntl.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/sh/bits/fcntl.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,39 @@
-+#define O_CREAT        0100
-+#define O_EXCL         0200
-+#define O_NOCTTY       0400
-+#define O_TRUNC       01000
-+#define O_APPEND      02000
-+#define O_NONBLOCK    04000
-+#define O_DSYNC      010000
-+#define O_SYNC     04010000
-+#define O_RSYNC    04010000
-+#define O_DIRECTORY 0200000
-+#define O_NOFOLLOW  0400000
-+#define O_CLOEXEC  02000000
-+
-+#define O_ASYNC      020000
-+#define O_DIRECT     040000
-+#define O_LARGEFILE 0100000
-+#define O_NOATIME  01000000
-+#define O_TMPFILE 020200000
-+#define O_NDELAY O_NONBLOCK
-+
-+#define F_DUPFD  0
-+#define F_GETFD  1
-+#define F_SETFD  2
-+#define F_GETFL  3
-+#define F_SETFL  4
-+
-+#define F_SETOWN 8
-+#define F_GETOWN 9
-+#define F_SETSIG 10
-+#define F_GETSIG 11
-+
-+#define F_GETLK 12
-+#define F_SETLK 13
-+#define F_SETLKW 14
-+
-+#define F_SETOWN_EX 15
-+#define F_GETOWN_EX 16
-+
-+#define F_GETOWNER_UIDS 17
-diff -Nur musl-0.9.15/arch/sh/bits/fenv.h musl-git/arch/sh/bits/fenv.h
---- musl-0.9.15/arch/sh/bits/fenv.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/sh/bits/fenv.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,26 @@
-+#ifndef __SH_FPU_ANY__
-+
-+#define FE_ALL_EXCEPT 0
-+#define FE_TONEAREST  0
-+
-+#else
-+
-+#define FE_TONEAREST  0
-+#define FE_TOWARDZERO 1
-+
-+#define FE_INEXACT    0x04
-+#define FE_UNDERFLOW  0x08
-+#define FE_OVERFLOW   0x10
-+#define FE_DIVBYZERO  0x20
-+#define FE_INVALID    0x40
-+#define FE_ALL_EXCEPT 0x7c
-+
-+#endif
-+
-+typedef unsigned long fexcept_t;
-+
-+typedef struct {
-+	unsigned long __cw;
-+} fenv_t;
-+
-+#define FE_DFL_ENV    ((const fenv_t *) -1)
-diff -Nur musl-0.9.15/arch/sh/bits/float.h musl-git/arch/sh/bits/float.h
---- musl-0.9.15/arch/sh/bits/float.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/sh/bits/float.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,17 @@
-+#define FLT_ROUNDS 1
-+#define FLT_EVAL_METHOD 0
-+
-+#define LDBL_TRUE_MIN 4.94065645841246544177e-324L
-+#define LDBL_MIN 2.22507385850720138309e-308L
-+#define LDBL_MAX 1.79769313486231570815e+308L
-+#define LDBL_EPSILON 2.22044604925031308085e-16L
-+
-+#define LDBL_MANT_DIG 53
-+#define LDBL_MIN_EXP (-1021)
-+#define LDBL_MAX_EXP 1024
-+
-+#define LDBL_DIG 15
-+#define LDBL_MIN_10_EXP (-307)
-+#define LDBL_MAX_10_EXP 308
-+
-+#define DECIMAL_DIG 17
-diff -Nur musl-0.9.15/arch/sh/bits/ioctl.h musl-git/arch/sh/bits/ioctl.h
---- musl-0.9.15/arch/sh/bits/ioctl.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/sh/bits/ioctl.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,205 @@
-+#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) )
-+#define _IOC_NONE  0U
-+#define _IOC_WRITE 1U
-+#define _IOC_READ  2U
-+
-+#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0)
-+#define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c))
-+#define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c))
-+#define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c))
-+
-+#define FIOCLEX             _IO('f',  1)
-+#define FIONCLEX            _IO('f',  2)
-+#define FIOASYNC            _IOW('f', 125, int)
-+#define FIONBIO             _IOW('f', 126, int)
-+#define FIONREAD            _IOR('f', 127, int)
-+#define TIOCINQ             FIONREAD
-+#define FIOQSIZE            _IOR('f', 128, char[8])
-+
-+#define TCGETA              _IOR('t', 23, char[18])
-+#define TCSETA              _IOW('t', 24, char[18])
-+#define TCSETAW             _IOW('t', 25, char[18])
-+#define TCSETAF             _IOW('t', 28, char[18])
-+
-+#define TCSBRK              _IO('t', 29)
-+#define TCXONC              _IO('t', 30)
-+#define TCFLSH              _IO('t', 31)
-+
-+#define TIOCSWINSZ          _IOW('t', 103, char[8])
-+#define TIOCGWINSZ          _IOR('t', 104, char[8])
-+#define TIOCSTART           _IO('t',  110)
-+#define TIOCSTOP            _IO('t',  111)
-+#define TIOCOUTQ            _IOR('t', 115, int)
-+
-+#define TIOCSPGRP           _IOW('t', 118, int)
-+#define TIOCGPGRP           _IOR('t', 119, int)
-+
-+#define TIOCEXCL            _IO('T', 12)
-+#define TIOCNXCL            _IO('T', 13)
-+#define TIOCSCTTY           _IO('T', 14)
-+
-+#define TIOCSTI             _IOW('T', 18, char)
-+#define TIOCMGET            _IOR('T', 21, unsigned int)
-+#define TIOCMBIS            _IOW('T', 22, unsigned int)
-+#define TIOCMBIC            _IOW('T', 23, unsigned int)
-+#define TIOCMSET            _IOW('T', 24, unsigned int)
-+#define TIOCM_LE            0x001
-+#define TIOCM_DTR           0x002
-+#define TIOCM_RTS           0x004
-+#define TIOCM_ST            0x008
-+#define TIOCM_SR            0x010
-+#define TIOCM_CTS           0x020
-+#define TIOCM_CAR           0x040
-+#define TIOCM_RNG           0x080
-+#define TIOCM_DSR           0x100
-+#define TIOCM_CD            TIOCM_CAR
-+#define TIOCM_RI            TIOCM_RNG
-+#define TIOCM_OUT1          0x2000
-+#define TIOCM_OUT2          0x4000
-+#define TIOCM_LOOP          0x8000
-+
-+#define TIOCGSOFTCAR        _IOR('T', 25, unsigned int)
-+#define TIOCSSOFTCAR        _IOW('T', 26, unsigned int)
-+#define TIOCLINUX           _IOW('T', 28, char)
-+#define TIOCCONS            _IO('T',  29)
-+#define TIOCGSERIAL         _IOR('T', 30, char[60])
-+#define TIOCSSERIAL         _IOW('T', 31, char[60])
-+#define TIOCPKT             _IOW('T', 32, int)
-+#define TIOCPKT_DATA        0
-+#define TIOCPKT_FLUSHREAD   1
-+#define TIOCPKT_FLUSHWRITE  2
-+#define TIOCPKT_STOP        4
-+#define TIOCPKT_START       8
-+#define TIOCPKT_NOSTOP      16
-+#define TIOCPKT_DOSTOP      32
-+#define TIOCPKT_IOCTL       64
-+
-+#define TIOCNOTTY           _IO('T',  34)
-+#define TIOCSETD            _IOW('T', 35, int)
-+#define TIOCGETD            _IOR('T', 36, int)
-+#define TCSBRKP             _IOW('T', 37, int)
-+#define TIOCSBRK            _IO('T',  39)
-+#define TIOCCBRK            _IO('T',  40)
-+#define TIOCGSID            _IOR('T', 41, int)
-+#define TCGETS              _IOR('T', 42, char[44])
-+#define TCSETS              _IOW('T', 43, char[44])
-+#define TCSETSW             _IOW('T', 44, char[44])
-+#define TCSETSF             _IOW('T', 45, char[44])
-+#define TIOCGPTN            _IOR('T', 48, unsigned int)
-+#define TIOCSPTLCK          _IOW('T', 49, int)
-+#define TIOCGDEV            _IOR('T', 50, unsigned int)
-+#define TIOCSIG             _IOW('T', 54, int)
-+#define TIOCVHANGUP         _IO('T',  55)
-+#define TIOCGPKT            _IOR('T', 56, int)
-+#define TIOCGPTLCK          _IOR('T', 57, int)
-+#define TIOCGEXCL           _IOR('T', 64, int)
-+
-+#define TIOCSERCONFIG       _IO('T',  83)
-+#define TIOCSERGWILD        _IOR('T', 84, int)
-+#define TIOCSERSWILD        _IOW('T', 85, int)
-+#define TIOCGLCKTRMIOS      _IO('T',  86)
-+#define TIOCSLCKTRMIOS      _IO('T',  87)
-+#define TIOCSERGSTRUCT      _IOR('T', 88, char[216])
-+#define TIOCSERGETLSR       _IOR('T', 89, unsigned int)
-+#define TIOCSER_TEMT        0x01
-+#define TIOCSERGETMULTI     _IOR('T', 90, char[168])
-+#define TIOCSERSETMULTI     _IOW('T', 91, char[168])
-+
-+#define TIOCMIWAIT          _IO('T', 92)
-+#define TIOCGICOUNT         _IO('T', 93)
-+
-+struct winsize {
-+    unsigned short ws_row;
-+    unsigned short ws_col;
-+    unsigned short ws_xpixel;
-+    unsigned short ws_ypixel;
-+};
-+
-+#define TIOCM_MODEM_BITS TIOCM_OUT2
-+
-+#define N_TTY           0
-+#define N_SLIP          1
-+#define N_MOUSE         2
-+#define N_PPP           3
-+#define N_STRIP         4
-+#define N_AX25          5
-+#define N_X25           6
-+#define N_6PACK         7
-+#define N_MASC          8
-+#define N_R3964         9
-+#define N_PROFIBUS_FDL  10
-+#define N_IRDA          11
-+#define N_SMSBLOCK      12
-+#define N_HDLC          13
-+#define N_SYNC_PPP      14
-+#define N_HCI           15
-+
-+#define FIOGETOWN       _IOR('f', 123, int)
-+#define FIOSETOWN       _IOW('f', 124, int)
-+
-+#define SIOCATMARK      _IOR('s', 7, int)
-+#define SIOCSPGRP       _IOW('s', 8, int)
-+#define SIOCGPGRP       _IOW('s', 9, int)
-+#define SIOCGSTAMP      _IOR('s', 100, char[8])
-+
-+#define SIOCADDRT       0x890B
-+#define SIOCDELRT       0x890C
-+#define SIOCRTMSG       0x890D
-+
-+#define SIOCGIFNAME     0x8910
-+#define SIOCSIFLINK     0x8911
-+#define SIOCGIFCONF     0x8912
-+#define SIOCGIFFLAGS    0x8913
-+#define SIOCSIFFLAGS    0x8914
-+#define SIOCGIFADDR     0x8915
-+#define SIOCSIFADDR     0x8916
-+#define SIOCGIFDSTADDR  0x8917
-+#define SIOCSIFDSTADDR  0x8918
-+#define SIOCGIFBRDADDR  0x8919
-+#define SIOCSIFBRDADDR  0x891a
-+#define SIOCGIFNETMASK  0x891b
-+#define SIOCSIFNETMASK  0x891c
-+#define SIOCGIFMETRIC   0x891d
-+#define SIOCSIFMETRIC   0x891e
-+#define SIOCGIFMEM      0x891f
-+#define SIOCSIFMEM      0x8920
-+#define SIOCGIFMTU      0x8921
-+#define SIOCSIFMTU      0x8922
-+#define SIOCSIFHWADDR   0x8924
-+#define SIOCGIFENCAP    0x8925
-+#define SIOCSIFENCAP    0x8926
-+#define SIOCGIFHWADDR   0x8927
-+#define SIOCGIFSLAVE    0x8929
-+#define SIOCSIFSLAVE    0x8930
-+#define SIOCADDMULTI    0x8931
-+#define SIOCDELMULTI    0x8932
-+#define SIOCGIFINDEX    0x8933
-+#define SIOGIFINDEX     SIOCGIFINDEX
-+#define SIOCSIFPFLAGS   0x8934
-+#define SIOCGIFPFLAGS   0x8935
-+#define SIOCDIFADDR     0x8936
-+#define SIOCSIFHWBROADCAST 0x8937
-+#define SIOCGIFCOUNT    0x8938
-+
-+#define SIOCGIFBR       0x8940
-+#define SIOCSIFBR       0x8941
-+
-+#define SIOCGIFTXQLEN   0x8942
-+#define SIOCSIFTXQLEN   0x8943
-+
-+#define SIOCDARP        0x8953
-+#define SIOCGARP        0x8954
-+#define SIOCSARP        0x8955
-+
-+#define SIOCDRARP       0x8960
-+#define SIOCGRARP       0x8961
-+#define SIOCSRARP       0x8962
-+
-+#define SIOCGIFMAP      0x8970
-+#define SIOCSIFMAP      0x8971
-+
-+#define SIOCADDDLCI     0x8980
-+#define SIOCDELDLCI     0x8981
-+
-+#define SIOCDEVPRIVATE      0x89F0
-+#define SIOCPROTOPRIVATE    0x89E0
-diff -Nur musl-0.9.15/arch/sh/bits/ipc.h musl-git/arch/sh/bits/ipc.h
---- musl-0.9.15/arch/sh/bits/ipc.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/sh/bits/ipc.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,14 @@
-+struct ipc_perm
-+{
-+	key_t __ipc_perm_key;
-+	uid_t uid;
-+	gid_t gid;
-+	uid_t cuid;
-+	gid_t cgid;
-+	mode_t mode;
-+	int __ipc_perm_seq;
-+	long __pad1;
-+	long __pad2;
-+};
-+
-+#define IPC_64 0x100
-diff -Nur musl-0.9.15/arch/sh/bits/limits.h musl-git/arch/sh/bits/limits.h
---- musl-0.9.15/arch/sh/bits/limits.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/sh/bits/limits.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,8 @@
-+#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
-+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-+#define PAGE_SIZE 4096
-+#define LONG_BIT 32
-+#endif
-+
-+#define LONG_MAX  0x7fffffffL
-+#define LLONG_MAX  0x7fffffffffffffffLL
-diff -Nur musl-0.9.15/arch/sh/bits/mman.h musl-git/arch/sh/bits/mman.h
---- musl-0.9.15/arch/sh/bits/mman.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/sh/bits/mman.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,62 @@
-+#define MAP_FAILED ((void *) -1)
-+
-+#define	PROT_NONE      0
-+#define	PROT_READ      1
-+#define	PROT_WRITE     2
-+#define	PROT_EXEC      4
-+#define	PROT_GROWSDOWN 0x01000000
-+#define	PROT_GROWSUP   0x02000000
-+
-+#define	MAP_SHARED     0x01
-+#define	MAP_PRIVATE    0x02
-+#define	MAP_FIXED      0x10
-+
-+#define MAP_TYPE       0x0f
-+#define MAP_FILE       0x00
-+#define MAP_ANON       0x20
-+#define MAP_ANONYMOUS  MAP_ANON
-+#define MAP_32BIT      0x40
-+#define MAP_NORESERVE  0x4000
-+#define MAP_GROWSDOWN  0x0100
-+#define MAP_DENYWRITE  0x0800
-+#define MAP_EXECUTABLE 0x1000
-+#define MAP_LOCKED     0x2000
-+#define MAP_POPULATE   0x8000
-+#define MAP_NONBLOCK   0x10000
-+#define MAP_STACK      0x20000
-+#define MAP_HUGETLB    0x40000
-+
-+#define POSIX_MADV_NORMAL       0
-+#define POSIX_MADV_RANDOM       1
-+#define POSIX_MADV_SEQUENTIAL   2
-+#define POSIX_MADV_WILLNEED     3
-+#define POSIX_MADV_DONTNEED     4
-+
-+#define MS_ASYNC        1
-+#define MS_INVALIDATE   2
-+#define MS_SYNC         4
-+
-+#define MCL_CURRENT     1
-+#define MCL_FUTURE      2
-+
-+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-+#define MADV_NORMAL      0
-+#define MADV_RANDOM      1
-+#define MADV_SEQUENTIAL  2
-+#define MADV_WILLNEED    3
-+#define MADV_DONTNEED    4
-+#define MADV_REMOVE      9
-+#define MADV_DONTFORK    10
-+#define MADV_DOFORK      11
-+#define MADV_MERGEABLE   12
-+#define MADV_UNMERGEABLE 13
-+#define MADV_HUGEPAGE    14
-+#define MADV_NOHUGEPAGE  15
-+#define MADV_DONTDUMP    16
-+#define MADV_DODUMP      17
-+#define MADV_HWPOISON    100
-+#define MADV_SOFT_OFFLINE 101
-+
-+#define MREMAP_MAYMOVE  1
-+#define MREMAP_FIXED    2
-+#endif
-diff -Nur musl-0.9.15/arch/sh/bits/msg.h musl-git/arch/sh/bits/msg.h
---- musl-0.9.15/arch/sh/bits/msg.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/sh/bits/msg.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,16 @@
-+struct msqid_ds
-+{
-+	struct ipc_perm msg_perm;
-+	time_t msg_stime;
-+	int __unused1;
-+	time_t msg_rtime;
-+	int __unused2;
-+	time_t msg_ctime;
-+	int __unused3;
-+	unsigned long msg_cbytes;
-+	msgqnum_t msg_qnum;
-+	msglen_t msg_qbytes;
-+	pid_t msg_lspid;
-+	pid_t msg_lrpid;
-+	unsigned long __unused[2];
-+};
-diff -Nur musl-0.9.15/arch/sh/bits/posix.h musl-git/arch/sh/bits/posix.h
---- musl-0.9.15/arch/sh/bits/posix.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/sh/bits/posix.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,2 @@
-+#define _POSIX_V6_ILP32_OFFBIG  1
-+#define _POSIX_V7_ILP32_OFFBIG  1
-diff -Nur musl-0.9.15/arch/sh/bits/sem.h musl-git/arch/sh/bits/sem.h
---- musl-0.9.15/arch/sh/bits/sem.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/sh/bits/sem.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,16 @@
-+struct semid_ds {
-+	struct ipc_perm sem_perm;
-+	time_t sem_otime;
-+	time_t __unused1;
-+	time_t sem_ctime;
-+	time_t __unused2;
-+#if __BYTE_ORDER == __LITTLE_ENDIAN
-+	unsigned short sem_nsems;
-+	char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
-+#else
-+	char __sem_nsems_pad[sizeof(time_t)-sizeof(short)];
-+	unsigned short sem_nsems;
-+#endif
-+	time_t __unused3;
-+	time_t __unused4;
-+};
-diff -Nur musl-0.9.15/arch/sh/bits/setjmp.h musl-git/arch/sh/bits/setjmp.h
---- musl-0.9.15/arch/sh/bits/setjmp.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/sh/bits/setjmp.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1 @@
-+typedef unsigned long __jmp_buf[13];
-diff -Nur musl-0.9.15/arch/sh/bits/shm.h musl-git/arch/sh/bits/shm.h
---- musl-0.9.15/arch/sh/bits/shm.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/sh/bits/shm.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,28 @@
-+#define SHMLBA 16384
-+
-+struct shmid_ds
-+{
-+	struct ipc_perm shm_perm;
-+	size_t shm_segsz;
-+	time_t shm_atime;
-+	int __unused1;
-+	time_t shm_dtime;
-+	int __unused2;
-+	time_t shm_ctime;
-+	int __unused3;
-+	pid_t shm_cpid;
-+	pid_t shm_lpid;
-+	unsigned long shm_nattch;
-+	unsigned long __pad1;
-+	unsigned long __pad2;
-+};
-+
-+struct shminfo {
-+	unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4];
-+};
-+
-+struct shm_info {
-+	int __used_ids;
-+	unsigned long shm_tot, shm_rss, shm_swp;
-+	unsigned long __swap_attempts, __swap_successes;
-+};
-diff -Nur musl-0.9.15/arch/sh/bits/signal.h musl-git/arch/sh/bits/signal.h
---- musl-0.9.15/arch/sh/bits/signal.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/sh/bits/signal.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,76 @@
-+#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
-+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-+
-+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-+typedef int greg_t, gregset_t[16];
-+typedef int freg_t, fpregset_t[16];
-+typedef struct sigcontext {
-+	unsigned long oldmask;
-+	unsigned long sc_regs[16];
-+	unsigned long sc_pc, sc_pr, sc_sr;
-+	unsigned long sc_gbr, sc_mach, sc_macl;
-+	unsigned long sc_fpregs[16];
-+	unsigned long sc_xfpregs[16];
-+	unsigned int sc_fpscr, sc_fpul, sc_ownedfp;
-+} mcontext_t;
-+#else
-+typedef struct {
-+	unsigned long __regs[58];
-+} mcontext_t;
-+#endif
-+
-+typedef struct __ucontext {
-+	unsigned long uc_flags;
-+	struct __ucontext *uc_link;
-+	stack_t uc_stack;
-+	mcontext_t uc_mcontext;
-+	sigset_t uc_sigmask;
-+} ucontext_t;
-+
-+#define SA_NOCLDSTOP  1
-+#define SA_NOCLDWAIT  2
-+#define SA_SIGINFO    4
-+#define SA_ONSTACK    0x08000000
-+#define SA_RESTART    0x10000000
-+#define SA_NODEFER    0x40000000
-+#define SA_RESETHAND  0x80000000
-+#define SA_RESTORER   0x04000000
-+
-+#endif
-+
-+#define SIGHUP    1
-+#define SIGINT    2
-+#define SIGQUIT   3
-+#define SIGILL    4
-+#define SIGTRAP   5
-+#define SIGABRT   6
-+#define SIGIOT    SIGABRT
-+#define SIGBUS    7
-+#define SIGFPE    8
-+#define SIGKILL   9
-+#define SIGUSR1   10
-+#define SIGSEGV   11
-+#define SIGUSR2   12
-+#define SIGPIPE   13
-+#define SIGALRM   14
-+#define SIGTERM   15
-+#define SIGSTKFLT 16
-+#define SIGCHLD   17
-+#define SIGCONT   18
-+#define SIGSTOP   19
-+#define SIGTSTP   20
-+#define SIGTTIN   21
-+#define SIGTTOU   22
-+#define SIGURG    23
-+#define SIGXCPU   24
-+#define SIGXFSZ   25
-+#define SIGVTALRM 26
-+#define SIGPROF   27
-+#define SIGWINCH  28
-+#define SIGIO     29
-+#define SIGPOLL   29
-+#define SIGPWR    30
-+#define SIGSYS    31
-+#define SIGUNUSED SIGSYS
-+
-+#define _NSIG 65
-diff -Nur musl-0.9.15/arch/sh/bits/socket.h musl-git/arch/sh/bits/socket.h
---- musl-0.9.15/arch/sh/bits/socket.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/sh/bits/socket.h	2014-03-17 16:49:44.000000000 +0100
-@@ -0,0 +1,17 @@
-+struct msghdr
-+{
-+	void *msg_name;
-+	socklen_t msg_namelen;
-+	struct iovec *msg_iov;
-+	int msg_iovlen;
-+	void *msg_control;
-+	socklen_t msg_controllen;
-+	int msg_flags;
-+};
-+
-+struct cmsghdr
-+{
-+	socklen_t cmsg_len;
-+	int cmsg_level;
-+	int cmsg_type;
-+};
-diff -Nur musl-0.9.15/arch/sh/bits/statfs.h musl-git/arch/sh/bits/statfs.h
---- musl-0.9.15/arch/sh/bits/statfs.h	1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/arch/sh/bits/statfs.h	2014-03-17 16:49:44.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 lon