summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BUGS3
-rw-r--r--Config.in6
-rw-r--r--TODO3
-rw-r--r--mk/build.mk4
-rw-r--r--mk/host-bottom.mk8
-rw-r--r--mk/kernel-ver.mk6
-rw-r--r--mk/package.mk6
-rw-r--r--mk/pkg-bottom.mk2
-rw-r--r--package/avahi/Makefile4
-rw-r--r--package/base-files/Makefile20
-rwxr-xr-xpackage/base-files/src/etc/network/if-post-down.d/03-wireless5
-rwxr-xr-xpackage/base-files/src/etc/network/if-pre-up.d/04-wireless2
-rwxr-xr-xpackage/firefox/files/firefox2
-rw-r--r--package/heimdal/Makefile3
-rw-r--r--package/libpcap/Makefile3
-rw-r--r--package/mpd/Makefile24
-rw-r--r--package/nss/Makefile4
-rw-r--r--package/strace/Makefile2
-rw-r--r--package/strace/patches/patch-defs_h33
-rw-r--r--package/strace/patches/patch-desc_c11
-rw-r--r--package/strace/patches/patch-net_c17
-rw-r--r--package/strace/patches/patch-process_c49
-rw-r--r--package/strace/patches/patch-signal_c22
-rw-r--r--package/strace/patches/patch-syscall_c17
-rw-r--r--package/strace/patches/patch-time_c14
-rw-r--r--rules.mk2
-rwxr-xr-xscripts/create-pkg1
-rw-r--r--target/arm/Makefile12
-rw-r--r--target/arm/kernel.config1116
-rw-r--r--target/arm/kernel.config.sharp-zaurus1614
-rw-r--r--target/arm/kernel/qemu-arm-spitz53
-rw-r--r--target/arm/kernel/qemu-arm-versatilepb (renamed from target/arm/kernel/qemu-arm-versatile)3
-rw-r--r--target/arm/kernel/qemu-arm-vexpress-a928
-rw-r--r--target/arm/kernel/sharp-zaurus53
-rw-r--r--target/arm/sys-available/acmesystems-foxg201
-rw-r--r--target/arm/sys-available/cubox-i3
-rw-r--r--target/arm/sys-available/keyasic-ka20005
-rw-r--r--target/arm/sys-available/qemu-arm2
-rw-r--r--target/arm/sys-available/raspberry-pi3
-rw-r--r--target/arm/sys-available/sharp-zaurus7
-rw-r--r--target/arm/sys-available/toolchain-arm1
-rw-r--r--target/arm/sys-available/toolchain-armeb1
-rw-r--r--target/config/Config.in107
-rw-r--r--target/config/Config.in.runtime22
-rw-r--r--target/linux/Config.in2
-rw-r--r--target/linux/config/Config.in.cpu5
-rw-r--r--target/linux/config/Config.in.kernel18
-rw-r--r--target/linux/config/Config.in.netdevice10
-rw-r--r--target/linux/config/Config.in.netfilter.ip44
-rw-r--r--target/linux/config/Config.in.serial8
-rw-r--r--target/linux/config/Config.in.systems61
-rw-r--r--target/linux/patches/3.4.82/bsd-compatibility.patch (renamed from target/linux/patches/3.4.71/bsd-compatibility.patch)0
-rw-r--r--target/linux/patches/3.4.82/defaults.patch (renamed from target/linux/patches/3.4.71/defaults.patch)0
-rw-r--r--target/linux/patches/3.4.82/gemalto.patch (renamed from target/linux/patches/3.4.71/gemalto.patch)0
-rw-r--r--target/linux/patches/3.4.82/lemote-rfkill.patch (renamed from target/linux/patches/3.4.71/lemote-rfkill.patch)0
-rw-r--r--target/linux/patches/3.4.82/module-alloc-size-check.patch (renamed from target/linux/patches/3.4.71/module-alloc-size-check.patch)0
-rw-r--r--target/linux/patches/3.4.82/non-static.patch (renamed from target/linux/patches/3.4.71/non-static.patch)0
-rw-r--r--target/linux/patches/3.4.82/sparc-include.patch (renamed from target/linux/patches/3.4.71/sparc-include.patch)0
-rw-r--r--target/linux/patches/3.4.82/startup.patch (renamed from target/linux/patches/3.4.71/startup.patch)0
-rw-r--r--target/linux/patches/3.4.82/usb-defaults-off.patch (renamed from target/linux/patches/3.4.71/usb-defaults-off.patch)0
-rw-r--r--target/linux/patches/3.4.82/uuid.patch (renamed from target/linux/patches/3.4.71/uuid.patch)0
-rw-r--r--target/linux/patches/3.4.82/vga-cons-default-off.patch (renamed from target/linux/patches/3.4.71/vga-cons-default-off.patch)0
-rw-r--r--target/linux/patches/3.4.82/wlan-cf.patch (renamed from target/linux/patches/3.4.71/wlan-cf.patch)0
-rw-r--r--target/linux/patches/3.4.82/zlib-inflate.patch (renamed from target/linux/patches/3.4.71/zlib-inflate.patch)0
-rw-r--r--target/mips/Makefile6
-rw-r--r--target/mips/kernel/qemu-mips644
-rw-r--r--target/mips/kernel/qemu-mips64el4
-rw-r--r--target/packages/pkg-available/console31
-rw-r--r--target/packages/pkg-available/development9
-rw-r--r--target/packages/pkg-available/xorg24
-rw-r--r--target/ppc/kernel/qemu-ppc3
-rw-r--r--target/tools/mtd-utils/Makefile6
-rw-r--r--target/tools/mtd-utils/patches/lzo.patch38
-rw-r--r--target/x86/Makefile6
-rw-r--r--target/x86_64/Makefile6
-rw-r--r--toolchain/eglibc/Makefile4
-rw-r--r--toolchain/eglibc/Makefile.inc2
-rw-r--r--toolchain/gcc/Makefile29
-rw-r--r--toolchain/glibc/Makefile4
-rw-r--r--toolchain/glibc/Makefile.inc2
-rw-r--r--toolchain/kernel-headers/patches/3.4.82/aufs2.patch (renamed from toolchain/kernel-headers/patches/3.4.71/aufs2.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.4.82/linux-gcc-check.patch (renamed from toolchain/kernel-headers/patches/3.4.71/linux-gcc-check.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.4.82/microperl.patch (renamed from toolchain/kernel-headers/patches/3.4.71/microperl.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.4.82/mkpiggy.patch (renamed from toolchain/kernel-headers/patches/3.4.71/mkpiggy.patch)0
-rw-r--r--toolchain/kernel-headers/patches/3.4.82/relocs.patch (renamed from toolchain/kernel-headers/patches/3.4.71/relocs.patch)0
-rw-r--r--toolchain/musl/patches/mips64.patch12
-rw-r--r--toolchain/musl/patches/musl-git-20140225.patch8039
-rw-r--r--toolchain/uClibc/Makefile3
88 files changed, 8637 insertions, 3007 deletions
diff --git a/BUGS b/BUGS
index 5107d9aa5..7bfba6f37 100644
--- a/BUGS
+++ b/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
- sparc64: ide driver not working, only virtio (but unstable)
- microblaze big endian: network card emulation fails
-- microblaze: qemu reboot not working
diff --git a/Config.in b/Config.in
index 8e00aa7d9..257d46583 100644
--- a/Config.in
+++ b/Config.in
@@ -121,8 +121,8 @@ config ADK_KERNEL_VERSION_3_11_10
prompt "3.11.10"
boolean
-config ADK_KERNEL_VERSION_3_4_71
- prompt "3.4.71"
+config ADK_KERNEL_VERSION_3_4_82
+ prompt "3.4.82"
boolean
endchoice
@@ -132,7 +132,7 @@ config ADK_KERNEL_VERSION
default "3.13.5" if ADK_KERNEL_VERSION_3_13_5
default "3.12.13" if ADK_KERNEL_VERSION_3_12_13
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
config ADK_KERNEL_COMP_GZIP_RASPBERRY_PI
diff --git a/TODO b/TODO
index cdf057a56..05c85e9e6 100644
--- a/TODO
+++ b/TODO
@@ -1,4 +1,7 @@
- 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)
- hash-style=gnu for non-mips and non-musl
- add arm hard and softfloat toolchains
diff --git a/mk/build.mk b/mk/build.mk
index 3d92f30e8..eadccdcb3 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -22,8 +22,6 @@ DEFCONFIG= ADK_DEBUG=n \
ADK_PACKAGE_E2FSCK_STATIC=n \
ADK_PACKAGE_KEXECINIT=n \
ADK_PACKAGE_INSTALLER=n \
- ADK_PACKAGE_HEIMDAL_SERVER=n \
- ADK_PACKAGE_LIBHEIMDAL=n \
ADK_PACKAGE_LM_SENSORS_DETECT=n \
ADK_PACKAGE_PACEMAKER=n \
ADK_PACKAGE_PACEMAKER_MGMTD=n \
@@ -148,7 +146,7 @@ ${TOPDIR}/package/Depends.mk: ${TOPDIR}/.config $(wildcard ${TOPDIR}/package/*/M
world:
mkdir -p $(DISTDIR) $(BUILD_DIR) $(TARGET_DIR) $(FW_DIR) \
$(PACKAGE_DIR) $(BIN_DIR) $(TOOLS_BUILD_DIR) \
- $(TOOLCHAIN_BUILD_DIR) $(STAGING_PKG_DIR)
+ $(TOOLCHAIN_BUILD_DIR) $(STAGING_PKG_DIR)/stamps
${BASH} ${TOPDIR}/scripts/scan-pkgs.sh
${BASH} ${TOPDIR}/scripts/update-sys
${BASH} ${TOPDIR}/scripts/update-pkg
diff --git a/mk/host-bottom.mk b/mk/host-bottom.mk
index 4b75a3f42..23d5652ba 100644
--- a/mk/host-bottom.mk
+++ b/mk/host-bottom.mk
@@ -96,14 +96,14 @@ endif
exec ${MAKE} host-extract $(MAKE_TRACE)
mkdir -p ${HOST_WRKINST}
# avoid rebuild
- touch ${_HOST_CONFIGURE_COOKIE}
- touch ${_HOST_BUILD_COOKIE}
- touch $@
+ @touch ${_HOST_CONFIGURE_COOKIE}
+ @touch ${_HOST_BUILD_COOKIE}
+ @touch $@
${_HOST_COOKIE}:
exec ${MAKE} hostpackage
ifeq ($(HOST_LINUX_ONLY),)
hostpackage: ${ALL_HOSTDIRS}
- touch ${_HOST_COOKIE}
+ @touch ${_HOST_COOKIE}
endif
diff --git a/mk/kernel-ver.mk b/mk/kernel-ver.mk
index 4555e6aa6..17f189d04 100644
--- a/mk/kernel-ver.mk
+++ b/mk/kernel-ver.mk
@@ -22,9 +22,9 @@ KERNEL_MOD_VERSION:= $(KERNEL_VERSION)
KERNEL_RELEASE:= 1
KERNEL_MD5SUM:= 59f352d3f4e2cdf6755f79e09fa09176
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_RELEASE:= 1
-KERNEL_MD5SUM:= d6183a3809c6d3f6779043b6e9f482ca
+KERNEL_MD5SUM:= 9ee57efa65417a7a9ac931122c2b7377
endif
diff --git a/mk/package.mk b/mk/package.mk
index b9b198e57..125ed3d26 100644
--- a/mk/package.mk
+++ b/mk/package.mk
@@ -78,7 +78,7 @@ _PATCH_COOKIE= ${WRKDIST}/.prepared
_CONFIGURE_COOKIE= ${WRKBUILD}/.configure_done
_BUILD_COOKIE= ${WRKBUILD}/.build_done
_FAKE_COOKIE= ${WRKINST}/.fake_done
-_IPKGS_COOKIE= ${STAGING_PKG_DIR}/${PKG_NAME}${PKG_VERSION}-${PKG_RELEASE}
+_IPKGS_COOKIE= ${STAGING_PKG_DIR}/stamps/${PKG_NAME}${PKG_VERSION}-${PKG_RELEASE}
_IN_PACKAGE:= 1
include ${TOPDIR}/mk/buildhlp.mk
@@ -225,7 +225,7 @@ ifneq (${ADK_INSTALL_PACKAGE_NETWORK_SCRIPTS},y)
-rm -rf $${IDIR_$(1)}/etc/network
endif
endif
- @mkdir -p $${PACKAGE_DIR} '$${STAGING_PKG_DIR}' \
+ @mkdir -p $${PACKAGE_DIR} '$${STAGING_PKG_DIR}/stamps' \
'$${STAGING_DIR}/scripts'
ifeq (,$(filter noremove,$(7)))
@if test -s '$${STAGING_PKG_DIR}/$(1)'; then \
@@ -321,7 +321,7 @@ clean-targets:
clean:
@$(CMD_TRACE) "cleaning... "
@$(MAKE) clean-targets $(MAKE_TRACE)
- rm -rf ${WRKDIR} ${ALL_IPKGS} ${STAGING_PKG_DIR}/${PKG_NAME}*
+ rm -rf ${WRKDIR} ${ALL_IPKGS} ${STAGING_PKG_DIR}/stamps/${PKG_NAME}*
distclean: clean
rm -f ${FULLDISTFILES}
diff --git a/mk/pkg-bottom.mk b/mk/pkg-bottom.mk
index c6e328bbe..d82a653ea 100644
--- a/mk/pkg-bottom.mk
+++ b/mk/pkg-bottom.mk
@@ -126,7 +126,7 @@ post-install:
spkg-install: ${ALL_POSTINST}
${_FAKE_COOKIE}: ${_BUILD_COOKIE}
@-rm -f ${_ALL_CONTROLS}
- @mkdir -p '${STAGING_PKG_DIR}' ${WRKINST} '${STAGING_DIR}/scripts'
+ @mkdir -p '${STAGING_PKG_DIR}/stamps' ${WRKINST} '${STAGING_DIR}/scripts'
@${MAKE} ${_ALL_CONTROLS} $(MAKE_TRACE)
@env ${MAKE_ENV} ${MAKE} pre-install $(MAKE_TRACE)
ifneq ($(filter manual,${INSTALL_STYLE}),)
diff --git a/package/avahi/Makefile b/package/avahi/Makefile
index a857cb6e2..fa8c56fe1 100644
--- a/package/avahi/Makefile
+++ b/package/avahi/Makefile
@@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk
PKG_NAME:= avahi
PKG_VERSION:= 0.6.31
-PKG_RELEASE:= 1
+PKG_RELEASE:= 2
PKG_MD5SUM:= 2f22745b8f7368ad5a0a3fddac343f2d
PKG_DESCR:= mDNS daemon
PKG_SECTION:= dhcp
@@ -98,5 +98,7 @@ libavahi-install:
${IDIR_LIBAVAHI}/usr/lib
${CP} ${WRKINST}/usr/lib/libavahi-core.so* \
${IDIR_LIBAVAHI}/usr/lib
+ ${CP} ${WRKINST}/usr/lib/libavahi-glib.so* \
+ ${IDIR_LIBAVAHI}/usr/lib
include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 0b0f95950..0eb3a40b3 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:= 65
+PKG_RELEASE:= 66
PKG_SECTION:= base
PKG_DESCR:= basic files and scripts
PKG_BUILDDEP:= pkgconf-host file-host
@@ -63,7 +63,10 @@ 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_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
endif
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
# network config eth0
- # configure nic with manual ip
+ # configure nic with dhcp
ifeq (${SIMPLE_NETWORK_CONFIG_ETH0_TYPE_NIC},y)
echo -e "\nauto eth0\niface eth0 inet dhcp" >> ${IDIR_BASE_FILES}/etc/network/interfaces
endif
- # configure nic with dhcp
+ # configure nic with manual ip
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 " 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
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
- # configure nic with manual ip
+ # configure nic with dhcp
ifeq (${SIMPLE_NETWORK_CONFIG_ETH1_TYPE_NIC},y)
echo -e "\nauto eth1\niface eth1 inet dhcp" >> ${IDIR_BASE_FILES}/etc/network/interfaces
endif
- # configure nic with dhcp
+ # configure nic with manual ip
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 " address ${SIMPLE_NETWORK_CONFIG_ETH1_IP}" >> ${IDIR_BASE_FILES}/etc/network/interfaces
diff --git a/package/base-files/src/etc/network/if-post-down.d/03-wireless b/package/base-files/src/etc/network/if-post-down.d/03-wireless
index 86e0c73e1..67c01714e 100755
--- a/package/base-files/src/etc/network/if-post-down.d/03-wireless
+++ b/package/base-files/src/etc/network/if-post-down.d/03-wireless
@@ -1,4 +1,5 @@
-#!/bin/sh
+#!/bin/sh
+set -x
set -e
[ "${IFACE%%[0-9]*}" = "wlan" ] || exit 0
@@ -11,7 +12,7 @@ case "$IF_WIRELESS_MODE" in
sta)
[ "$IF_WIRELESS_SECURITY" != "none" ] && {
logger -t wireless "Killing wpa_supplicant"
- pkill wpa_supplicant
+ kill -9 $(cat /var/run/wpa_supplicant.pid)
}
;;
*)
diff --git a/package/base-files/src/etc/network/if-pre-up.d/04-wireless b/package/base-files/src/etc/network/if-pre-up.d/04-wireless
index f69f273d0..98ac932df 100755
--- a/package/base-files/src/etc/network/if-pre-up.d/04-wireless
+++ b/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 " priority=5" >> /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
}
;;
*)
diff --git a/package/firefox/files/firefox b/package/firefox/files/firefox
index fd372f5b5..339daaf09 100755
--- a/package/firefox/files/firefox
+++ b/package/firefox/files/firefox
@@ -1,2 +1,2 @@
#!/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
diff --git a/package/heimdal/Makefile b/package/heimdal/Makefile
index b59a545ca..5e71ecaa2 100644
--- a/package/heimdal/Makefile
+++ b/package/heimdal/Makefile
@@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:= heimdal
PKG_VERSION:= 1.5.2
-PKG_RELEASE:= 3
+PKG_RELEASE:= 4
PKG_MD5SUM:= bb23d9dbdafd395d816f7abc598481a1
PKG_DESCR:= Kerberos 5 server
PKG_SECTION:= crypto
@@ -50,6 +50,7 @@ CONFIGURE_OPTS:= --with-hdbdir=/etc/heimdal \
--disable-ndbm-db \
--libdir=/usr/lib/heimdal \
--libexecdir=/usr/sbin \
+ --includedir=/usr/include/heimdal \
--without-sqlite3 \
--without-libedit \
--disable-sqlite-cache \
diff --git a/package/libpcap/Makefile b/package/libpcap/Makefile
index 51b470aae..d374fc5a5 100644
--- a/package/libpcap/Makefile
+++ b/package/libpcap/Makefile
@@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:= libpcap
PKG_VERSION:= 1.5.2
-PKG_RELEASE:= 1
+PKG_RELEASE:= 2
PKG_MD5SUM:= 33ba2f10f3a402cb5d34f5e2a904794a
PKG_DESCR:= a low-level packet capture library
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_ARGS+= --disable-yydebug \
--with-build-cc=$(CC_FOR_BUILD) \
+ --disable-dbus \
--without-libnl \
--with-pcap=linux
TARGET_CFLAGS+= ${TARGET_CPPFLAGS}
diff --git a/package/mpd/Makefile b/package/mpd/Makefile
index 589aa14b4..222ad74bd 100644
--- a/package/mpd/Makefile
+++ b/package/mpd/Makefile
@@ -4,9 +4,9 @@
include ${TOPDIR}/rules.mk
PKG_NAME:= mpd
-PKG_VERSION:= 0.18.5
-PKG_RELEASE:= 3
-PKG_MD5SUM:= 63bcf6ce338caa2ae2cd6dc8e9710d5c
+PKG_VERSION:= 0.18.8
+PKG_RELEASE:= 1
+PKG_MD5SUM:= 7bbe1caf5abe404dc985ca4f44984b1f
PKG_DESCR:= A music player daemon
PKG_SECTION:= multimedia
PKG_DEPENDS:= glib libstdcxx libgcc libiconv-tiny libmpdclient
@@ -23,7 +23,7 @@ DISTFILES:= ${PKG_NAME}-${PKG_VERSION}.tar.xz
PKG_FLAVOURS_MPD:= WITH_ALSA WITH_AO WITH_MP3 WITH_MP4 WITH_TREMOR
PKG_FLAVOURS_MPD+= WITH_OGG WITH_FLAC WITH_WAV WITH_MMS WITH_FFMPEG
PKG_FLAVOURS_MPD+= WITH_SHOUT WITH_CURL WITH_SAMPLERATE WITH_HTTPD
-PKG_FLAVOURS_MPD+= WITH_OPUS WITH_PULSE
+PKG_FLAVOURS_MPD+= WITH_OPUS WITH_PULSE WITH_AVAHI
PKGFD_WITH_ALSA:= enable ALSA output
PKGFS_WITH_ALSA:= alsa-lib
@@ -119,6 +119,13 @@ ifeq ($(ADK_PACKAGE_MPD_WITH_PULSE),y)
PKG_FDEPENDS+= pulseaudio
endif
+PKGFD_WITH_AVAHI:= enable AVAHI/zeroconf support
+PKGFS_WITH_AVAHI:= libavahi
+PKGFB_WITH_AVAHI:= avahi
+ifeq ($(ADK_PACKAGE_MPD_WITH_AVAHI),y)
+PKG_FDEPENDS+= libavahi
+endif
+
PKGFD_WITH_HTTPD:= enable HTTP output
include ${TOPDIR}/mk/package.mk
@@ -139,8 +146,7 @@ CONFIGURE_ARGS+= --disable-jack \
--disable-sqlite \
--disable-mpg123 \
--disable-soundcloud \
- --enable-inotify \
- --with-zeroconf=no
+ --enable-inotify
ifneq (${ADK_PACKAGE_MPD_WITH_HTTPD},)
CONFIGURE_ARGS+= --enable-httpd-output
@@ -148,6 +154,12 @@ else
CONFIGURE_ARGS+= --disable-httpd-output
endif
+ifneq (${ADK_PACKAGE_MPD_WITH_AVAHI},)
+CONFIGURE_ARGS+= --with-zeroconf=avahi
+else
+CONFIGURE_ARGS+= --with-zeroconf=no
+endif
+
ifneq (${ADK_PACKAGE_MPD_WITH_PULSE},)
CONFIGURE_ARGS+= --enable-pulse
else
diff --git a/package/nss/Makefile b/package/nss/Makefile
index 868dd5d4d..75921e8c5 100644
--- a/package/nss/Makefile
+++ b/package/nss/Makefile
@@ -30,8 +30,8 @@ $(eval $(call PKG_template,NSS,nss,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},
CONFIG_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
endif
XAKE_FLAGS+= USE_64=1
diff --git a/package/strace/Makefile b/package/strace/Makefile
index 624cf8909..9f0cfe047 100644
--- a/package/strace/Makefile
+++ b/package/strace/Makefile
@@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk
PKG_NAME:= strace
PKG_VERSION:= 4.8
-PKG_RELEASE:= 7
+PKG_RELEASE:= 8
PKG_MD5SUM:= c575ef43829586801f514fd91bfe7575
PKG_DESCR:= System call trace program
PKG_SECTION:= debug
diff --git a/package/strace/patches/patch-defs_h b/package/strace/patches/patch-defs_h
new file mode 100644
index 000000000..910715f7a
--- /dev/null
+++ b/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
diff --git a/package/strace/patches/patch-desc_c b/package/strace/patches/patch-desc_c
new file mode 100644
index 000000000..9cfb5f505
--- /dev/null
+++ b/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)
diff --git a/package/strace/patches/patch-net_c b/package/strace/patches/patch-net_c
new file mode 100644
index 000000000..f579ea5fb
--- /dev/null
+++ b/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
diff --git a/package/strace/patches/patch-process_c b/package/strace/patches/patch-process_c
new file mode 100644
index 000000000..a3d71bc9e
--- /dev/null
+++ b/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;
+ }
diff --git a/package/strace/patches/patch-signal_c b/package/strace/patches/patch-signal_c
new file mode 100644
index 000000000..d0f9dde00
--- /dev/null
+++ b/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;
diff --git a/package/strace/patches/patch-syscall_c b/package/strace/patches/patch-syscall_c
new file mode 100644
index 000000000..2c47009e4
--- /dev/null
+++ b/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
diff --git a/package/strace/patches/patch-time_c b/package/strace/patches/patch-time_c
new file mode 100644
index 000000000..53a6cf76b
--- /dev/null
+++ b/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);
diff --git a/rules.mk b/rules.mk
index ce0f0f6c3..8865327f8 100644
--- a/rules.mk
+++ b/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_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)))
diff --git a/scripts/create-pkg b/scripts/create-pkg
index b9b47ae2a..35961ae54 100755
--- a/scripts/create-pkg
+++ b/scripts/create-pkg
@@ -2,6 +2,7 @@
topdir=$(readlink -nf $(dirname $0)/.. 2>/dev/null || (cd $(dirname $0)/..; pwd -P))
mkdir -p $topdir/target/packages/pkg-enabled
+rm $topdir/target/packages/pkg-enabled/* 2>/dev/null
count=1
for i in $(ls $topdir/target/packages/pkg-available/);do
cd $topdir/target/packages/pkg-enabled &&
diff --git a/target/arm/Makefile b/target/arm/Makefile
index 080ac4f57..4e07cd664 100644
--- a/target/arm/Makefile
+++ b/target/arm/Makefile
@@ -18,9 +18,13 @@ LOADADDR:=0x20008000
ifeq ($(ADK_TARGET_QEMU_ARM_MODEL_SPITZ),y)
MACH:=spitz
endif
-ifeq ($(ADK_TARGET_QEMU_ARM_MODEL_VERSATILE),y)
+ifeq ($(ADK_TARGET_QEMU_ARM_MODEL_VERSATILEPB),y)
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
kernel-install:
@@ -72,10 +76,14 @@ imageinstall: $(FW_DIR)/$(INITRAMFS)
@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
@echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
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 'qemu-system-arm -M $(MACH) -nographic $(NET) -kernel $(FW_DIR)/$(TARGET_KERNEL) -initrd ${FW_DIR}/${INITRAMFS}'
endif
endif
+endif
ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
imageinstall: createinitramfs
@cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
diff --git a/target/arm/kernel.config b/target/arm/kernel.config
deleted file mode 100644
index e477fcfb8..000000000
--- a/target/arm/kernel.config
+++ /dev/null
@@ -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
diff --git a/target/arm/kernel.config.sharp-zaurus b/target/arm/kernel.config.sharp-zaurus
deleted file mode 100644
index d00ec0d36..000000000
--- a/target/arm/kernel.config.sharp-zaurus
+++ /dev/null
@@ -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
diff --git a/target/arm/kernel/qemu-arm-spitz b/target/arm/kernel/qemu-arm-spitz
new file mode 100644
index 000000000..b7e6815ce
--- /dev/null
+++ b/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
diff --git a/target/arm/kernel/qemu-arm-versatile b/target/arm/kernel/qemu-arm-versatilepb
index 83d19b085..ead723621 100644
--- a/target/arm/kernel/qemu-arm-versatile
+++ b/target/arm/kernel/qemu-arm-versatilepb
@@ -14,7 +14,6 @@ CONFIG_PCI_SYSCALL=y
CONFIG_AEABI=y
CONFIG_USE_OF=y
CONFIG_ATAGS=y
-CONFIG_VFP=y
CONFIG_DTC=y
CONFIG_OF=y
CONFIG_SCSI=y
@@ -36,5 +35,3 @@ CONFIG_NET_VENDOR_SMSC=y
CONFIG_SMC91X=y
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
diff --git a/target/arm/kernel/qemu-arm-vexpress-a9 b/target/arm/kernel/qemu-arm-vexpress-a9
new file mode 100644
index 000000000..3d741c115
--- /dev/null
+++ b/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
diff --git a/target/arm/kernel/sharp-zaurus b/target/arm/kernel/sharp-zaurus
new file mode 100644
index 000000000..b7e6815ce
--- /dev/null
+++ b/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
diff --git a/target/arm/sys-available/acmesystems-foxg20 b/target/arm/sys-available/acmesystems-foxg20
index 527a31ebb..576468bbe 100644
--- a/target/arm/sys-available/acmesystems-foxg20
+++ b/target/arm/sys-available/acmesystems-foxg20
@@ -9,7 +9,6 @@ config ADK_TARGET_SYSTEM_ACMESYSTEMS_FOXG20
select ADK_KERNEL_MACH_ACMENETUSFOXG20
select ADK_KERNEL_AEABI
select ADK_EABI
- select ADK_TARGET_NO_FPU
select ADK_TARGET_WITH_WATCHDOG
select ADK_TARGET_WITH_MMC
select ADK_TARGET_WITH_RTC
diff --git a/target/arm/sys-available/cubox-i b/target/arm/sys-available/cubox-i
index 28b918708..f7a4f59bc 100644
--- a/target/arm/sys-available/cubox-i
+++ b/target/arm/sys-available/cubox-i
@@ -2,8 +2,9 @@ config ADK_TARGET_SYSTEM_CUBOX_I
bool "Cubox-i"
select ADK_arm
select ADK_little
+ select ADK_hard_float
select ADK_cubox_i
- select ADK_CPU_CUBOX_I
+ select ADK_CPU_CORTEX_A9
select ADK_EABIHF
select ADK_TARGET_WITH_MMC
select ADK_TARGET_WITH_VGA
diff --git a/target/arm/sys-available/keyasic-ka2000 b/target/arm/sys-available/keyasic-ka2000
index cc193e2ef..3c9573ebe 100644
--- a/target/arm/sys-available/keyasic-ka2000
+++ b/target/arm/sys-available/keyasic-ka2000
@@ -2,11 +2,10 @@ config ADK_TARGET_SYSTEM_KEYASIC_KA2000
bool "KeyASIC KA2000 (f.e. Transcend WifiSD)"
select ADK_arm
select ADK_little
+ select ADK_soft_float
select ADK_keyasic_ka2000
- select ADK_KERNEL_AEABI
select ADK_EABI
- select ADK_CPU_ARMV5
- select ADK_TARGET_NO_FPU
+ select ADK_CPU_ARM926EJ_S
select ADK_TOOLCHAIN
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
diff --git a/target/arm/sys-available/qemu-arm b/target/arm/sys-available/qemu-arm
index 4247b8862..4b99f7f0e 100644
--- a/target/arm/sys-available/qemu-arm
+++ b/target/arm/sys-available/qemu-arm
@@ -3,8 +3,6 @@ config ADK_TARGET_SYSTEM_QEMU_ARM
select ADK_arm
select ADK_qemu_arm
select ADK_little
- select ADK_EABI
- select ADK_TARGET_NO_FPU
select ADK_HARDWARE_QEMU
select ADK_TARGET_KERNEL_ZIMAGE
select ADK_USE_KERNEL_MINICONFIG
diff --git a/target/arm/sys-available/raspberry-pi b/target/arm/sys-available/raspberry-pi
index 36d96b064..ecf224a1a 100644
--- a/target/arm/sys-available/raspberry-pi
+++ b/target/arm/sys-available/raspberry-pi
@@ -2,9 +2,10 @@ config ADK_TARGET_SYSTEM_RASPBERRY_PI
bool "Raspberry PI"
select ADK_arm
select ADK_little
+ select ADK_hard_float
select ADK_raspberry_pi
+ select ADK_CPU_ARM1176JZF_S
select ADK_EABIHF
- select ADK_CPU_RASPBERRY_PI
select ADK_TARGET_WITH_MMC
select ADK_TARGET_WITH_VGA
select ADK_TARGET_WITH_USB
diff --git a/target/arm/sys-available/sharp-zaurus b/target/arm/sys-available/sharp-zaurus
index 848dfdbd1..0f124719d 100644
--- a/target/arm/sys-available/sharp-zaurus
+++ b/target/arm/sys-available/sharp-zaurus
@@ -6,17 +6,12 @@ config ADK_TARGET_SYSTEM_SHARP_ZAURUS
select ADK_EABI
select ADK_CPU_XSCALE
select ADK_TARGET_CPU_WITH_IWMMXT
- select ADK_TARGET_NO_FPU
select ADK_TARGET_WITH_VGA
select ADK_TARGET_WITH_PCMCIA
select ADK_TARGET_WITH_INPUT
select ADK_TARGET_WITH_SOUND
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_USE_KERNEL_MINICONFIG
help
Support for Sharp Zaurus CL3200 (Terrier)
diff --git a/target/arm/sys-available/toolchain-arm b/target/arm/sys-available/toolchain-arm
index 956acab7a..8ac2da8b6 100644
--- a/target/arm/sys-available/toolchain-arm
+++ b/target/arm/sys-available/toolchain-arm
@@ -5,7 +5,6 @@ config ADK_TARGET_SYSTEM_TOOLCHAIN_ARM
select ADK_little
select ADK_TOOLCHAIN
select ADK_EABI
- select ADK_TARGET_NO_FPU
select ADK_TARGET_PACKAGE_TGZ
help
ARM toolchain (little endian).
diff --git a/target/arm/sys-available/toolchain-armeb b/target/arm/sys-available/toolchain-armeb
index 4756e0db2..ad9d2117a 100644
--- a/target/arm/sys-available/toolchain-armeb
+++ b/target/arm/sys-available/toolchain-armeb
@@ -5,7 +5,6 @@ config ADK_TARGET_SYSTEM_TOOLCHAIN_ARMEB
select ADK_big
select ADK_TOOLCHAIN
select ADK_EABI
- select ADK_TARGET_NO_FPU
select ADK_TARGET_PACKAGE_TGZ
help
ARM toolchain (big endian).
diff --git a/target/config/Config.in b/target/config/Config.in
index 3e20b46a6..68e2eefb0 100644
--- a/target/config/Config.in
+++ b/target/config/Config.in
@@ -31,6 +31,29 @@ config ADK_big
config ADK_little
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
string
default "little" if ADK_little
@@ -161,7 +184,9 @@ config ADK_TARGET_KERNEL_MINICONFIG
string
default "qemu-microblaze-s3adsp1800" if ADK_TARGET_QEMU_MICROBLAZE_MODEL_S3ADSP1800
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-mipsel" if ADK_TARGET_SYSTEM_QEMU_MIPSEL
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-sparc64" if ADK_TARGET_SYSTEM_QEMU_SPARC64
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
-
-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
prompt "Qemu Emulation using VirtIO drivers"
@@ -221,19 +234,43 @@ choice
prompt "Qemu ARM Emulation"
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
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
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
prompt "Broadcom BCM47xx Model"
depends on ADK_TARGET_SYSTEM_BROADCOM_BCM47XX
@@ -336,9 +373,6 @@ config ADK_TARGET_KERNEL_MAY_64BIT
config ADK_TOOLCHAIN_ONLY
boolean
-config ADK_TARGET_NO_FPU
- boolean
-
config ADK_EABI
boolean
@@ -450,9 +484,6 @@ config ADK_CPU_AMDFAM10
config ADK_CPU_LOONGSON2F
boolean
-config ADK_CPU_ARMV5
- boolean
-
config ADK_CPU_XSCALE
boolean
@@ -468,10 +499,13 @@ config ADK_CPU_MIPS64
config ADK_CPU_MICROBLAZE
boolean
-config ADK_CPU_RASPBERRY_PI
+config ADK_CPU_ARM926EJ_S
+ boolean
+
+config ADK_CPU_ARM1176JZF_S
boolean
-config ADK_CPU_CUBOX_I
+config ADK_CPU_CORTEX_A9
boolean
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=mips32" if ADK_CPU_MIPS32
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=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
string
@@ -558,7 +595,8 @@ config ADK_TARGET_CMDLINE
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_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=ttySC1 console=tty0" if ADK_TARGET_SYSTEM_QEMU_SH
default "console=ttyS0" if ADK_TARGET_SYSTEM_ARANYM_M68K
@@ -692,7 +730,7 @@ config ADK_TARGET_ROOTFS_INITRAMFS
bool "initramfs filesystem"
depends on \
ADK_HARDWARE_QEMU || \
- ADK_TARGET_SYSTEM_ARANYM_M68K || \
+ ADK_LINUX_M68K || \
ADK_LINUX_ARM || \
ADK_LINUX_MICROBLAZE || \
ADK_LINUX_MIPS || \
@@ -907,5 +945,4 @@ config ADK_TARGET_PACKAGE_TGZ
directory. There will be no package manager installed onto the target.
endchoice
-
source "target/config/Config.in.tools"
diff --git a/target/config/Config.in.runtime b/target/config/Config.in.runtime
index 6e580f614..c28fd55a3 100644
--- a/target/config/Config.in.runtime
+++ b/target/config/Config.in.runtime
@@ -204,10 +204,30 @@ config SIMPLE_NETWORK_CONFIG_ETH0_BC
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"
-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
prompt "Type"
diff --git a/target/linux/Config.in b/target/linux/Config.in
index f4ead4caf..739e2008c 100644
--- a/target/linux/Config.in
+++ b/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.block
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.crypto
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.leds
source target/linux/config/Config.in.misc
diff --git a/target/linux/config/Config.in.cpu b/target/linux/config/Config.in.cpu
index 678cb5696..efaf3a658 100644
--- a/target/linux/config/Config.in.cpu
+++ b/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 n
-config ADK_KERNEL_VFP
- boolean
-
menu "CPU support"
config ADK_KERNEL_CPU_FREQ
@@ -93,6 +90,4 @@ config ADK_KERNEL_CPU_FREQ_DEFAULT_GOV_USERSPACE
select ADK_KERNEL_CPU_FREQ_GOV_USERSPACE
endchoice
-
endmenu
-
diff --git a/target/linux/config/Config.in.kernel b/target/linux/config/Config.in.kernel
index bd4169948..db1ab5c57 100644
--- a/target/linux/config/Config.in.kernel
+++ b/target/linux/config/Config.in.kernel
@@ -104,3 +104,21 @@ config ADK_KERNEL_PREEMPT
config ADK_KERNEL_THUMB2_KERNEL
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
diff --git a/target/linux/config/Config.in.netdevice b/target/linux/config/Config.in.netdevice
index 7d189a063..001ecfd33 100644
--- a/target/linux/config/Config.in.netdevice
+++ b/target/linux/config/Config.in.netdevice
@@ -28,16 +28,6 @@ config ADK_KERNEL_VIA_RHINE_MMIO
config ADK_KERNEL_ATH_CARDS
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
boolean
select ADK_KERNEL_NETDEVICES
diff --git a/target/linux/config/Config.in.netfilter.ip4 b/target/linux/config/Config.in.netfilter.ip4
index e2bc1b1b2..cf33c02a2 100644
--- a/target/linux/config/Config.in.netfilter.ip4
+++ b/target/linux/config/Config.in.netfilter.ip4
@@ -36,7 +36,7 @@ config ADK_KPACKAGE_KMOD_IP_NF_FILTER
config ADK_KPACKAGE_KMOD_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_12_11
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
tristate 'Full NAT'
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
The Full NAT option allows masquerading, port forwarding and other
forms of full Network Address Port Translation. It is controlled by
diff --git a/target/linux/config/Config.in.serial b/target/linux/config/Config.in.serial
index d1497d2fd..6ba3d4872 100644
--- a/target/linux/config/Config.in.serial
+++ b/target/linux/config/Config.in.serial
@@ -7,11 +7,3 @@ config ADK_KERNEL_SERIAL_PXA_CONSOLE
boolean
default y if ADK_TARGET_QEMU_ARM_MODEL_SPITZ
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
diff --git a/target/linux/config/Config.in.systems b/target/linux/config/Config.in.systems
index 9609cf5b2..61284f0fb 100644
--- a/target/linux/config/Config.in.systems
+++ b/target/linux/config/Config.in.systems
@@ -5,68 +5,11 @@ config ADK_KERNEL_PAGE_SIZE_4KB
config ADK_KERNEL_PAGE_SIZE_16KB
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
boolean
+# endianess
config ADK_KERNEL_CPU_BIG_ENDIAN
boolean
diff --git a/target/linux/patches/3.4.71/bsd-compatibility.patch b/target/linux/patches/3.4.82/bsd-compatibility.patch
index 9e91a62de..9e91a62de 100644
--- a/target/linux/patches/3.4.71/bsd-compatibility.patch
+++ b/target/linux/patches/3.4.82/bsd-compatibility.patch
diff --git a/target/linux/patches/3.4.71/defaults.patch b/target/linux/patches/3.4.82/defaults.patch
index 58aae610b..58aae610b 100644
--- a/target/linux/patches/3.4.71/defaults.patch
+++ b/target/linux/patches/3.4.82/defaults.patch
diff --git a/target/linux/patches/3.4.71/gemalto.patch b/target/linux/patches/3.4.82/gemalto.patch
index 65f7af1d7..65f7af1d7 100644
--- a/target/linux/patches/3.4.71/gemalto.patch
+++ b/target/linux/patches/3.4.82/gemalto.patch
diff --git a/target/linux/patches/3.4.71/lemote-rfkill.patch b/target/linux/patches/3.4.82/lemote-rfkill.patch
index a61488434..a61488434 100644
--- a/target/linux/patches/3.4.71/lemote-rfkill.patch
+++ b/target/linux/patches/3.4.82/lemote-rfkill.patch
diff --git a/target/linux/patches/3.4.71/module-alloc-size-check.patch b/target/linux/patches/3.4.82/module-alloc-size-check.patch
index a792ac60a..a792ac60a 100644
--- a/target/linux/patches/3.4.71/module-alloc-size-check.patch
+++ b/target/linux/patches/3.4.82/module-alloc-size-check.patch
diff --git a/target/linux/patches/3.4.71/non-static.patch b/target/linux/patches/3.4.82/non-static.patch
index a967703d0..a967703d0 100644
--- a/target/linux/patches/3.4.71/non-static.patch
+++ b/target/linux/patches/3.4.82/non-static.patch
diff --git a/target/linux/patches/3.4.71/sparc-include.patch b/target/linux/patches/3.4.82/sparc-include.patch
index 2f8ffd061..2f8ffd061 100644
--- a/target/linux/patches/3.4.71/sparc-include.patch
+++ b/target/linux/patches/3.4.82/sparc-include.patch
diff --git a/target/linux/patches/3.4.71/startup.patch b/target/linux/patches/3.4.82/startup.patch
index 68e8987b0..68e8987b0 100644
--- a/target/linux/patches/3.4.71/startup.patch
+++ b/target/linux/patches/3.4.82/startup.patch
diff --git a/target/linux/patches/3.4.71/usb-defaults-off.patch b/target/linux/patches/3.4.82/usb-defaults-off.patch
index 31367108a..31367108a 100644
--- a/target/linux/patches/3.4.71/usb-defaults-off.patch
+++ b/target/linux/patches/3.4.82/usb-defaults-off.patch
diff --git a/target/linux/patches/3.4.71/uuid.patch b/target/linux/patches/3.4.82/uuid.patch
index ca23accdf..ca23accdf 100644
--- a/target/linux/patches/3.4.71/uuid.patch
+++ b/target/linux/patches/3.4.82/uuid.patch
diff --git a/target/linux/patches/3.4.71/vga-cons-default-off.patch b/target/linux/patches/3.4.82/vga-cons-default-off.patch
index 178aeeeb9..178aeeeb9 100644
--- a/target/linux/patches/3.4.71/vga-cons-default-off.patch
+++ b/target/linux/patches/3.4.82/vga-cons-default-off.patch
diff --git a/target/linux/patches/3.4.71/wlan-cf.patch b/target/linux/patches/3.4.82/wlan-cf.patch
index fc20759e2..fc20759e2 100644
--- a/target/linux/patches/3.4.71/wlan-cf.patch
+++ b/target/linux/patches/3.4.82/wlan-cf.patch
diff --git a/target/linux/patches/3.4.71/zlib-inflate.patch b/target/linux/patches/3.4.82/zlib-inflate.patch
index 58e1f6d21..58e1f6d21 100644
--- a/target/linux/patches/3.4.71/zlib-inflate.patch
+++ b/target/linux/patches/3.4.82/zlib-inflate.patch
diff --git a/target/mips/Makefile b/target/mips/Makefile
index f10f0033d..31cbc319a 100644
--- a/target/mips/Makefile
+++ b/target/mips/Makefile
@@ -111,7 +111,7 @@ ifneq ($(ADK_HARDWARE_QEMU),)
@echo "Use following command to create a QEMU Image:"
@echo "./scripts/create.sh +g qemu-${CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
@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
ifeq ($(ADK_TARGET_SYSTEM_LEMOTE_YEELONG),y)
@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}'
ifneq ($(ADK_HARDWARE_QEMU),)
@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
ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
@@ -136,7 +136,7 @@ imageinstall: createinitramfs
@echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
ifneq ($(ADK_HARDWARE_QEMU),)
@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
ifeq ($(ADK_TARGET_FS),usb)
diff --git a/target/mips/kernel/qemu-mips64 b/target/mips/kernel/qemu-mips64
index 24634c7bf..5ccc48cca 100644
--- a/target/mips/kernel/qemu-mips64
+++ b/target/mips/kernel/qemu-mips64
@@ -13,6 +13,10 @@ CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_PROC_FS=y
CONFIG_BLK_DEV_SD=y
+CONFIG_ATA=y
+CONFIG_SATA_PMP=y
+CONFIG_ATA_SFF=y
+CONFIG_ATA_BMDMA=y
CONFIG_ATA_PIIX=y
CONFIG_NETDEVICES=y
CONFIG_NET_CORE=y
diff --git a/target/mips/kernel/qemu-mips64el b/target/mips/kernel/qemu-mips64el
index ea9c3e484..11240010d 100644
--- a/target/mips/kernel/qemu-mips64el
+++ b/target/mips/kernel/qemu-mips64el
@@ -13,6 +13,10 @@ CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_PROC_FS=y
CONFIG_BLK_DEV_SD=y
+CONFIG_ATA=y
+CONFIG_SATA_PMP=y
+CONFIG_ATA_SFF=y
+CONFIG_ATA_BMDMA=y
CONFIG_ATA_PIIX=y
CONFIG_NETDEVICES=y
CONFIG_NET_CORE=y
diff --git a/target/packages/pkg-available/console b/target/packages/pkg-available/console
new file mode 100644
index 000000000..8cadcdecd
--- /dev/null
+++ b/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
diff --git a/target/packages/pkg-available/development b/target/packages/pkg-available/development
index 7a6d5e14c..6da3a5564 100644
--- a/target/packages/pkg-available/development
+++ b/target/packages/pkg-available/development
@@ -2,7 +2,6 @@ config ADK_PKG_DEVELOPMENT
bool "Compile a ADK development system"
default n
select ADK_PACKAGE_BASH
- select ADK_PACKAGE_BC
select ADK_PACKAGE_BINUTILS
select ADK_PACKAGE_BZIP2
select ADK_PACKAGE_DIFFUTILS
@@ -23,7 +22,6 @@ config ADK_PKG_DEVELOPMENT
select ADK_PACKAGE_MAKE
select ADK_PACKAGE_MKFONTDIR
select ADK_PACKAGE_PATCH
- select ADK_PACKAGE_PKGCONF
select ADK_PACKAGE_PERL
select BUSYBOX_STAT
select BUSYBOX_FEATURE_STAT_FORMAT
@@ -34,14 +32,9 @@ config ADK_PKG_DEVELOPMENT
select ADK_PACKAGE_ZLIB_DEV
select ADK_PACKAGE_XZ
select ADK_PACKAGE_WGET
- # optional
+ select ADK_PACKAGE_WGET_WITH_OPENSSL
select ADK_PACKAGE_STRACE
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
After bootstrapping a Linux system you might want to
switch to native builds with your target.
diff --git a/target/packages/pkg-available/xorg b/target/packages/pkg-available/xorg
index fdb5667da..b0e01f611 100644
--- a/target/packages/pkg-available/xorg
+++ b/target/packages/pkg-available/xorg
@@ -1,17 +1,7 @@
config ADK_PKG_XORG
- bool "Choose packages for graphical system with Xorg"
+ bool "Choose packages for graphical desktop system with Xorg"
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_FIREFOX
select ADK_PACKAGE_XTERM
@@ -21,7 +11,6 @@ config ADK_PKG_XORG
select ADK_PACKAGE_XF86_INPUT_MOUSE
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_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_X86_64
select ADK_PACKAGE_FONT_MISC_MISC
@@ -31,14 +20,5 @@ config ADK_PKG_XORG
select ADK_PACKAGE_FEH
select ADK_PACKAGE_XINIT
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_MPLAYER
- select ADK_PACKAGE_MPC
- select ADK_PACKAGE_WPA_SUPPLICANT
- select ADK_PACKAGE_WPA_SUPPLICANT_WITH_OPENSSL
select ADK_PACKAGE_XRDB
- select ADK_PACKAGE_VIM
- select ADK_KPACKAGE_KMOD_USB_STORAGE
diff --git a/target/ppc/kernel/qemu-ppc b/target/ppc/kernel/qemu-ppc
index d3cada6ae..08dd506b5 100644
--- a/target/ppc/kernel/qemu-ppc
+++ b/target/ppc/kernel/qemu-ppc
@@ -30,6 +30,9 @@ CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_BLK_DEV_SD=y
CONFIG_ATA=y
+CONFIG_SATA_PMP=y
+CONFIG_ATA_SFF=y
+CONFIG_ATA_BMDMA=y
CONFIG_PATA_MACIO=y
CONFIG_MACINTOSH_DRIVERS=y
CONFIG_ADB=y
diff --git a/target/tools/mtd-utils/Makefile b/target/tools/mtd-utils/Makefile
index 3c90f81c8..38f10de69 100644
--- a/target/tools/mtd-utils/Makefile
+++ b/target/tools/mtd-utils/Makefile
@@ -4,9 +4,9 @@
include $(TOPDIR)/rules.mk
PKG_NAME:= mtd-utils
-PKG_VERSION:= 1.5
+PKG_VERSION:= 1.5.0
PKG_RELEASE:= 1
-PKG_MD5SUM:= fbc1e3560a2c941ed2c94a73ae74348c
+PKG_MD5SUM:= a4df1ad29684be79b0fa699bdae01faf
PKG_SITES:= http://openadk.org/distfiles/
include ../rules.mk
@@ -14,7 +14,7 @@ include ../rules.mk
all: ${STAGING_HOST_DIR}/bin/mkfs.jffs2
$(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 $@
${STAGING_HOST_DIR}/bin/mkfs.jffs2: $(WRKBUILD)/.compiled
diff --git a/target/tools/mtd-utils/patches/lzo.patch b/target/tools/mtd-utils/patches/lzo.patch
index 6d6469ef6..52f16146c 100644
--- a/target/tools/mtd-utils/patches/lzo.patch
+++ b/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 @@
#ifdef CONFIG_JFFS2_RTIME
jffs2_rtime_init();
@@ -20,16 +20,26 @@ diff -Nur mtd-utils-1.5.orig/compr.c mtd-utils-1.5/compr.c
-#endif
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 = \
- ubiupdatevol ubimkvol ubirmvol ubicrc32 ubinfo ubiattach \
- ubidetach ubinize ubiformat ubirename mtdinfo ubirsvol
++MTD_BINS = mkfs.jffs2
BINS = $(MTD_BINS)
-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
-@@ -84,12 +78,12 @@
+@@ -83,12 +69,12 @@
#
# 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))))
-@@ -104,8 +98,8 @@
+@@ -103,7 +89,7 @@
#
obj-mkfs.ubifs = crc16.o lpt.o compr.o devtable.o \
hashtable/hashtable.o hashtable/hashtable_itr.o
--LDFLAGS_mkfs.ubifs = $(ZLIBLDFLAGS) $(LZOLDFLAGS) $(UUIDLDFLAGS)
-LDLIBS_mkfs.ubifs = -lz -llzo2 -lm -luuid
-+LDFLAGS_mkfs.ubifs = $(ZLIBLDFLAGS) $(UUIDLDFLAGS)
+LDLIBS_mkfs.ubifs = -lz -lm -luuid
$(call mkdep,mkfs.ubifs/,mkfs.ubifs,,ubi-utils/libubi.a)
#
-@@ -119,6 +113,3 @@
+@@ -117,6 +103,3 @@
obj-mtdinfo = libubigen.a
obj-ubinize = libubigen.a libiniparser.a
obj-ubiformat = libubigen.a libscan.a
diff --git a/target/x86/Makefile b/target/x86/Makefile
index ba665e4f2..f55c97e47 100644
--- a/target/x86/Makefile
+++ b/target/x86/Makefile
@@ -34,7 +34,7 @@ ifeq ($(ADK_HARDWARE_QEMU),y)
@echo "Use following command to create a QEMU Image:"
@echo "./scripts/create.sh qemu-${CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
@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
ifeq ($(ADK_HARDWARE_VBOX),y)
@cp $(KERNEL) $(FW_DIR)/$(TARGET_KERNEL)
@@ -54,7 +54,7 @@ imageinstall: $(FW_DIR)/$(INITRAMFS)
@echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
ifeq ($(ADK_HARDWARE_QEMU),y)
@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
ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
@@ -63,7 +63,7 @@ imageinstall: createinitramfs
@echo 'The kernel+initramfs file is: $(FW_DIR)/${TARGET_KERNEL}'
ifeq ($(ADK_HARDWARE_QEMU),y)
@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
ifeq (${ADK_TARGET_FS},iso)
diff --git a/target/x86_64/Makefile b/target/x86_64/Makefile
index b625a374c..0d0d213d4 100644
--- a/target/x86_64/Makefile
+++ b/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 "./scripts/create.sh qemu-${CPU_ARCH}.img $(FW_DIR)/$(ROOTFSTARBALL)"
@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
ifeq ($(ADK_TARGET_FS),usb)
@@ -32,7 +32,7 @@ imageinstall: $(FW_DIR)/$(INITRAMFS)
@echo 'The initramfs image is: ${FW_DIR}/${INITRAMFS}'
ifeq ($(ADK_TARGET_SYSTEM_QEMU_X86_64),y)
@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
ifeq ($(ADK_TARGET_FS),initramfs-piggyback)
@@ -41,7 +41,7 @@ imageinstall: createinitramfs
@echo 'The kernel file is: $(FW_DIR)/${TARGET_KERNEL}'
ifeq ($(ADK_TARGET_SYSTEM_QEMU_X86_64),y)
@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
ifeq ($(ADK_TARGET_FS),nfsroot)
diff --git a/toolchain/eglibc/Makefile b/toolchain/eglibc/Makefile
index dbccb8866..5ac8e493d 100644
--- a/toolchain/eglibc/Makefile
+++ b/toolchain/eglibc/Makefile
@@ -21,10 +21,6 @@ TARGET_CFLAGS_LIBC:= $(filter-out -fstack-protector,$(TARGET_CFLAGS_LIBC))
include Makefile.inc
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_FINAL:= ${WRKDIR}/$(PKG_NAME)-$(PKG_VERSION)-final
diff --git a/toolchain/eglibc/Makefile.inc b/toolchain/eglibc/Makefile.inc
index abb6879c3..1ac72ef54 100644
--- a/toolchain/eglibc/Makefile.inc
+++ b/toolchain/eglibc/Makefile.inc
@@ -10,7 +10,7 @@ EGLIBC_CONFOPTS:= --build=$(GNU_HOST_NAME) \
--without-cvs \
--disable-profile \
--disable-debug \
- --enable-kernel=2.6.0 \
+ --enable-kernel=2.6.32 \
--without-gd \
--disable-nscd \
--with-__thread \
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index 32710c9bd..2cd720a63 100644
--- a/toolchain/gcc/Makefile
+++ b/toolchain/gcc/Makefile
@@ -81,24 +81,21 @@ else
GCC_CONFOPTS+= --enable-target-optspace
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
-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
-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
+
+ifeq ($(ADK_CPU_CORTEX_A9),y)
+GCC_CONFOPTS+= --with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=neon
endif
ifneq ($(ADK_TARGET_ABI),)
@@ -209,10 +206,12 @@ $(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
# fix linking g++ apps with libtool
@-test -d $(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 && \
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
rm -rf $(STAGING_HOST_DIR)/share
touch $@
diff --git a/toolchain/glibc/Makefile b/toolchain/glibc/Makefile
index 0905f2f61..2fc0015d7 100644
--- a/toolchain/glibc/Makefile
+++ b/toolchain/glibc/Makefile
@@ -16,10 +16,6 @@ TARGET_CFLAGS_LIBC:= $(filter-out -fstack-protector,$(TARGET_CFLAGS_LIBC))
include Makefile.inc
include ${TOPDIR}/mk/buildhlp.mk
-ifeq ($(ADK_TARGET_NO_FPU),y)
-GLIBC_CONFOPTS+= --without-fp
-endif
-
GLIBC_MAKEOPTS+= cross-compiling=yes
ifeq (${ADK_MAKE_PARALLEL},y)
GLIBC_MAKEOPTS+= PARALLELMFLAGS="-j1"
diff --git a/toolchain/glibc/Makefile.inc b/toolchain/glibc/Makefile.inc
index 4a34c9d18..e28405643 100644
--- a/toolchain/glibc/Makefile.inc
+++ b/toolchain/glibc/Makefile.inc
@@ -18,7 +18,7 @@ GLIBC_CONFOPTS:= --build=$(GNU_HOST_NAME) \
--disable-nscd \
--with-__thread \
--with-tls \
- --enable-kernel="2.6.0" \
+ --enable-kernel="2.6.32" \
--enable-add-ons
GLIBC_ENV:= PATH='${TARGET_PATH}' \
BUILD_CC=${CC_FOR_BUILD} \
diff --git a/toolchain/kernel-headers/patches/3.4.71/aufs2.patch b/toolchain/kernel-headers/patches/3.4.82/aufs2.patch
index d40c9a3fe..d40c9a3fe 100644
--- a/toolchain/kernel-headers/patches/3.4.71/aufs2.patch
+++ b/toolchain/kernel-headers/patches/3.4.82/aufs2.patch
diff --git a/toolchain/kernel-headers/patches/3.4.71/linux-gcc-check.patch b/toolchain/kernel-headers/patches/3.4.82/linux-gcc-check.patch
index 7cc381845..7cc381845 100644
--- a/toolchain/kernel-headers/patches/3.4.71/linux-gcc-check.patch
+++ b/toolchain/kernel-headers/patches/3.4.82/linux-gcc-check.patch
diff --git a/toolchain/kernel-headers/patches/3.4.71/microperl.patch b/toolchain/kernel-headers/patches/3.4.82/microperl.patch
index 44c39f6e8..44c39f6e8 100644
--- a/toolchain/kernel-headers/patches/3.4.71/microperl.patch
+++ b/toolchain/kernel-headers/patches/3.4.82/microperl.patch
diff --git a/toolchain/kernel-headers/patches/3.4.71/mkpiggy.patch b/toolchain/kernel-headers/patches/3.4.82/mkpiggy.patch
index d4e815cd2..d4e815cd2 100644
--- a/toolchain/kernel-headers/patches/3.4.71/mkpiggy.patch
+++ b/toolchain/kernel-headers/patches/3.4.82/mkpiggy.patch
diff --git a/toolchain/kernel-headers/patches/3.4.71/relocs.patch b/toolchain/kernel-headers/patches/3.4.82/relocs.patch
index 43c5bb580..43c5bb580 100644
--- a/toolchain/kernel-headers/patches/3.4.71/relocs.patch
+++ b/toolchain/kernel-headers/patches/3.4.82/relocs.patch
diff --git a/toolchain/musl/patches/mips64.patch b/toolchain/musl/patches/mips64.patch
deleted file mode 100644
index fdeb5017b..000000000
--- a/toolchain/musl/patches/mips64.patch
+++ /dev/null
@@ -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=..." ;;
diff --git a/toolchain/musl/patches/musl-git-20140225.patch b/toolchain/musl/patches/musl-git-20140225.patch
new file mode 100644
index 000000000..8ee372c0a
--- /dev/null
+++ b/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
diff --git a/toolchain/uClibc/Makefile b/toolchain/uClibc/Makefile
index 2a263974f..47084994e 100644
--- a/toolchain/uClibc/Makefile
+++ b/toolchain/uClibc/Makefile
@@ -56,6 +56,9 @@ endif
ifneq ($(ADK_PACKAGE_GDB),)
$(SED) "s/.*\(PTHREADS_DEBUG_SUPPORT\).*/\1=y/" ${WRKBUILD}/.config
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)
$(SED) 's,.*UCLIBC_HAS_SSP,UCLIBC_HAS_SSP=y,' ${WRKBUILD}/.config
echo "UCLIBC_HAS_SSP_COMPAT=n" >> ${WRKBUILD}/.config