summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2013-09-26 14:44:05 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2013-09-26 14:44:05 +0200
commit5ae441d42ae9d1b33793a3ca19a7c929344337f7 (patch)
tree74fde0e28f77fc9627149148231391b311961bfe
parentd871140e95bd81cf9ee4998d7199cff292241681 (diff)
parentd0cedd6214f7c35b73a22464c8688dbf9eb79f62 (diff)
Merge branch 'master' of git+ssh://openadk.org/git/openadk
-rw-r--r--mk/build.mk5
-rw-r--r--mk/image.mk10
-rw-r--r--mk/modules.mk2
-rw-r--r--mk/vars.mk5
-rw-r--r--package/MesaLib/Makefile2
-rw-r--r--package/MesaLib/patches/patch-bin_mklib8
-rw-r--r--package/MesaLib/patches/patch-src_gallium_auxiliary_util_u_debug_symbol_c26
-rw-r--r--package/MesaLib/patches/patch-src_gallium_include_pipe_p_config_h45
-rw-r--r--package/MesaLib/patches/patch-src_glsl_strtod_c32
-rw-r--r--package/MesaLib/patches/patch-src_mesa_main_imports_c33
-rw-r--r--package/MesaLib/patches/patch-src_mesa_main_imports_h13
-rw-r--r--package/MesaLib/patches/patch-src_mesa_main_querymatrix_c11
-rw-r--r--package/alsa-utils/Makefile5
-rw-r--r--package/alsa-utils/patches/patch-alsaloop_pcmjob_c11
-rw-r--r--package/boost/Makefile2
-rw-r--r--package/cifs-utils/patches/patch-mtab_c10
-rw-r--r--package/fltk/Makefile4
-rw-r--r--package/jamvm/Makefile10
-rw-r--r--package/libmpdclient/patches/patch-src_socket_c10
-rw-r--r--package/libmpdclient/patches/patch-src_sync_c11
-rw-r--r--package/libnl/Makefile2
-rw-r--r--package/libnl/patches/patch-lib_addr_c16
-rw-r--r--package/librt/Makefile2
-rw-r--r--package/libusb/Makefile11
-rw-r--r--package/libusb/patches/patch-ltmain_sh11
-rw-r--r--package/libxml2/Makefile6
-rw-r--r--package/libxml2/patches/patch-configure11
-rw-r--r--package/mesa-demos/Makefile4
-rw-r--r--package/mpd/Makefile8
-rw-r--r--package/mpd/patches/patch-src_output_alsa_plugin_c16
-rw-r--r--package/musl/Makefile6
-rw-r--r--package/ncurses/Makefile1
-rw-r--r--package/openafs/Makefile49
-rw-r--r--package/openafs/patches/patch-configure1183
-rw-r--r--package/openafs/patches/patch-configure-libafs1181
-rw-r--r--package/openafs/patches/patch-src_afs_afs_fetchstore_c12
-rw-r--r--package/openafs/patches/patch-src_afs_afs_memcache_c12
-rw-r--r--package/openafs/patches/patch-src_auth_userok_c10
-rw-r--r--package/openafs/patches/patch-src_comerr_Makefile_in38
-rw-r--r--package/openafs/patches/patch-src_comerr_error_table_y10
-rw-r--r--package/openafs/patches/patch-src_comerr_internal_h8
-rw-r--r--package/openafs/patches/patch-src_config_Makefile_config_in15
-rw-r--r--package/openafs/patches/patch-src_config_Makefile_in23
-rw-r--r--package/openafs/patches/patch-src_des_Makefile_in73
-rw-r--r--package/openafs/patches/patch-src_des_read_pssword_c52
-rw-r--r--package/openafs/patches/patch-src_libafs_MakefileProto_LINUX_in11
-rw-r--r--package/openafs/patches/patch-src_lwp_iomgr_c12
-rw-r--r--package/openafs/patches/patch-src_lwp_waitkey_c37
-rw-r--r--package/openafs/patches/patch-src_rx_rx_lwp_c10
-rw-r--r--package/openafs/patches/patch-src_rx_rx_trace_c10
-rw-r--r--package/openafs/patches/patch-src_rxgen_Makefile_in19
-rw-r--r--package/openafs/patches/patch-src_rxkad_rxkad_client_c10
-rw-r--r--package/openafs/patches/patch-src_shlibafsrpc_Makefile_in11
-rw-r--r--package/openafs/patches/patch-src_sys_glue_c12
-rw-r--r--package/openafs/src/src/comerr/internal.c22
-rw-r--r--package/php/Makefile6
-rw-r--r--package/php/files/php.ini6
-rw-r--r--package/polipo/patches/patch-dns_c12
-rw-r--r--package/rsync/Makefile2
-rw-r--r--package/rsync/patches/patch-Makefile_in11
-rw-r--r--package/screen/Makefile8
-rw-r--r--package/uclibc++/Makefile2
-rw-r--r--package/uclibc++/patches/patch-include_unwind-cxx_h21
-rw-r--r--package/vim/Makefile11
-rw-r--r--package/vim/patches/patch-src_auto_configure42
-rw-r--r--package/vte/Makefile37
-rw-r--r--package/xbmc/Makefile4
-rw-r--r--target/arm/kernel.config.sharp-zaurus599
-rw-r--r--target/linux/config/Config.in.misc3
-rw-r--r--target/linux/patches/3.9.11/arm-spitz.patch27
-rw-r--r--target/ppc/kernel.config407
-rw-r--r--target/ppc64/kernel.config421
-rw-r--r--target/sparc64/kernel.config583
-rw-r--r--toolchain/binutils/patches/2.23.2/arm-whitespace.patch23
-rw-r--r--toolchain/eglibc/Makefile5
-rw-r--r--toolchain/gcc/Makefile4
-rw-r--r--toolchain/gcc/patches/4.7.3/musl-cross.patch36
-rw-r--r--toolchain/gcc/patches/4.7.3/musl-mips64.patch14
-rw-r--r--toolchain/gcc/patches/4.7.3/musl-sparc.patch24
-rw-r--r--toolchain/gcc/patches/4.7.3/ppc-uclibc-cmath.patch217
-rw-r--r--toolchain/musl/Makefile7
-rw-r--r--toolchain/musl/Makefile.inc4
-rw-r--r--toolchain/musl/patches/0.9.13/musl-git.patch8837
83 files changed, 5047 insertions, 9495 deletions
diff --git a/mk/build.mk b/mk/build.mk
index e69821db0..d6e21fa85 100644
--- a/mk/build.mk
+++ b/mk/build.mk
@@ -32,6 +32,7 @@ DEFCONFIG= ADK_DEBUG=n \
ADK_PACKAGE_PACEMAKER_MGMTD=n \
ADK_PACKAGE_PACEMAKER_PYTHON_GUI=n \
ADK_PACKAGE_OPENJDK=n \
+ ADK_PACKAGE_OPENJDK7=n \
ADK_PACKAGE_CLASSPATH=n \
ADK_PACKAGE_GPSD=n \
ADK_PACKAGE_GPSD_CLIENTS=n \
@@ -590,7 +591,7 @@ bulk:
done
bulkall:
- for libc in uclibc eglibc glibc;do \
+ for libc in uclibc eglibc glibc musl;do \
while read arch; do \
systems=$$(./scripts/getsystems $$arch| grep -v toolchain|grep -v qemu); \
for system in $$systems;do \
@@ -608,7 +609,7 @@ bulkall:
done
bulkallmod:
- for libc in uclibc eglibc glibc;do \
+ for libc in uclibc eglibc glibc musl;do \
while read arch; do \
systems=$$(./scripts/getsystems $$arch| grep -v toolchain|grep -v qemu); \
for system in $$systems;do \
diff --git a/mk/image.mk b/mk/image.mk
index f8e995ce2..57664464e 100644
--- a/mk/image.mk
+++ b/mk/image.mk
@@ -60,6 +60,16 @@ ifeq ($(ADK_LINUX_X86_64),y)
rm -rf ${TARGET_DIR}/usr/lib/
(cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
endif
+ifeq ($(ADK_LINUX_SPARC64),y)
+ # fixup lib dirs
+ mv ${TARGET_DIR}/lib/* ${TARGET_DIR}/${ADK_TARGET_LIBC_PATH}
+ rm -rf ${TARGET_DIR}/lib/
+ ln -sf /${ADK_TARGET_LIBC_PATH} ${TARGET_DIR}/lib
+ -mkdir ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH} 2>/dev/null
+ mv ${TARGET_DIR}/usr/lib/* ${TARGET_DIR}/usr/${ADK_TARGET_LIBC_PATH}
+ rm -rf ${TARGET_DIR}/usr/lib/
+ (cd ${TARGET_DIR}/usr ; ln -sf ${ADK_TARGET_LIBC_PATH} lib)
+endif
ifeq ($(ADK_TARGET_ABI_N32),y)
# fixup lib dirs
mv ${TARGET_DIR}/lib/* ${TARGET_DIR}/${ADK_TARGET_LIBC_PATH}
diff --git a/mk/modules.mk b/mk/modules.mk
index ca1bf178c..5722d9800 100644
--- a/mk/modules.mk
+++ b/mk/modules.mk
@@ -1204,7 +1204,7 @@ $(eval $(call KMOD_template,SND_BCM2835,snd-bcm2835,\
#,65))
$(eval $(call KMOD_template,USB_VIDEO_CLASS,usb-video-class,\
- $(MODULES_DIR)/kernel/drivers/media/video/uvc/uvcvideo \
+ $(MODULES_DIR)/kernel/drivers/media/usb/uvc/uvcvideo \
,70))
$(eval $(call KMOD_template,USB_GSPCA,usb-gspca,\
diff --git a/mk/vars.mk b/mk/vars.mk
index e22a46beb..5c291f604 100644
--- a/mk/vars.mk
+++ b/mk/vars.mk
@@ -99,7 +99,7 @@ TARGET_LD:= ${TARGET_COMPILER_PREFIX}ld
TARGET_CPPFLAGS:=
TARGET_CFLAGS:= $(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident -fhonour-copts $(ADK_TARGET_ABI_CFLAGS)
-TARGET_CFLAGS_LIBC:= $(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident -fhonour-copts $(TARGET_OPTIMIZATION) -fPIC
+TARGET_CFLAGS_LIBC:= $(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident -fhonour-copts $(TARGET_OPTIMIZATION)
TARGET_CXXFLAGS:= $(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident
TARGET_LDFLAGS:= -L$(STAGING_TARGET_DIR)/lib -L$(STAGING_TARGET_DIR)/usr/lib \
-Wl,-O2 -Wl,-rpath -Wl,/usr/lib \
@@ -167,7 +167,8 @@ TARGET_CONFIGURE_OPTS= PATH='${TARGET_PATH}' \
CC='$(TARGET_CC)' \
GCC='$(TARGET_CC)' \
CXX='$(TARGET_CXX)' \
- CROSS='$(TARGET_CROSS)'
+ CROSS='$(TARGET_CROSS)' \
+ ARCH=${ARCH}
HOST_CONFIGURE_OPTS= CC_FOR_BUILD='${CC_FOR_BUILD}' \
CPPFLAGS_FOR_BUILD='${CPPFLAGS_FOR_BUILD}' \
diff --git a/package/MesaLib/Makefile b/package/MesaLib/Makefile
index d62773bd3..008c4eb4f 100644
--- a/package/MesaLib/Makefile
+++ b/package/MesaLib/Makefile
@@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:= MesaLib
PKG_VERSION:= 8.0.5
-PKG_RELEASE:= 1
+PKG_RELEASE:= 2
PKG_MD5SUM:= cda5d101f43b8784fa60bdeaca4056f2
PKG_DESCR:= MESA library
PKG_SECTION:= libs
diff --git a/package/MesaLib/patches/patch-bin_mklib b/package/MesaLib/patches/patch-bin_mklib
index 2f53c152c..a361c1105 100644
--- a/package/MesaLib/patches/patch-bin_mklib
+++ b/package/MesaLib/patches/patch-bin_mklib
@@ -1,7 +1,7 @@
diff -Nur Mesa-8.0.5.orig/bin/mklib Mesa-8.0.5/bin/mklib
--- Mesa-8.0.5.orig/bin/mklib 2012-10-24 21:03:58.000000000 +0200
-+++ Mesa-8.0.5/bin/mklib 2013-04-30 13:06:28.000000000 +0200
-@@ -333,12 +333,6 @@
++++ Mesa-8.0.5/bin/mklib 2013-09-19 11:59:49.000000000 +0200
+@@ -333,12 +333,6 @@ case $ARCH in
# Check if objects are 32-bit and we're running in 64-bit
# environment. If so, pass -m32 flag to linker.
set ${OBJECTS}
@@ -14,7 +14,7 @@ diff -Nur Mesa-8.0.5.orig/bin/mklib Mesa-8.0.5/bin/mklib
if [ "${ALTOPTS}" ] ; then
OPTS=${ALTOPTS}
-@@ -392,12 +386,6 @@
+@@ -392,12 +386,6 @@ case $ARCH in
# Check if objects are 32-bit and we're running in 64-bit
# environment. If so, pass -m32 flag to linker.
set ${OBJECTS}
@@ -27,7 +27,7 @@ diff -Nur Mesa-8.0.5.orig/bin/mklib Mesa-8.0.5/bin/mklib
if [ "${ALTOPTS}" ] ; then
OPTS=${ALTOPTS}
fi
-@@ -466,12 +454,6 @@
+@@ -466,12 +454,6 @@ case $ARCH in
# Check if objects are 32-bit and we're running in 64-bit
# environment. If so, pass -m32 flag to linker.
set ${OBJECTS}
diff --git a/package/MesaLib/patches/patch-src_gallium_auxiliary_util_u_debug_symbol_c b/package/MesaLib/patches/patch-src_gallium_auxiliary_util_u_debug_symbol_c
new file mode 100644
index 000000000..f1d92ca8c
--- /dev/null
+++ b/package/MesaLib/patches/patch-src_gallium_auxiliary_util_u_debug_symbol_c
@@ -0,0 +1,26 @@
+--- Mesa-8.0.5.orig/src/gallium/auxiliary/util/u_debug_symbol.c 2012-10-24 21:03:59.000000000 +0200
++++ Mesa-8.0.5/src/gallium/auxiliary/util/u_debug_symbol.c 2013-09-25 17:45:12.000000000 +0200
+@@ -151,23 +151,6 @@ debug_symbol_name_dbghelp(const void *ad
+ }
+ #endif
+
+-#ifdef __GLIBC__
+-#include <execinfo.h>
+-
+-/* This can only provide dynamic symbols, or binary offsets into a file.
+- *
+- * To fix this, post-process the output with tools/addr2line.sh
+- */
+-static INLINE void
+-debug_symbol_name_glibc(const void *addr, char* buf, unsigned size)
+-{
+- char** syms = backtrace_symbols((void**)&addr, 1);
+- strncpy(buf, syms[0], size);
+- buf[size - 1] = 0;
+- free(syms);
+-}
+-#endif
+-
+ void
+ debug_symbol_name(const void *addr, char* buf, unsigned size)
+ {
diff --git a/package/MesaLib/patches/patch-src_gallium_include_pipe_p_config_h b/package/MesaLib/patches/patch-src_gallium_include_pipe_p_config_h
new file mode 100644
index 000000000..5726c5c91
--- /dev/null
+++ b/package/MesaLib/patches/patch-src_gallium_include_pipe_p_config_h
@@ -0,0 +1,45 @@
+--- Mesa-8.0.5.orig/src/gallium/include/pipe/p_config.h 2012-10-24 21:03:59.000000000 +0200
++++ Mesa-8.0.5/src/gallium/include/pipe/p_config.h 2013-09-19 12:27:54.000000000 +0200
+@@ -111,7 +111,6 @@
+ * Endian detection.
+ */
+
+-#ifdef __GLIBC__
+ #include <endian.h>
+
+ #if __BYTE_ORDER == __LITTLE_ENDIAN
+@@ -120,34 +119,6 @@
+ # define PIPE_ARCH_BIG_ENDIAN
+ #endif
+
+-#elif defined(__APPLE__)
+-#include <machine/endian.h>
+-
+-#if __DARWIN_BYTE_ORDER == __DARWIN_LITTLE_ENDIAN
+-# define PIPE_ARCH_LITTLE_ENDIAN
+-#elif __DARWIN_BYTE_ORDER == __DARWIN_BIG_ENDIAN
+-# define PIPE_ARCH_BIG_ENDIAN
+-#endif
+-
+-#elif defined(__sun)
+-#include <sys/isa_defs.h>
+-
+-#if defined(_LITTLE_ENDIAN)
+-# define PIPE_ARCH_LITTLE_ENDIAN
+-#elif defined(_BIG_ENDIAN)
+-# define PIPE_ARCH_BIG_ENDIAN
+-#endif
+-
+-#else
+-
+-#if defined(PIPE_ARCH_X86) || defined(PIPE_ARCH_X86_64)
+-#define PIPE_ARCH_LITTLE_ENDIAN
+-#elif defined(PIPE_ARCH_PPC) || defined(PIPE_ARCH_PPC_64)
+-#define PIPE_ARCH_BIG_ENDIAN
+-#endif
+-
+-#endif
+-
+ #if !defined(PIPE_ARCH_LITTLE_ENDIAN) && !defined(PIPE_ARCH_BIG_ENDIAN)
+ #error Unknown Endianness
+ #endif
diff --git a/package/MesaLib/patches/patch-src_glsl_strtod_c b/package/MesaLib/patches/patch-src_glsl_strtod_c
new file mode 100644
index 000000000..ce6514dbb
--- /dev/null
+++ b/package/MesaLib/patches/patch-src_glsl_strtod_c
@@ -0,0 +1,32 @@
+--- Mesa-8.0.5.orig/src/glsl/strtod.c 2012-10-24 21:03:59.000000000 +0200
++++ Mesa-8.0.5/src/glsl/strtod.c 2013-09-25 17:34:06.000000000 +0200
+@@ -25,14 +25,6 @@
+
+
+ #include <stdlib.h>
+-
+-#ifdef _GNU_SOURCE
+-#include <locale.h>
+-#ifdef __APPLE__
+-#include <xlocale.h>
+-#endif
+-#endif
+-
+ #include "strtod.h"
+
+
+@@ -44,14 +36,5 @@
+ double
+ glsl_strtod(const char *s, char **end)
+ {
+-#if defined(_GNU_SOURCE) && !defined(__CYGWIN__) && !defined(__FreeBSD__) && \
+- !defined(__HAIKU__)
+- static locale_t loc = NULL;
+- if (!loc) {
+- loc = newlocale(LC_CTYPE_MASK, "C", NULL);
+- }
+- return strtod_l(s, end, loc);
+-#else
+ return strtod(s, end);
+-#endif
+ }
diff --git a/package/MesaLib/patches/patch-src_mesa_main_imports_c b/package/MesaLib/patches/patch-src_mesa_main_imports_c
new file mode 100644
index 000000000..10cbca86a
--- /dev/null
+++ b/package/MesaLib/patches/patch-src_mesa_main_imports_c
@@ -0,0 +1,33 @@
+--- Mesa-8.0.5.orig/src/mesa/main/imports.c 2012-10-24 21:03:59.000000000 +0200
++++ Mesa-8.0.5/src/mesa/main/imports.c 2013-09-25 17:41:11.000000000 +0200
+@@ -49,14 +49,6 @@
+ #include "mtypes.h"
+ #include "version.h"
+
+-#ifdef _GNU_SOURCE
+-#include <locale.h>
+-#ifdef __APPLE__
+-#include <xlocale.h>
+-#endif
+-#endif
+-
+-
+ #define MAXSTRING 4000 /* for vsnprintf() */
+
+ #ifdef WIN32
+@@ -766,14 +758,7 @@ _mesa_strdup( const char *s )
+ float
+ _mesa_strtof( const char *s, char **end )
+ {
+-#if defined(_GNU_SOURCE) && !defined(__CYGWIN__) && !defined(__FreeBSD__) && \
+- !defined(ANDROID) && !defined(__HAIKU__)
+- static locale_t loc = NULL;
+- if (!loc) {
+- loc = newlocale(LC_CTYPE_MASK, "C", NULL);
+- }
+- return strtof_l(s, end, loc);
+-#elif defined(_ISOC99_SOURCE) || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE >= 600)
++#if defined(_ISOC99_SOURCE) || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE >= 600)
+ return strtof(s, end);
+ #else
+ return (float)strtod(s, end);
diff --git a/package/MesaLib/patches/patch-src_mesa_main_imports_h b/package/MesaLib/patches/patch-src_mesa_main_imports_h
new file mode 100644
index 000000000..43896c847
--- /dev/null
+++ b/package/MesaLib/patches/patch-src_mesa_main_imports_h
@@ -0,0 +1,13 @@
+--- Mesa-8.0.5.orig/src/mesa/main/imports.h 2012-10-24 21:03:59.000000000 +0200
++++ Mesa-8.0.5/src/mesa/main/imports.h 2013-09-19 12:39:53.000000000 +0200
+@@ -568,10 +568,8 @@ _mesa_init_sqrt_table(void);
+
+ #ifdef __GNUC__
+
+-#if defined(__MINGW32__) || defined(__CYGWIN__) || defined(ANDROID) || defined(__APPLE__)
+ #define ffs __builtin_ffs
+ #define ffsll __builtin_ffsll
+-#endif
+
+ #define _mesa_ffs(i) ffs(i)
+ #define _mesa_ffsll(i) ffsll(i)
diff --git a/package/MesaLib/patches/patch-src_mesa_main_querymatrix_c b/package/MesaLib/patches/patch-src_mesa_main_querymatrix_c
new file mode 100644
index 000000000..f178bfef0
--- /dev/null
+++ b/package/MesaLib/patches/patch-src_mesa_main_querymatrix_c
@@ -0,0 +1,11 @@
+--- Mesa-8.0.5.orig/src/mesa/main/querymatrix.c 2012-03-30 18:19:03.000000000 +0200
++++ Mesa-8.0.5/src/mesa/main/querymatrix.c 2013-09-19 12:19:01.000000000 +0200
+@@ -70,7 +70,7 @@ fpclassify(double x)
+ }
+ }
+
+-#elif defined(__APPLE__) || defined(__CYGWIN__) || defined(__FreeBSD__) || \
++#elif defined(fpclassify) || defined(__APPLE__) || defined(__CYGWIN__) || defined(__FreeBSD__) || \
+ defined(__OpenBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || \
+ (defined(__sun) && defined(__C99FEATURES__)) || defined(__MINGW32__) || \
+ (defined(__sun) && defined(__GNUC__)) || defined(ANDROID) || defined(__HAIKU__)
diff --git a/package/alsa-utils/Makefile b/package/alsa-utils/Makefile
index 3453b4b7c..8f9f1b3d6 100644
--- a/package/alsa-utils/Makefile
+++ b/package/alsa-utils/Makefile
@@ -4,9 +4,9 @@
include ${TOPDIR}/rules.mk
PKG_NAME:= alsa-utils
-PKG_VERSION:= 1.0.26
+PKG_VERSION:= 1.0.27.2
PKG_RELEASE:= 1
-PKG_MD5SUM:= 4dcf1017fafc91603af96705c073eca9
+PKG_MD5SUM:= b65e9a04181bd7c9db7667a4566f8dc3
PKG_DESCR:= ALSA mixer utility
PKG_SECTION:= multimedia
PKG_DEPENDS:= alsa-lib libpthread
@@ -25,6 +25,7 @@ include ${TOPDIR}/mk/package.mk
$(eval $(call PKG_template,ALSA_UTILS,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+TARGET_CPPFLAGS+= -D_GNU_SOURCE -D_POSIX_SOURCE
CONFIGURE_ARGS+= --disable-xmlto
ifeq (${ADK_PACKAGE_ALSA_UTILS_WITH_ALSAMIXER},y)
CONFIGURE_ARGS+= --enable-alsamixer
diff --git a/package/alsa-utils/patches/patch-alsaloop_pcmjob_c b/package/alsa-utils/patches/patch-alsaloop_pcmjob_c
new file mode 100644
index 000000000..3c39d8a0c
--- /dev/null
+++ b/package/alsa-utils/patches/patch-alsaloop_pcmjob_c
@@ -0,0 +1,11 @@
+--- alsa-utils-1.0.27.2.orig/alsaloop/pcmjob.c 2013-07-09 17:28:37.000000000 +0200
++++ alsa-utils-1.0.27.2/alsaloop/pcmjob.c 2013-09-18 10:46:36.000000000 +0200
+@@ -63,7 +63,7 @@ static const char *src_types[] = {
+ #endif
+
+ static pthread_mutex_t pcm_open_mutex =
+- PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
++ {{{1,0,0,0,0,0,0,0,0,0}}};
+
+ static inline void pcm_open_lock(void)
+ {
diff --git a/package/boost/Makefile b/package/boost/Makefile
index 168b20070..271b2937c 100644
--- a/package/boost/Makefile
+++ b/package/boost/Makefile
@@ -15,7 +15,7 @@ PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=boost/}
DISTFILES:= boost_1_54_0.tar.gz
WRKDIST= ${WRKDIR}/${PKG_NAME}_1_54_0
-PKG_ARCH_DEPENDS:= !mips
+PKG_LIBC_DEPENDS:= eglibc glibc musl
PKG_SUBPKGS:= BOOST BOOST_DEV
PKGSD_BOOST_DEV:= boost header files
diff --git a/package/cifs-utils/patches/patch-mtab_c b/package/cifs-utils/patches/patch-mtab_c
new file mode 100644
index 000000000..dbbd27317
--- /dev/null
+++ b/package/cifs-utils/patches/patch-mtab_c
@@ -0,0 +1,10 @@
+--- cifs-utils-6.0.orig/mtab.c 2013-03-25 15:52:05.000000000 +0100
++++ cifs-utils-6.0/mtab.c 2013-09-18 10:52:53.000000000 +0200
+@@ -36,6 +36,7 @@
+ #include <time.h>
+ #include <fcntl.h>
+ #include <mntent.h>
++#include <paths.h>
+ #include <stdlib.h>
+ #include <signal.h>
+ #include "mount.h"
diff --git a/package/fltk/Makefile b/package/fltk/Makefile
index 8ac5c3c21..de5cb6459 100644
--- a/package/fltk/Makefile
+++ b/package/fltk/Makefile
@@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:= fltk
PKG_VERSION:= 1.3.2
-PKG_RELEASE:= 1
+PKG_RELEASE:= 2
PKG_MD5SUM:= 9f7e707d4fb7a5a76f0f9b73ff70623d
PKG_DESCR:= fast light toolkit
PKG_SECTION:= libs
@@ -25,7 +25,7 @@ include $(TOPDIR)/mk/package.mk
$(eval $(call PKG_template,LIBFLTK,libfltk,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-LIBRARIES:=-nodefaultlibs -luClibc++ -lgcc -lm -lc
+LIBRARIES:=-nodefaultlibs -luClibc++ -lgcc -lgcc_s -lm -lc
ifeq ($(ADK_TOOLCHAIN_GCC_USE_SSP),y)
LIBRARIES+=-lssp -lssp_nonshared
endif
diff --git a/package/jamvm/Makefile b/package/jamvm/Makefile
index aeb37e177..da0b141af 100644
--- a/package/jamvm/Makefile
+++ b/package/jamvm/Makefile
@@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk
PKG_NAME:= jamvm
PKG_VERSION:= 1.5.4
-PKG_RELEASE:= 1
+PKG_RELEASE:= 2
PKG_MD5SUM:= 7654e9657691f5f09c4f481ed4686176
PKG_DESCR:= A Java Virtual Machine (JVM) implementation
PKG_SECTION:= lang
@@ -14,7 +14,7 @@ PKG_BUILDDEP:= libffi zlib
PKG_URL:= http://jamvm.sourceforge.net
PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=jamvm/}
-PKG_ARCH_DEPENDS:= !cris !mips !avr32
+PKG_ARCH_DEPENDS:= !cris !avr32
include ${TOPDIR}/mk/package.mk
@@ -24,6 +24,12 @@ BUILD_STYLE:= manual
INSTALL_STYLE:= manual
CONFIGURE_ARGS+= --enable-ffi
+ifeq ($(ARCH),mips)
+CONFIGURE_ARGS+= --disable-tls
+endif
+ifeq ($(ARCH),arm)
+CONFIGURE_ARGS+= --disable-tls
+endif
do-build:
${INSTALL_DIR} ${WRKINST}/usr/bin
diff --git a/package/libmpdclient/patches/patch-src_socket_c b/package/libmpdclient/patches/patch-src_socket_c
new file mode 100644
index 000000000..5417eccd7
--- /dev/null
+++ b/package/libmpdclient/patches/patch-src_socket_c
@@ -0,0 +1,10 @@
+--- libmpdclient-2.8.orig/src/socket.c 2010-01-01 15:17:56.000000000 +0100
++++ libmpdclient-2.8/src/socket.c 2013-09-18 11:03:04.000000000 +0200
+@@ -35,6 +35,7 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <fcntl.h>
++#include <sys/select.h>
+ #include <unistd.h>
+
+ #ifdef WIN32
diff --git a/package/libmpdclient/patches/patch-src_sync_c b/package/libmpdclient/patches/patch-src_sync_c
new file mode 100644
index 000000000..b9c5ec10d
--- /dev/null
+++ b/package/libmpdclient/patches/patch-src_sync_c
@@ -0,0 +1,11 @@
+--- libmpdclient-2.8.orig/src/sync.c 2010-01-01 15:17:56.000000000 +0100
++++ libmpdclient-2.8/src/sync.c 2013-09-18 11:04:49.000000000 +0200
+@@ -34,6 +34,8 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <fcntl.h>
++#include <time.h>
++#include <sys/select.h>
+ #include <unistd.h>
+
+ static bool
diff --git a/package/libnl/Makefile b/package/libnl/Makefile
index fc40fd2ac..68b45bf0c 100644
--- a/package/libnl/Makefile
+++ b/package/libnl/Makefile
@@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk
PKG_NAME:= libnl
PKG_VERSION:= 3.2.22
-PKG_RELEASE:= 1
+PKG_RELEASE:= 2
PKG_MD5SUM:= 2e1c889494d274aca24ce5f6a748e66e
PKG_DESCR:= Netlink library
PKG_SECTION:= libs
diff --git a/package/libnl/patches/patch-lib_addr_c b/package/libnl/patches/patch-lib_addr_c
new file mode 100644
index 000000000..7e1622bc4
--- /dev/null
+++ b/package/libnl/patches/patch-lib_addr_c
@@ -0,0 +1,16 @@
+--- libnl-3.2.22.orig/lib/addr.c 2013-04-05 10:35:44.000000000 +0200
++++ libnl-3.2.22/lib/addr.c 2013-09-26 11:13:50.000000000 +0200
+@@ -33,6 +33,13 @@
+ #include <netlink/addr.h>
+ #include <linux/socket.h>
+
++#ifndef PF_RDS
++#define PF_RDS 21
++#endif
++#ifndef AF_RDS
++#define AF_RDS PF_RDS
++#endif
++
+ /* All this DECnet stuff is stolen from iproute2, thanks to whoever wrote
+ * this, probably Alexey. */
+ static inline uint16_t dn_ntohs(uint16_t addr)
diff --git a/package/librt/Makefile b/package/librt/Makefile
index 9695257f8..17327a642 100644
--- a/package/librt/Makefile
+++ b/package/librt/Makefile
@@ -41,7 +41,9 @@ INSTALL_STYLE:= manual
librt-install:
ifeq ($(ADK_NATIVE),)
${INSTALL_DIR} ${IDIR_LIBRT}/$(ADK_TARGET_LIBC_PATH)
+ifeq ($(ADK_TARGET_LIB_MUSL),)
${CP} ${STAGING_TARGET_DIR}/lib/librt*.so* ${IDIR_LIBRT}/$(ADK_TARGET_LIBC_PATH)
endif
+endif
include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/libusb/Makefile b/package/libusb/Makefile
index 8818e6310..eeff44616 100644
--- a/package/libusb/Makefile
+++ b/package/libusb/Makefile
@@ -3,14 +3,14 @@
include ${TOPDIR}/rules.mk
-PKG_NAME:= libusb
-PKG_VERSION:= 1.0.8
+PKG_NAME:= libusbx
+PKG_VERSION:= 1.0.16
PKG_RELEASE:= 1
-PKG_MD5SUM:= 37d34e6eaa69a4b645a19ff4ca63ceef
+PKG_MD5SUM:= 7f5715d624cd6c26b30a317eb6c2fe5e
PKG_DESCR:= a library for accessing Linux USB devices
PKG_SECTION:= libs
PKG_URL:= http://libusb.wiki.sourceforge.net/
-PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=libusb/}
+PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=libusbx/}
PKG_SUBPKGS:= LIBUSB LIBUSB_DEV
PKGSD_LIBUSB_DEV:= header files for libusb library
@@ -27,6 +27,9 @@ include ${TOPDIR}/mk/package.mk
$(eval $(call PKG_template,LIBUSB,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
$(eval $(call PKG_template,LIBUSB_DEV,${PKG_NAME}-dev,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKGSD_LIBUSB_DEV},${PKGSC_LIBUSB_DEV},${PKG_OPTS}))
+TARGET_CPPFLAGS= -DTIMESPEC_TO_TIMEVAL=
+CONFIGURE_ARGS+= --disable-udev
+
libusb-install:
${INSTALL_DIR} ${IDIR_LIBUSB}/usr/lib
${CP} ${WRKINST}/usr/lib/libusb*.so* ${IDIR_LIBUSB}/usr/lib
diff --git a/package/libusb/patches/patch-ltmain_sh b/package/libusb/patches/patch-ltmain_sh
deleted file mode 100644
index 7ac5092b0..000000000
--- a/package/libusb/patches/patch-ltmain_sh
+++ /dev/null
@@ -1,11 +0,0 @@
---- libusb-1.0.8.orig/ltmain.sh 2010-05-05 00:02:07.000000000 +0200
-+++ libusb-1.0.8/ltmain.sh 2011-01-14 19:20:50.000000000 +0100
-@@ -4765,7 +4765,7 @@ func_mode_link ()
- # -p, -pg, --coverage, -fprofile-* pass through profiling flag for GCC
- # @file GCC response files
- -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-- -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*)
-+ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-fstack-protector*|-flto)
- func_quote_for_eval "$arg"
- arg="$func_quote_for_eval_result"
- func_append compile_command " $arg"
diff --git a/package/libxml2/Makefile b/package/libxml2/Makefile
index d8b994ab1..602d2d551 100644
--- a/package/libxml2/Makefile
+++ b/package/libxml2/Makefile
@@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk
PKG_NAME:= libxml2
PKG_VERSION:= 2.9.1
-PKG_RELEASE:= 1
+PKG_RELEASE:= 2
PKG_MD5SUM:= 9c0cfef285d5c4a5c80d00904ddab380
PKG_DESCR:= XML C parser and toolkit
PKG_SECTION:= libs
@@ -30,6 +30,7 @@ $(eval $(call PKG_template,LIBXML2_PYTHON,libxml2-python,${PKG_VERSION}-${PKG_RE
include $(TOPDIR)/mk/python.mk
TARGET_CFLAGS:= $(filter-out -flto,$(TARGET_CFLAGS))
+TARGET_LDFLAGS+= -lpthread
ifneq ($(ADK_PACKAGE_LIBXML2_PYTHON),)
CONFIGURE_ARGS+= --with-python=${STAGING_DIR}/usr
else
@@ -62,6 +63,9 @@ CONFIGURE_ARGS+= --without-c14n \
--with-xptr \
--with-zlib
+pre-configure:
+ ${INSTALL_DIR} ${STAGING_DIR}/usr/lib/site-packages
+
libxml2-install:
${INSTALL_DIR} ${IDIR_LIBXML2}/usr/lib
${CP} ${WRKINST}/usr/lib/libxml2.so* ${IDIR_LIBXML2}/usr/lib
diff --git a/package/libxml2/patches/patch-configure b/package/libxml2/patches/patch-configure
index 13406bc62..2f9b3b5bf 100644
--- a/package/libxml2/patches/patch-configure
+++ b/package/libxml2/patches/patch-configure
@@ -1,5 +1,5 @@
--- libxml2-2.9.1.orig/configure 2013-04-19 09:36:11.000000000 +0200
-+++ libxml2-2.9.1/configure 2013-09-04 15:16:48.000000000 +0200
++++ libxml2-2.9.1/configure 2013-09-25 13:59:27.000000000 +0200
@@ -14010,17 +14010,17 @@ case ${host} in
esac
@@ -22,6 +22,15 @@
else
if test -x "$with_python/python.exe"
then
+@@ -14122,7 +14122,7 @@ fi
+ else
+ if test -d $with_python/lib/site-packages
+ then
+- PYTHON_SITE_PACKAGES=$with_python/lib/site-packages
++ PYTHON_SITE_PACKAGES=/usr/lib/python$PYTHON_VERSION/site-packages
+ else
+ PYTHON_SITE_PACKAGES=`$PYTHON -c "from distutils import sysconfig; print(sysconfig.get_python_lib())"`
+ fi
@@ -14148,7 +14148,7 @@ else
PYTHON_SUBDIR=
fi
diff --git a/package/mesa-demos/Makefile b/package/mesa-demos/Makefile
index 65506f4e7..a0ab20771 100644
--- a/package/mesa-demos/Makefile
+++ b/package/mesa-demos/Makefile
@@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk
PKG_NAME:= mesa-demos
PKG_VERSION:= 8.1.0
-PKG_RELEASE:= 1
+PKG_RELEASE:= 2
PKG_MD5SUM:= 4049d98dd4131212e2842b770f1b0fa5
PKG_DESCR:= MESA demo apps
PKG_SECTION:= misc
PKG_DEPENDS:= mesalib
-PKG_BUILDDEP:= MesaLib
+PKG_BUILDDEP:= MesaLib libglew
PKG_SITES:= ftp://ftp.freedesktop.org/pub/mesa/demos/${PKG_VERSION}/
PKG_SUBPKGS:= GLXINFO
diff --git a/package/mpd/Makefile b/package/mpd/Makefile
index 276a223ae..abd47f4e7 100644
--- a/package/mpd/Makefile
+++ b/package/mpd/Makefile
@@ -4,9 +4,9 @@
include ${TOPDIR}/rules.mk
PKG_NAME:= mpd
-PKG_VERSION:= 0.17.4
-PKG_RELEASE:= 8
-PKG_MD5SUM:= ab408a61f49f215ce77ed0cf1deed6e1
+PKG_VERSION:= 0.17.5
+PKG_RELEASE:= 1
+PKG_MD5SUM:= b68be330deeb23989c08a9fefd9fcdeb
PKG_DESCR:= A music player daemon
PKG_SECTION:= multimedia
PKG_DEPENDS:= glib libstdcxx
@@ -105,8 +105,8 @@ include ${TOPDIR}/mk/package.mk
$(eval $(call PKG_template,MPD,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_FDEPENDS},${PKG_DESCR},${PKG_SECTION}))
+TARGET_CPPFLAGS+= -D_GNU_SOURCE -D_POSIX_SOURCE
TARGET_CFLAGS+= -std=gnu99
-XAKE_FLAGS+= MPD_CFLAGS='-D_GNU_SOURCE'
CONFIGURE_ENV+= ac_cv_lib_nsl_gethostbyname=no
CONFIGURE_ARGS+= --disable-httpd-output \
--disable-jack \
diff --git a/package/mpd/patches/patch-src_output_alsa_plugin_c b/package/mpd/patches/patch-src_output_alsa_plugin_c
deleted file mode 100644
index 98479eb7d..000000000
--- a/package/mpd/patches/patch-src_output_alsa_plugin_c
+++ /dev/null
@@ -1,16 +0,0 @@
-* will be better solved in mpd 1.16.4
-
---- mpd-0.16.2.orig/src/output/alsa_plugin.c 2011-03-19 01:41:53.000000000 +0100
-+++ mpd-0.16.2/src/output/alsa_plugin.c 2011-05-14 13:44:14.000000000 +0200
-@@ -646,8 +646,9 @@ alsa_play(void *data, const void *chunk,
- while (true) {
- snd_pcm_sframes_t ret = ad->writei(ad->pcm, chunk, size);
- if (ret > 0) {
-- ad->period_position = (ad->period_position + ret)
-- % ad->period_frames;
-+ // SIGFPE!
-+ //ad->period_position = (ad->period_position + ret)
-+ // % ad->period_frames;
- return ret * ad->frame_size;
- }
-
diff --git a/package/musl/Makefile b/package/musl/Makefile
index bd62e4299..b1f4ddbaa 100644
--- a/package/musl/Makefile
+++ b/package/musl/Makefile
@@ -36,6 +36,12 @@ endif
ifeq ($(CPU_ARCH),mipsel)
MARCH:= mips
endif
+ifeq ($(CPU_ARCH),mips64el)
+MARCH:= mips
+endif
+ifeq ($(CPU_ARCH),mips64)
+MARCH:= mips
+endif
ifeq ($(CPU_ARCH),ppc)
MARCH:= powerpc
endif
diff --git a/package/ncurses/Makefile b/package/ncurses/Makefile
index e9aaddf9a..4a2eea8e7 100644
--- a/package/ncurses/Makefile
+++ b/package/ncurses/Makefile
@@ -24,6 +24,7 @@ include ${TOPDIR}/mk/package.mk
$(eval $(call PKG_template,LIBNCURSES,libncurses,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
$(eval $(call PKG_template,LIBNCURSES_DEV,libncurses-dev,${PKG_VERSION}-${PKG_RELEASE},libncurses,${PKGSD_LIBNCURSES_DEV},${PKGSC_LIBNCURSES_DEV}))
+TARGET_CFLAGS+= -lgcc
CONFIGURE_ENV+= ac_cv_linux_vers=2
CONFIGURE_ARGS+= --without-cxx \
--without-cxx-binding \
diff --git a/package/openafs/Makefile b/package/openafs/Makefile
new file mode 100644
index 000000000..37b37980d
--- /dev/null
+++ b/package/openafs/Makefile
@@ -0,0 +1,49 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:= openafs
+PKG_VERSION:= 1.6.5
+PKG_RELEASE:= 1
+PKG_MD5SUM:= e33e0b031760d4f90815d40b8ab3c540
+PKG_DESCR:= AFS implementation
+PKG_SECTION:= net/fs
+PKG_URL:= http://openafs.org
+PKG_SITES:= http://www.openafs.org/dl/openafs/${PKG_VERSION}/
+
+PKG_CFLINE_OPENAFS+= select ADK_KERNEL_KEYS
+
+DISTFILES:= ${PKG_NAME}-${PKG_VERSION}-src.tar.bz2
+
+include $(TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,OPENAFS,openafs,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+
+XAKE_FLAGS+= GCC_HONOUR_COPTS=s
+CONFIGURE_ENV+= ac_cv_path_PATH_CPP=$(TARGET_CROSS)cpp
+CONFIGURE_ARGS:= --with-afs-sysname=$(ARCH)_linux26 \
+ --with-linux-kernel-headers=${LINUX_DIR} \
+ --disable-strip-binaries \
+ --disable-linux-syscall-probing
+
+openafs-install:
+ $(INSTALL_DIR) $(IDIR_OPENAFS)/usr/bin
+ $(INSTALL_DIR) $(IDIR_OPENAFS)/usr/lib
+ $(INSTALL_DIR) $(IDIR_OPENAFS)/usr/sbin
+ $(INSTALL_DIR) $(IDIR_OPENAFS)/usr/libexec/openafs
+ $(INSTALL_BIN) $(WRKINST)/usr/bin/* \
+ $(IDIR_OPENAFS)/usr/bin
+ $(INSTALL_BIN) $(WRKINST)/usr/sbin/* \
+ $(IDIR_OPENAFS)/usr/sbin
+ $(INSTALL_BIN) $(WRKINST)/usr/libexec/openafs/* \
+ $(IDIR_OPENAFS)/usr/libexec/openafs
+ $(CP) $(WRKINST)/usr/lib/*.so* \
+ $(IDIR_OPENAFS)/usr/lib
+ ${INSTALL_DIR} ${IDIR_OPENAFS}/etc/modules.d/
+ echo "libafs" > ${IDIR_OPENAFS}/etc/modules.d/90-libafs
+ ${INSTALL_DIR} ${IDIR_OPENAFS}/lib/modules/${KERNEL_VERSION}
+ $(CP) $(WRKINST)/usr/lib/openafs/libafs-${KERNEL_VERSION}.ko \
+ $(IDIR_OPENAFS)/lib/modules/${KERNEL_VERSION}/libafs.ko
+
+include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/openafs/patches/patch-configure b/package/openafs/patches/patch-configure
new file mode 100644
index 000000000..72205410d
--- /dev/null
+++ b/package/openafs/patches/patch-configure
@@ -0,0 +1,1183 @@
+--- openafs-1.6.5.orig/configure 2013-07-18 07:31:08.000000000 +0200
++++ openafs-1.6.5/configure 2013-09-23 21:55:38.235187280 +0200
+@@ -7258,7 +7258,7 @@ void conftest(void)
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_is_uml=yes
+ else
+@@ -7590,8 +7590,8 @@ void conftest(void)
+
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+- echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ echo make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_linux_kbuild_requires_extra_cflags=no
+ else
+@@ -7664,7 +7664,7 @@ void conftest(void)
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then :
+ else
+@@ -7750,7 +7750,7 @@ return;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_header_config_h=yes
+ else
+@@ -7834,7 +7834,7 @@ return;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_header_completion_h=yes
+ else
+@@ -7918,7 +7918,7 @@ return;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_header_exportfs_h=yes
+ else
+@@ -8002,7 +8002,7 @@ return;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_header_freezer_h=yes
+ else
+@@ -8086,7 +8086,7 @@ return;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_header_key_type_h=yes
+ else
+@@ -8170,7 +8170,7 @@ return;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_header_semaphore_h=yes
+ else
+@@ -8254,7 +8254,7 @@ return;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_header_seq_file_h=yes
+ else
+@@ -8339,7 +8339,7 @@ struct vfs_path _test;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_type_struct_vfs_path_exists=yes
+ else
+@@ -8424,7 +8424,7 @@ struct address_space_operations _test; p
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_address_space_operations_has_write_begin=yes
+ else
+@@ -8509,7 +8509,7 @@ struct backing_dev_info _test; printk("%
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_backing_dev_info_has_name=yes
+ else
+@@ -8594,7 +8594,7 @@ struct cred _test; printk("%x\n", &_test
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_cred_has_session_keyring=yes
+ else
+@@ -8679,7 +8679,7 @@ struct ctl_table _test; printk("%x\n", &
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_ctl_table_has_ctl_name=yes
+ else
+@@ -8764,7 +8764,7 @@ struct dentry_operations _test; printk("
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_dentry_operations_has_d_automount=yes
+ else
+@@ -8849,7 +8849,7 @@ struct inode _test; printk("%x\n", &_tes
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_inode_has_i_alloc_sem=yes
+ else
+@@ -8934,7 +8934,7 @@ struct inode _test; printk("%x\n", &_tes
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_inode_has_i_blkbits=yes
+ else
+@@ -9019,7 +9019,7 @@ struct inode _test; printk("%x\n", &_tes
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_inode_has_i_blksize=yes
+ else
+@@ -9104,7 +9104,7 @@ struct inode _test; printk("%x\n", &_tes
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_inode_has_i_mutex=yes
+ else
+@@ -9189,7 +9189,7 @@ struct inode _test; printk("%x\n", &_tes
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_inode_has_i_security=yes
+ else
+@@ -9274,7 +9274,7 @@ struct file_operations _test; printk("%x
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_file_operations_has_flock=yes
+ else
+@@ -9359,7 +9359,7 @@ struct file_operations _test; printk("%x
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_file_operations_has_sendfile=yes
+ else
+@@ -9444,7 +9444,7 @@ struct file_system_type _test; printk("%
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_file_system_type_has_mount=yes
+ else
+@@ -9529,7 +9529,7 @@ struct filename _test; printk("%x\n", &_
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_filename_has_name=yes
+ else
+@@ -9614,7 +9614,7 @@ struct inode_operations _test; printk("%
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_inode_operations_has_truncate=yes
+ else
+@@ -9699,7 +9699,7 @@ struct key_type _test; printk("%x\n", &_
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_key_type_has_preparse=yes
+ else
+@@ -9784,7 +9784,7 @@ struct nameidata _test; printk("%x\n", &
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_nameidata_has_path=yes
+ else
+@@ -9869,7 +9869,7 @@ struct proc_dir_entry _test; printk("%x\
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_proc_dir_entry_has_owner=yes
+ else
+@@ -9954,7 +9954,7 @@ struct super_block _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_super_block_has_s_bdi=yes
+ else
+@@ -10039,7 +10039,7 @@ struct super_block _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_super_block_has_s_d_op=yes
+ else
+@@ -10124,7 +10124,7 @@ struct super_operations _test; printk("%
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_super_operations_has_alloc_inode=yes
+ else
+@@ -10209,7 +10209,7 @@ struct super_operations _test; printk("%
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_super_operations_has_evict_inode=yes
+ else
+@@ -10294,7 +10294,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_cred=yes
+ else
+@@ -10379,7 +10379,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_exit_state=yes
+ else
+@@ -10464,7 +10464,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_parent=yes
+ else
+@@ -10549,7 +10549,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_real_parent=yes
+ else
+@@ -10634,7 +10634,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_rlim=yes
+ else
+@@ -10719,7 +10719,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_sig=yes
+ else
+@@ -10804,7 +10804,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_sighand=yes
+ else
+@@ -10889,7 +10889,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_sigmask_lock=yes
+ else
+@@ -10974,7 +10974,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_tgid=yes
+ else
+@@ -11059,7 +11059,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_thread_info=yes
+ else
+@@ -11145,7 +11145,7 @@ struct task_struct _tsk; printk("%d\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_signal_rlim=yes
+ else
+@@ -11230,7 +11230,7 @@ read_descriptor_t _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_read_descriptor_t_has_buf=yes
+ else
+@@ -11316,7 +11316,7 @@ bdi_init(NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_bdi_init=yes
+ else
+@@ -11401,7 +11401,7 @@ struct page *_page;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_PageChecked=yes
+ else
+@@ -11488,7 +11488,7 @@ struct page *_page;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_PageFsMisc=yes
+ else
+@@ -11573,7 +11573,7 @@ clear_inode(NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_clear_inode=yes
+ else
+@@ -11657,7 +11657,7 @@ struct timespec s;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_current_kernel_time=yes
+ else
+@@ -11741,7 +11741,7 @@ d_alloc_anon(NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_d_alloc_anon=yes
+ else
+@@ -11824,7 +11824,7 @@ d_make_root(NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_d_make_root=yes
+ else
+@@ -11907,7 +11907,7 @@ do_sync_read(NULL, NULL, 0, NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_do_sync_read=yes
+ else
+@@ -11990,7 +11990,7 @@ pid_t p; find_task_by_pid(p);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_find_task_by_pid=yes
+ else
+@@ -12073,7 +12073,7 @@ generic_file_aio_read(NULL,NULL,0,0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_generic_file_aio_read=yes
+ else
+@@ -12156,7 +12156,7 @@ grab_cache_page_write_begin(NULL, 0, 0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_grab_cache_page_write_begin=yes
+ else
+@@ -12239,7 +12239,7 @@ hlist_unhashed(0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_hlist_unhashed=yes
+ else
+@@ -12322,7 +12322,7 @@ i_size_read(NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_size_read=yes
+ else
+@@ -12405,7 +12405,7 @@ inode_setattr(NULL, NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_inode_setattr=yes
+ else
+@@ -12488,7 +12488,7 @@ kernel_setsockopt(NULL, 0, 0, NULL, 0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_kernel_setsockopt=yes
+ else
+@@ -12571,7 +12571,7 @@ page_follow_link(0,0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_page_follow_link=yes
+ else
+@@ -12654,7 +12654,7 @@ page_offset(NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_page_offset=yes
+ else
+@@ -12737,7 +12737,7 @@ __pagevec_lru_add_file(NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_pagevec_lru_add_file=yes
+ else
+@@ -12821,7 +12821,7 @@ path_lookup(NULL, 0, NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_path_lookup=yes
+ else
+@@ -12905,7 +12905,7 @@ proc_create(NULL, 0, NULL, NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_proc_create=yes
+ else
+@@ -12988,7 +12988,7 @@ rcu_read_lock();
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_rcu_read_lock=yes
+ else
+@@ -13071,7 +13071,7 @@ set_nlink(NULL, 1);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_set_nlink=yes
+ else
+@@ -13154,7 +13154,7 @@ splice_direct_to_actor(NULL,NULL,NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_splice_direct_to_actor=yes
+ else
+@@ -13237,7 +13237,7 @@ svc_addr_in(NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_svc_addr_in=yes
+ else
+@@ -13320,7 +13320,7 @@ zero_user_segments(NULL, 0, 0, 0, 0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_zero_user_segments=yes
+ else
+@@ -13403,7 +13403,7 @@ void *address = &noop_fsync; printk("%p\
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_noop_fsync=yes
+ else
+@@ -13487,7 +13487,7 @@ kthread_run(NULL, NULL, "test");
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_kthread_run=yes
+ else
+@@ -13580,7 +13580,7 @@ extern ssize_t
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_aio_nonvector=yes
+ else
+@@ -13667,7 +13667,7 @@ struct proc_dir_entry *p = proc_root_fs;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_proc_root_fs=yes
+ else
+@@ -13756,7 +13756,7 @@ extern struct kmem_cache *
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kmem_cache_init=yes
+ else
+@@ -13845,7 +13845,7 @@ kmem_cache_t *k;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_have_kmem_cache_t=yes
+ else
+@@ -13930,7 +13930,7 @@ kmem_cache_create(NULL, 0, 0, 0, NULL, N
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kmem_cache_create_takes_dtor=yes
+ else
+@@ -14015,7 +14015,7 @@ void _ctor(void *v) { }; kmem_cache_crea
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kmem_cache_create_ctor_takes_void=yes
+ else
+@@ -14100,7 +14100,7 @@ struct path *p; d_path(p, NULL, 0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_d_path_takes_struct_path=yes
+ else
+@@ -14186,7 +14186,7 @@ struct export_operations _eops;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_new_export_ops=yes
+ else
+@@ -14275,7 +14275,7 @@ struct inode _inode;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_inode_setattr_returns_int=yes
+ else
+@@ -14367,7 +14367,7 @@ struct nameidata _nameidata;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_create_takes_nameidata=yes
+ else
+@@ -14460,7 +14460,7 @@ struct nameidata _nameidata;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_lookup_takes_nameidata=yes
+ else
+@@ -14551,7 +14551,7 @@ struct inode _inode = {0};
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_permission_takes_flags=yes
+ else
+@@ -14641,7 +14641,7 @@ struct nameidata _nameidata;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_permission_takes_nameidata=yes
+ else
+@@ -14734,7 +14734,7 @@ void *cookie;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_put_link_takes_cookie=yes
+ else
+@@ -14827,7 +14827,7 @@ struct dentry_operations _d_ops;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_dop_d_delete_takes_const=yes
+ else
+@@ -14918,7 +14918,7 @@ struct nameidata _nameidata;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_d_revalidate_takes_nameidata=yes
+ else
+@@ -15009,7 +15009,7 @@ fl_owner_t id;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_f_flush_takes_fl_owner_t=yes
+ else
+@@ -15100,7 +15100,7 @@ struct dentry _d;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_f_fsync_takes_dentry=yes
+ else
+@@ -15191,7 +15191,7 @@ loff_t start, end;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_f_fsync_takes_range=yes
+ else
+@@ -15284,7 +15284,7 @@ struct writeback_control _writeback_cont
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_a_writepage_takes_writeback_control=yes
+ else
+@@ -15376,7 +15376,7 @@ struct file_operations _fop;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_fop_has_splice=yes
+ else
+@@ -15463,7 +15463,7 @@ posix_lock_file(0,0,0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kernel_posix_lock_file_wait_arg=yes
+ else
+@@ -15550,7 +15550,7 @@ struct file_lock *lock;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_posix_test_lock_returns_conflict=yes
+ else
+@@ -15639,7 +15639,7 @@ struct file_lock *lock;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_posix_test_lock_conflict_arg=yes
+ else
+@@ -15726,7 +15726,7 @@ sock_create(0,0,0,0,0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kernel_sock_create_v=yes
+ else
+@@ -15816,7 +15816,7 @@ printk("%s", key_type_keyring.name);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_key_type_keyring=yes
+ else
+@@ -15906,7 +15906,7 @@ int i = KEYCTL_SESSION_TO_PARENT;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_have_session_to_parent=yes
+ else
+@@ -15992,7 +15992,7 @@ void conftest(void)
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_linux_rhconfig=yes
+ else
+@@ -16081,7 +16081,7 @@ recalc_sigpending();
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_recalc_sigpending_takes_void=yes
+ else
+@@ -16169,7 +16169,7 @@ read_lock(&tasklist_lock);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_tasklist_lock=yes
+ else
+@@ -16257,7 +16257,7 @@ get_sb_nodev(0,0,0,0,0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_get_sb_has_struct_vfsmount=yes
+ else
+@@ -16343,7 +16343,7 @@ extern int simple_statfs(struct dentry *
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_statfs_takes_dentry=yes
+ else
+@@ -16432,7 +16432,7 @@ refrigerator(PF_FREEZE);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_refrigerator_takes_pf_freeze=yes
+ else
+@@ -16527,7 +16527,7 @@ void conftest(void)
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_have_try_to_freeze=yes
+ else
+@@ -16631,7 +16631,7 @@ request_key(NULL, NULL, NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_keyring_support=yes
+ else
+@@ -16730,7 +16730,7 @@ struct task_struct *t=NULL;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_key_alloc_needs_struct_task=yes
+ else
+@@ -16819,7 +16819,7 @@ struct cred *c = NULL;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_key_alloc_needs_cred=yes
+ else
+@@ -16911,7 +16911,7 @@ INIT_WORK(w,f,i);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_init_work_has_data=yes
+ else
+@@ -17001,7 +17001,7 @@ ctl_table *t; register_sysctl_table (t);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_register_sysctl_table_noflag=yes
+ else
+@@ -17086,7 +17086,7 @@ printk("%p", &dcache_lock);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_have_dcache_lock=yes
+ else
+@@ -17173,7 +17173,7 @@ struct dentry _d;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_d_count_int=yes
+ else
+@@ -17262,7 +17262,7 @@ struct inode_operations _i_ops;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_iop_mkdir_takes_umode_t=yes
+ else
+@@ -17352,7 +17352,7 @@ struct inode_operations _i_ops;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_iop_create_takes_umode_t=yes
+ else
+@@ -17443,7 +17443,7 @@ struct export_operations _exp_ops;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_export_op_encode_fh__takes_inodes=yes
+ else
+@@ -17532,7 +17532,7 @@ struct page *p = NULL;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kma_atomic_takes_no_km_type=yes
+ else
+@@ -17619,7 +17619,7 @@ struct path p;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_dentry_open_takes_path=yes
+ else
+@@ -17707,7 +17707,7 @@ struct dentry *d = NULL;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_d_alias_is_hlist=yes
+ else
+@@ -17798,7 +17798,7 @@ struct dentry *d = NULL, *cur;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_hlist_takes_no_node=yes
+ else
+@@ -17891,7 +17891,7 @@ struct inode _inode = {};
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_create_takes_bool=yes
+ else
+@@ -17983,7 +17983,7 @@ struct dentry_operations dops;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_d_revalidate_takes_unsigned=yes
+ else
+@@ -18074,7 +18074,7 @@ struct inode_operations iops;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_lookup_takes_unsigned=yes
+ else
+@@ -18175,7 +18175,7 @@ void *address = &init_mm; printk("%p\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_init_mm=yes
+ else
+@@ -18265,7 +18265,7 @@ void *address = &sys_chdir; printk("%p\n
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_sys_chdir=yes
+ else
+@@ -18350,7 +18350,7 @@ void *address = &sys_open; printk("%p\n"
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_sys_open=yes
+ else
+@@ -18458,7 +18458,7 @@ lose;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_config_smp=yes
+ else
+@@ -18570,7 +18570,7 @@ void conftest(void)
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_kallsyms_address=yes
+ else
+@@ -18659,7 +18659,7 @@ void conftest(void)
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_kallsyms_symbol=yes
+ else
+@@ -18748,7 +18748,7 @@ void conftest(void)
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_sys_call_table=yes
+ else
+@@ -18837,7 +18837,7 @@ void conftest(void)
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD ARCH=$ARCH CROSS_COMPILE=$CROSS M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_ia32_sys_call_table=yes
+ else
diff --git a/package/openafs/patches/patch-configure-libafs b/package/openafs/patches/patch-configure-libafs
new file mode 100644
index 000000000..e06be1f82
--- /dev/null
+++ b/package/openafs/patches/patch-configure-libafs
@@ -0,0 +1,1181 @@
+--- openafs-1.6.5.orig/configure-libafs 2013-07-18 07:31:09.000000000 +0200
++++ openafs-1.6.5/configure-libafs 2013-09-23 21:48:02.596915429 +0200
+@@ -6406,7 +6406,7 @@ void conftest(void)
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_is_uml=yes
+ else
+@@ -6739,7 +6739,7 @@ void conftest(void)
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_linux_kbuild_requires_extra_cflags=no
+ else
+@@ -6812,7 +6812,7 @@ void conftest(void)
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then :
+ else
+@@ -6898,7 +6898,7 @@ return;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_header_config_h=yes
+ else
+@@ -6982,7 +6982,7 @@ return;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_header_completion_h=yes
+ else
+@@ -7066,7 +7066,7 @@ return;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_header_exportfs_h=yes
+ else
+@@ -7150,7 +7150,7 @@ return;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_header_freezer_h=yes
+ else
+@@ -7234,7 +7234,7 @@ return;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_header_key_type_h=yes
+ else
+@@ -7318,7 +7318,7 @@ return;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_header_semaphore_h=yes
+ else
+@@ -7402,7 +7402,7 @@ return;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_header_seq_file_h=yes
+ else
+@@ -7487,7 +7487,7 @@ struct vfs_path _test;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_type_struct_vfs_path_exists=yes
+ else
+@@ -7572,7 +7572,7 @@ struct address_space_operations _test; p
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_address_space_operations_has_write_begin=yes
+ else
+@@ -7657,7 +7657,7 @@ struct backing_dev_info _test; printk("%
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_backing_dev_info_has_name=yes
+ else
+@@ -7742,7 +7742,7 @@ struct cred _test; printk("%x\n", &_test
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_cred_has_session_keyring=yes
+ else
+@@ -7827,7 +7827,7 @@ struct ctl_table _test; printk("%x\n", &
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_ctl_table_has_ctl_name=yes
+ else
+@@ -7912,7 +7912,7 @@ struct dentry_operations _test; printk("
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_dentry_operations_has_d_automount=yes
+ else
+@@ -7997,7 +7997,7 @@ struct inode _test; printk("%x\n", &_tes
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_inode_has_i_alloc_sem=yes
+ else
+@@ -8082,7 +8082,7 @@ struct inode _test; printk("%x\n", &_tes
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_inode_has_i_blkbits=yes
+ else
+@@ -8167,7 +8167,7 @@ struct inode _test; printk("%x\n", &_tes
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_inode_has_i_blksize=yes
+ else
+@@ -8252,7 +8252,7 @@ struct inode _test; printk("%x\n", &_tes
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_inode_has_i_mutex=yes
+ else
+@@ -8337,7 +8337,7 @@ struct inode _test; printk("%x\n", &_tes
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_inode_has_i_security=yes
+ else
+@@ -8422,7 +8422,7 @@ struct file_operations _test; printk("%x
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_file_operations_has_flock=yes
+ else
+@@ -8507,7 +8507,7 @@ struct file_operations _test; printk("%x
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_file_operations_has_sendfile=yes
+ else
+@@ -8592,7 +8592,7 @@ struct file_system_type _test; printk("%
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_file_system_type_has_mount=yes
+ else
+@@ -8677,7 +8677,7 @@ struct filename _test; printk("%x\n", &_
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_filename_has_name=yes
+ else
+@@ -8762,7 +8762,7 @@ struct inode_operations _test; printk("%
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_inode_operations_has_truncate=yes
+ else
+@@ -8847,7 +8847,7 @@ struct key_type _test; printk("%x\n", &_
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_key_type_has_preparse=yes
+ else
+@@ -8932,7 +8932,7 @@ struct nameidata _test; printk("%x\n", &
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_nameidata_has_path=yes
+ else
+@@ -9017,7 +9017,7 @@ struct proc_dir_entry _test; printk("%x\
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_proc_dir_entry_has_owner=yes
+ else
+@@ -9102,7 +9102,7 @@ struct super_block _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_super_block_has_s_bdi=yes
+ else
+@@ -9187,7 +9187,7 @@ struct super_block _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_super_block_has_s_d_op=yes
+ else
+@@ -9272,7 +9272,7 @@ struct super_operations _test; printk("%
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_super_operations_has_alloc_inode=yes
+ else
+@@ -9357,7 +9357,7 @@ struct super_operations _test; printk("%
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_super_operations_has_evict_inode=yes
+ else
+@@ -9442,7 +9442,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_cred=yes
+ else
+@@ -9527,7 +9527,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_exit_state=yes
+ else
+@@ -9612,7 +9612,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_parent=yes
+ else
+@@ -9697,7 +9697,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_real_parent=yes
+ else
+@@ -9782,7 +9782,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_rlim=yes
+ else
+@@ -9867,7 +9867,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_sig=yes
+ else
+@@ -9952,7 +9952,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_sighand=yes
+ else
+@@ -10037,7 +10037,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_sigmask_lock=yes
+ else
+@@ -10122,7 +10122,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_tgid=yes
+ else
+@@ -10207,7 +10207,7 @@ struct task_struct _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_struct_task_struct_has_thread_info=yes
+ else
+@@ -10293,7 +10293,7 @@ struct task_struct _tsk; printk("%d\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_sched_struct_task_struct_has_signal_rlim=yes
+ else
+@@ -10378,7 +10378,7 @@ read_descriptor_t _test; printk("%x\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_read_descriptor_t_has_buf=yes
+ else
+@@ -10464,7 +10464,7 @@ bdi_init(NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_bdi_init=yes
+ else
+@@ -10549,7 +10549,7 @@ struct page *_page;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_PageChecked=yes
+ else
+@@ -10636,7 +10636,7 @@ struct page *_page;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_PageFsMisc=yes
+ else
+@@ -10721,7 +10721,7 @@ clear_inode(NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_clear_inode=yes
+ else
+@@ -10805,7 +10805,7 @@ struct timespec s;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_current_kernel_time=yes
+ else
+@@ -10889,7 +10889,7 @@ d_alloc_anon(NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_d_alloc_anon=yes
+ else
+@@ -10972,7 +10972,7 @@ d_make_root(NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_d_make_root=yes
+ else
+@@ -11055,7 +11055,7 @@ do_sync_read(NULL, NULL, 0, NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_do_sync_read=yes
+ else
+@@ -11138,7 +11138,7 @@ pid_t p; find_task_by_pid(p);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_find_task_by_pid=yes
+ else
+@@ -11221,7 +11221,7 @@ generic_file_aio_read(NULL,NULL,0,0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_generic_file_aio_read=yes
+ else
+@@ -11304,7 +11304,7 @@ grab_cache_page_write_begin(NULL, 0, 0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_grab_cache_page_write_begin=yes
+ else
+@@ -11387,7 +11387,7 @@ hlist_unhashed(0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_hlist_unhashed=yes
+ else
+@@ -11470,7 +11470,7 @@ i_size_read(NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_size_read=yes
+ else
+@@ -11553,7 +11553,7 @@ inode_setattr(NULL, NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_inode_setattr=yes
+ else
+@@ -11636,7 +11636,7 @@ kernel_setsockopt(NULL, 0, 0, NULL, 0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_kernel_setsockopt=yes
+ else
+@@ -11719,7 +11719,7 @@ page_follow_link(0,0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_page_follow_link=yes
+ else
+@@ -11802,7 +11802,7 @@ page_offset(NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_page_offset=yes
+ else
+@@ -11885,7 +11885,7 @@ __pagevec_lru_add_file(NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_pagevec_lru_add_file=yes
+ else
+@@ -11969,7 +11969,7 @@ path_lookup(NULL, 0, NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_path_lookup=yes
+ else
+@@ -12053,7 +12053,7 @@ proc_create(NULL, 0, NULL, NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_proc_create=yes
+ else
+@@ -12136,7 +12136,7 @@ rcu_read_lock();
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_rcu_read_lock=yes
+ else
+@@ -12219,7 +12219,7 @@ set_nlink(NULL, 1);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_set_nlink=yes
+ else
+@@ -12302,7 +12302,7 @@ splice_direct_to_actor(NULL,NULL,NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_splice_direct_to_actor=yes
+ else
+@@ -12385,7 +12385,7 @@ svc_addr_in(NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_svc_addr_in=yes
+ else
+@@ -12468,7 +12468,7 @@ zero_user_segments(NULL, 0, 0, 0, 0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_zero_user_segments=yes
+ else
+@@ -12551,7 +12551,7 @@ void *address = &noop_fsync; printk("%p\
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_noop_fsync=yes
+ else
+@@ -12635,7 +12635,7 @@ kthread_run(NULL, NULL, "test");
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_kthread_run=yes
+ else
+@@ -12728,7 +12728,7 @@ extern ssize_t
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_aio_nonvector=yes
+ else
+@@ -12815,7 +12815,7 @@ struct proc_dir_entry *p = proc_root_fs;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_proc_root_fs=yes
+ else
+@@ -12904,7 +12904,7 @@ extern struct kmem_cache *
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kmem_cache_init=yes
+ else
+@@ -12993,7 +12993,7 @@ kmem_cache_t *k;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_have_kmem_cache_t=yes
+ else
+@@ -13078,7 +13078,7 @@ kmem_cache_create(NULL, 0, 0, 0, NULL, N
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kmem_cache_create_takes_dtor=yes
+ else
+@@ -13163,7 +13163,7 @@ void _ctor(void *v) { }; kmem_cache_crea
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kmem_cache_create_ctor_takes_void=yes
+ else
+@@ -13248,7 +13248,7 @@ struct path *p; d_path(p, NULL, 0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_d_path_takes_struct_path=yes
+ else
+@@ -13334,7 +13334,7 @@ struct export_operations _eops;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_new_export_ops=yes
+ else
+@@ -13423,7 +13423,7 @@ struct inode _inode;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_inode_setattr_returns_int=yes
+ else
+@@ -13515,7 +13515,7 @@ struct nameidata _nameidata;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_create_takes_nameidata=yes
+ else
+@@ -13608,7 +13608,7 @@ struct nameidata _nameidata;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_lookup_takes_nameidata=yes
+ else
+@@ -13699,7 +13699,7 @@ struct inode _inode = {0};
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_permission_takes_flags=yes
+ else
+@@ -13789,7 +13789,7 @@ struct nameidata _nameidata;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_permission_takes_nameidata=yes
+ else
+@@ -13882,7 +13882,7 @@ void *cookie;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_put_link_takes_cookie=yes
+ else
+@@ -13975,7 +13975,7 @@ struct dentry_operations _d_ops;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_dop_d_delete_takes_const=yes
+ else
+@@ -14066,7 +14066,7 @@ struct nameidata _nameidata;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_d_revalidate_takes_nameidata=yes
+ else
+@@ -14157,7 +14157,7 @@ fl_owner_t id;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_f_flush_takes_fl_owner_t=yes
+ else
+@@ -14248,7 +14248,7 @@ struct dentry _d;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_f_fsync_takes_dentry=yes
+ else
+@@ -14339,7 +14339,7 @@ loff_t start, end;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_f_fsync_takes_range=yes
+ else
+@@ -14432,7 +14432,7 @@ struct writeback_control _writeback_cont
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_a_writepage_takes_writeback_control=yes
+ else
+@@ -14524,7 +14524,7 @@ struct file_operations _fop;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_fs_struct_fop_has_splice=yes
+ else
+@@ -14611,7 +14611,7 @@ posix_lock_file(0,0,0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kernel_posix_lock_file_wait_arg=yes
+ else
+@@ -14698,7 +14698,7 @@ struct file_lock *lock;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_posix_test_lock_returns_conflict=yes
+ else
+@@ -14787,7 +14787,7 @@ struct file_lock *lock;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_posix_test_lock_conflict_arg=yes
+ else
+@@ -14874,7 +14874,7 @@ sock_create(0,0,0,0,0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kernel_sock_create_v=yes
+ else
+@@ -14964,7 +14964,7 @@ printk("%s", key_type_keyring.name);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_key_type_keyring=yes
+ else
+@@ -15054,7 +15054,7 @@ int i = KEYCTL_SESSION_TO_PARENT;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_have_session_to_parent=yes
+ else
+@@ -15140,7 +15140,7 @@ void conftest(void)
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_linux_rhconfig=yes
+ else
+@@ -15229,7 +15229,7 @@ recalc_sigpending();
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_recalc_sigpending_takes_void=yes
+ else
+@@ -15317,7 +15317,7 @@ read_lock(&tasklist_lock);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_tasklist_lock=yes
+ else
+@@ -15405,7 +15405,7 @@ get_sb_nodev(0,0,0,0,0);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_get_sb_has_struct_vfsmount=yes
+ else
+@@ -15491,7 +15491,7 @@ extern int simple_statfs(struct dentry *
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_statfs_takes_dentry=yes
+ else
+@@ -15580,7 +15580,7 @@ refrigerator(PF_FREEZE);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_refrigerator_takes_pf_freeze=yes
+ else
+@@ -15675,7 +15675,7 @@ void conftest(void)
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_have_try_to_freeze=yes
+ else
+@@ -15779,7 +15779,7 @@ request_key(NULL, NULL, NULL);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_keyring_support=yes
+ else
+@@ -15878,7 +15878,7 @@ struct task_struct *t=NULL;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_key_alloc_needs_struct_task=yes
+ else
+@@ -15967,7 +15967,7 @@ struct cred *c = NULL;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_key_alloc_needs_cred=yes
+ else
+@@ -16059,7 +16059,7 @@ INIT_WORK(w,f,i);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_init_work_has_data=yes
+ else
+@@ -16149,7 +16149,7 @@ ctl_table *t; register_sysctl_table (t);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_register_sysctl_table_noflag=yes
+ else
+@@ -16234,7 +16234,7 @@ printk("%p", &dcache_lock);
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_have_dcache_lock=yes
+ else
+@@ -16321,7 +16321,7 @@ struct dentry _d;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_d_count_int=yes
+ else
+@@ -16410,7 +16410,7 @@ struct inode_operations _i_ops;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_iop_mkdir_takes_umode_t=yes
+ else
+@@ -16500,7 +16500,7 @@ struct inode_operations _i_ops;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_iop_create_takes_umode_t=yes
+ else
+@@ -16591,7 +16591,7 @@ struct export_operations _exp_ops;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_export_op_encode_fh__takes_inodes=yes
+ else
+@@ -16680,7 +16680,7 @@ struct page *p = NULL;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_kma_atomic_takes_no_km_type=yes
+ else
+@@ -16767,7 +16767,7 @@ struct path p;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_dentry_open_takes_path=yes
+ else
+@@ -16855,7 +16855,7 @@ struct dentry *d = NULL;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_d_alias_is_hlist=yes
+ else
+@@ -16946,7 +16946,7 @@ struct dentry *d = NULL, *cur;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_hlist_takes_no_node=yes
+ else
+@@ -17039,7 +17039,7 @@ struct inode _inode = {};
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_i_create_takes_bool=yes
+ else
+@@ -17131,7 +17131,7 @@ struct dentry_operations dops;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_d_revalidate_takes_unsigned=yes
+ else
+@@ -17222,7 +17222,7 @@ struct inode_operations iops;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_func_lookup_takes_unsigned=yes
+ else
+@@ -17323,7 +17323,7 @@ void *address = &init_mm; printk("%p\n",
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_init_mm=yes
+ else
+@@ -17413,7 +17413,7 @@ void *address = &sys_chdir; printk("%p\n
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_sys_chdir=yes
+ else
+@@ -17498,7 +17498,7 @@ void *address = &sys_open; printk("%p\n"
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_sys_open=yes
+ else
+@@ -17606,7 +17606,7 @@ lose;
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_config_smp=yes
+ else
+@@ -17718,7 +17718,7 @@ void conftest(void)
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_kallsyms_address=yes
+ else
+@@ -17807,7 +17807,7 @@ void conftest(void)
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_kallsyms_symbol=yes
+ else
+@@ -17896,7 +17896,7 @@ void conftest(void)
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_sys_call_table=yes
+ else
+@@ -17985,7 +17985,7 @@ void conftest(void)
+ MODULE_LICENSE("http://www.openafs.org/dl/license10.html");
+ _ACEOF
+ echo make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 &&
+- make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
++ make -C $LINUX_KERNEL_BUILD M=$SRCDIR_PARENT/conftest.dir ARCH=$ARCH CROSS_COMPILE=$CROSS modules KBUILD_VERBOSE=1 >&5 2>conftest.err &&
+ ! grep -i "WARNING: .* undefined!$" conftest.err >/dev/null 2>&1
+ then ac_cv_linux_exports_ia32_sys_call_table=yes
+ else
diff --git a/package/openafs/patches/patch-src_afs_afs_fetchstore_c b/package/openafs/patches/patch-src_afs_afs_fetchstore_c
new file mode 100644
index 000000000..451a816ed
--- /dev/null
+++ b/package/openafs/patches/patch-src_afs_afs_fetchstore_c
@@ -0,0 +1,12 @@
+--- openafs-1.6.5.orig/src/afs/afs_fetchstore.c 2013-07-18 00:10:42.000000000 +0200
++++ openafs-1.6.5/src/afs/afs_fetchstore.c 2013-09-24 21:45:15.436516310 +0200
+@@ -11,9 +11,6 @@
+ #include "afs/param.h"
+
+ #include "afs/sysincludes.h" /* Standard vendor system headers */
+-#ifndef AFS_LINUX22_ENV
+-#include "rpc/types.h"
+-#endif
+ #ifdef AFS_ALPHA_ENV
+ #undef kmem_alloc
+ #undef kmem_free
diff --git a/package/openafs/patches/patch-src_afs_afs_memcache_c b/package/openafs/patches/patch-src_afs_afs_memcache_c
new file mode 100644
index 000000000..b038400c8
--- /dev/null
+++ b/package/openafs/patches/patch-src_afs_afs_memcache_c
@@ -0,0 +1,12 @@
+--- openafs-1.6.5.orig/src/afs/afs_memcache.c 2013-07-18 00:10:42.000000000 +0200
++++ openafs-1.6.5/src/afs/afs_memcache.c 2013-09-24 21:44:42.988924231 +0200
+@@ -12,9 +12,6 @@
+
+
+ #include "afs/sysincludes.h" /* Standard vendor system headers */
+-#ifndef AFS_LINUX22_ENV
+-#include "rpc/types.h"
+-#endif
+ #include "afsincludes.h" /* Afs-based standard headers */
+ #include "afs/afs_stats.h" /* statistics */
+
diff --git a/package/openafs/patches/patch-src_auth_userok_c b/package/openafs/patches/patch-src_auth_userok_c
new file mode 100644
index 000000000..868a5b7f5
--- /dev/null
+++ b/package/openafs/patches/patch-src_auth_userok_c
@@ -0,0 +1,10 @@
+--- openafs-1.6.5.orig/src/auth/userok.c 2013-07-18 00:10:42.000000000 +0200
++++ openafs-1.6.5/src/auth/userok.c 2013-09-14 15:59:14.673703295 +0200
+@@ -19,6 +19,7 @@
+ #include <fcntl.h>
+ #include <io.h>
+ #else
++#include <fcntl.h>
+ #include <sys/file.h>
+ #include <netinet/in.h>
+ #include <netdb.h>
diff --git a/package/openafs/patches/patch-src_comerr_Makefile_in b/package/openafs/patches/patch-src_comerr_Makefile_in
new file mode 100644
index 000000000..a56308099
--- /dev/null
+++ b/package/openafs/patches/patch-src_comerr_Makefile_in
@@ -0,0 +1,38 @@
+--- openafs-1.6.5.orig/src/comerr/Makefile.in 2013-07-18 00:10:42.000000000 +0200
++++ openafs-1.6.5/src/comerr/Makefile.in 2013-09-09 06:25:16.479495215 +0200
+@@ -31,12 +31,12 @@ et_lex.lex.c: et_lex.lex.l
+ $(RM) -f et_lex.lex.c
+ $(LEX) -t $(srcdir)/et_lex.lex.l > et_lex.lex.c
+
+-compile_et: compile_et.o error_table.o
++compile_et: compile_et.o error_table.o internal.o
+ case $(SYS_NAME) in \
+ *_linux* | *_umlinux* ) \
+- ${CC} ${CFLAGS} -o compile_et compile_et.o error_table.o -L${TOP_LIBDIR} -lafsutil;; \
++ ${CC_FOR_BUILD} ${CFLAGS_FOR_BUILD} -o compile_et compile_et.o error_table.o internal.o ;; \
+ * ) \
+- ${CC} ${CFLAGS} -o compile_et compile_et.o error_table.o -L${TOP_LIBDIR} -lafsutil -ll;; \
++ ${CC} ${CFLAGS} -o compile_et compile_et.o error_table.o -L${TOP_LIBDIR} -ll;; \
+ esac
+
+ libafscom_err.a: error_msg.o et_name.o com_err.o AFS_component_version_number.o
+@@ -49,7 +49,10 @@ libafscom_err.a: error_msg.o et_name.o c
+ # so we need to add the source directory to the includes to pick up local headers.
+ #
+ error_table.o: error_table.c
+- $(CC) $(CFLAGS) -I${srcdir} @CFLAGS_NOUNUSED@ @CFLAGS_NOOLDSTYLE@ -c error_table.c
++ $(CC_FOR_BUILD) ${COMMON_INCL} $(CFLAGS_FOR_BUILD) -I${srcdir} @CFLAGS_NOUNUSED@ @CFLAGS_NOOLDSTYLE@ -c error_table.c
++
++internal.o: internal.c
++ $(CC_FOR_BUILD) ${COMMON_INCL} $(CFLAGS_FOR_BUILD) -I${srcdir} -c internal.c
+
+ #
+ # Installation targets
+@@ -85,6 +88,7 @@ test:
+ cd test; $(MAKE)
+
+ compile_et.o: AFS_component_version_number.c
++ $(CC_FOR_BUILD) ${COMMON_INCL} $(CFLAGS_FOR_BUILD) -c compile_et.c -o compile_et.o
+ error_table.o: et_lex.lex.c
+
+ include ../config/Makefile.version
diff --git a/package/openafs/patches/patch-src_comerr_error_table_y b/package/openafs/patches/patch-src_comerr_error_table_y
new file mode 100644
index 000000000..ee9d84908
--- /dev/null
+++ b/package/openafs/patches/patch-src_comerr_error_table_y
@@ -0,0 +1,10 @@
+--- openafs-1.6.5.orig/src/comerr/error_table.y 2013-07-18 00:10:42.000000000 +0200
++++ openafs-1.6.5/src/comerr/error_table.y 2013-08-22 07:38:30.051905881 +0200
+@@ -20,7 +20,6 @@
+ #else
+ #include <sys/time.h>
+ #endif
+-#include <sys/timeb.h>
+ #include "error_table.h"
+ #include "mit-sipb-cr.h"
+
diff --git a/package/openafs/patches/patch-src_comerr_internal_h b/package/openafs/patches/patch-src_comerr_internal_h
new file mode 100644
index 000000000..d561fcdcb
--- /dev/null
+++ b/package/openafs/patches/patch-src_comerr_internal_h
@@ -0,0 +1,8 @@
+--- openafs-1.6.5.orig/src/comerr/internal.h 2013-07-18 00:10:42.000000000 +0200
++++ openafs-1.6.5/src/comerr/internal.h 2013-09-09 05:30:55.256494342 +0200
+@@ -9,3 +9,5 @@
+
+ extern void yyerror(const char *s);
+ extern char *xmalloc(unsigned int size);
++extern char *lcstring(char *d, char *s, int n);
++
diff --git a/package/openafs/patches/patch-src_config_Makefile_config_in b/package/openafs/patches/patch-src_config_Makefile_config_in
new file mode 100644
index 000000000..2f82768cc
--- /dev/null
+++ b/package/openafs/patches/patch-src_config_Makefile_config_in
@@ -0,0 +1,15 @@
+--- openafs-1.6.5.orig/src/config/Makefile.config.in 2013-07-18 00:10:42.000000000 +0200
++++ openafs-1.6.5/src/config/Makefile.config.in 2013-08-21 18:21:16.843244292 +0200
+@@ -134,8 +134,10 @@ SHELL = /bin/sh
+ COMMON_INCL=-I${TOP_OBJDIR}/src/config -I${TOP_INCDIR} -I${srcdir} -I.
+ COMMON_CFLAGS=${DBG} ${OPTMZ} ${COMMON_INCL} ${INCLUDE_LIBINTL}
+
+-CFLAGS=${COMMON_CFLAGS} ${XCFLAGS} ${ARCHFLAGS} $(CFLAGS_NOERROR)
+-LDFLAGS=${XLDFLAGS} ${ARCHFLAGS}
++CFLAGS?=
++CFLAGS+=${COMMON_CFLAGS} ${XCFLAGS} ${ARCHFLAGS} $(CFLAGS_NOERROR)
++LDFLAGS?=
++LDFLAGS+=${XLDFLAGS} ${ARCHFLAGS}
+
+ .c.o:
+ $(CCOBJ) $(CFLAGS) -c $<
diff --git a/package/openafs/patches/patch-src_config_Makefile_in b/package/openafs/patches/patch-src_config_Makefile_in
new file mode 100644
index 000000000..368290138
--- /dev/null
+++ b/package/openafs/patches/patch-src_config_Makefile_in
@@ -0,0 +1,23 @@
+--- openafs-1.6.5.orig/src/config/Makefile.in 2013-07-18 00:10:42.000000000 +0200
++++ openafs-1.6.5/src/config/Makefile.in 2013-09-22 20:18:38.673550739 +0200
+@@ -52,16 +52,16 @@ AFS_component_version_number.c: Makefile
+ # App build/install targets
+ #
+ config: config.o mc.o
+- $(CC) $(CFLAGS) -o config config.o mc.o
++ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -o config config.o mc.o
+
+ mkvers: ${srcdir}/mkvers.c
+- $(CC) $(CFLAGS) -o mkvers ${srcdir}/mkvers.c
++ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -o mkvers ${srcdir}/mkvers.c
+
+ mc.o: ${srcdir}/mc.c
+- $(CC) $(CFLAGS) -I. -c ${srcdir}/mc.c
++ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -I. -c ${srcdir}/mc.c
+
+ config.o: ${srcdir}/config.c AFS_component_version_number.c
+- $(CC) $(CFLAGS) -I. -c ${srcdir}/config.c
++ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) -I. -c ${srcdir}/config.c
+
+ #
+ # Include installation targets
diff --git a/package/openafs/patches/patch-src_des_Makefile_in b/package/openafs/patches/patch-src_des_Makefile_in
new file mode 100644
index 000000000..6a039bbd0
--- /dev/null
+++ b/package/openafs/patches/patch-src_des_Makefile_in
@@ -0,0 +1,73 @@
+--- openafs-1.6.5.orig/src/des/Makefile.in 2013-07-18 00:10:42.000000000 +0200
++++ openafs-1.6.5/src/des/Makefile.in 2013-09-22 20:00:06.859528134 +0200
+@@ -106,31 +106,31 @@ libdes.a: ${OBJS} AFS_component_version_
+ $(RANLIB) libdes.a
+
+ make_ip: make_ip.o misc-i.o main.o
+- ${CC} make_ip.o misc-i.o main.o ${LDFLAGS} -o make_ip
++ ${CC_FOR_BUILD} make_ip.o misc-i.o main.o ${LDFLAGS_FOR_BUILD} -o make_ip
+
+ make_fp: make_fp.o misc-i.o main.o
+- ${CC} make_fp.o misc-i.o main.o ${LDFLAGS} -o make_fp
++ ${CC_FOR_BUILD} make_fp.o misc-i.o main.o ${LDFLAGS_FOR_BUILD} -o make_fp
+
+ make_odd: make_odd.o misc-i.o main.o
+- ${CC} make_odd.o misc-i.o main.o ${LDFLAGS} -o make_odd
++ ${CC_FOR_BUILD} make_odd.o misc-i.o main.o ${LDFLAGS_FOR_BUILD} -o make_odd
+
+ make_s_table: make_s_table.o misc-i.o main.o
+- ${CC} make_s_table.o misc-i.o main.o ${LDFLAGS} -o make_s_table
++ ${CC_FOR_BUILD} make_s_table.o misc-i.o main.o ${LDFLAGS_FOR_BUILD} -o make_s_table
+
+ make_p_table: make_p_table.o misc-i.o main.o
+- ${CC} make_p_table.o misc-i.o main.o ${LDFLAGS} -o make_p_table
++ ${CC_FOR_BUILD} make_p_table.o misc-i.o main.o ${LDFLAGS_FOR_BUILD} -o make_p_table
+
+ make_keyperm: make_keyperm.o misc-i.o main.o
+- ${CC} make_keyperm.o misc-i.o main.o ${LDFLAGS} -o make_keyperm
++ ${CC_FOR_BUILD} make_keyperm.o misc-i.o main.o ${LDFLAGS_FOR_BUILD} -o make_keyperm
+
+ make_e: make_e.o misc-i.o main.o
+- ${CC} make_e.o misc-i.o main.o ${LDFLAGS} -o make_e
++ ${CC_FOR_BUILD} make_e.o misc-i.o main.o ${LDFLAGS_FOR_BUILD} -o make_e
+
+ make_p: make_p.o misc-i.o main.o
+- ${CC} make_p.o misc-i.o main.o ${LDFLAGS} -o make_p
++ ${CC_FOR_BUILD} make_p.o misc-i.o main.o ${LDFLAGS_FOR_BUILD} -o make_p
+
+ make_s: make_s.o misc-i.o main.o
+- ${CC} make_s.o misc-i.o main.o ${LDFLAGS} -o make_s
++ ${CC_FOR_BUILD} make_s.o misc-i.o main.o ${LDFLAGS_FOR_BUILD} -o make_s
+
+ crypt.o: ${srcdir}/crypt.c
+ case ${SYS_NAME} in \
+@@ -172,17 +172,27 @@ fp.c: make_fp
+ INCLS=des.h des_prototypes.h mit-cpyright.h des_conf.h des_internal.h conf.h
+
+ make_keyperm.o: make_keyperm.c ${INCLS}
++ $(CC_FOR_BUILD) ${COMMON_INCL} $(CFLAGS_FOR_BUILD) -c $<
+ make_ip.o: make_ip.c tables.h ${INCLS}
++ $(CC_FOR_BUILD) ${COMMON_INCL} $(CFLAGS_FOR_BUILD) -c $<
+ make_fp.o: make_fp.c tables.h ${INCLS}
++ $(CC_FOR_BUILD) ${COMMON_INCL} $(CFLAGS_FOR_BUILD) -c $<
+ make_p.o: make_p.c tables.h ${INCLS}
++ $(CC_FOR_BUILD) ${COMMON_INCL} $(CFLAGS_FOR_BUILD) -c $<
+ make_s.o: make_s.c s_table.h ${INCLS}
++ $(CC_FOR_BUILD) ${COMMON_INCL} $(CFLAGS_FOR_BUILD) -c $<
+ make_s_table.o: make_s_table.c tables.h ${INCLS}
++ $(CC_FOR_BUILD) ${COMMON_INCL} $(CFLAGS_FOR_BUILD) -c $<
+ make_p_table.o: make_p_table.c tables.h ${INCLS}
++ $(CC_FOR_BUILD) ${COMMON_INCL} $(CFLAGS_FOR_BUILD) -c $<
+ make_odd.o: make_odd.c ${INCLS}
+-misc.o: misc.c AFS_component_version_number.c ${INCLS}
++ $(CC_FOR_BUILD) ${COMMON_INCL} $(CFLAGS_FOR_BUILD) -c $<
+ misc-i.o: misc.c ${INCLS}
+- ${CCOBJ} -c ${CFLAGS} -o misc-i.o ${srcdir}/misc.c
++ $(CC_FOR_BUILD) ${COMMON_INCL} $(CFLAGS_FOR_BUILD) -c -o misc-i.o ${srcdir}/misc.c
++misc.o: misc.c AFS_component_version_number.c ${INCLS}
++ $(CC) ${COMMON_INCL} $(CFLAGS) -c $<
+ main.o: main.c ${INCLS}
++ $(CC_FOR_BUILD) ${COMMON_INCL} $(CFLAGS_FOR_BUILD) -c $<
+ key_sched.o: key_sched.c key_perm.h odd.h ${INCLS}
+ key_test.o: key_test.c ${INCLS}
+ testit.o: testit.c ${INCLS}
diff --git a/package/openafs/patches/patch-src_des_read_pssword_c b/package/openafs/patches/patch-src_des_read_pssword_c
new file mode 100644
index 000000000..7192a06f2
--- /dev/null
+++ b/package/openafs/patches/patch-src_des_read_pssword_c
@@ -0,0 +1,52 @@
+--- openafs-1.6.5.orig/src/des/read_pssword.c 2013-07-18 00:10:42.000000000 +0200
++++ openafs-1.6.5/src/des/read_pssword.c 2013-08-22 07:26:09.861211339 +0200
+@@ -53,6 +53,7 @@ static int intrupt;
+ #endif
+
+ #ifdef HAVE_TERMIOS_H
++#include <sys/ioctl.h>
+ #include <termios.h>
+ #endif
+
+@@ -115,7 +116,7 @@ des_read_password(des_cblock * k, char *
+ static void catch(int);
+ #endif
+
+-#if !defined(BSDUNIX) && (defined(AFS_AIX_ENV) || defined (AFS_HPUX_ENV) || defined(AFS_SGI_ENV) || defined(AFS_LINUX20_ENV))
++#if !defined(BSDUNIX) && (defined(AFS_AIX_ENV) || defined (AFS_HPUX_ENV) || defined(AFS_SGI_ENV))
+ #include <termio.h>
+ #endif
+
+@@ -148,7 +149,7 @@ des_read_pw_string(char *s, int maxa, ch
+ FILE *fi;
+ #else
+ #if defined (AFS_AIX_ENV) || defined (AFS_HPUX_ENV) || defined(AFS_SGI_ENV) || defined(AFS_LINUX20_ENV)
+- struct termio ttyb;
++ struct termios ttyb;
+ FILE *fi;
+ char savel, flags;
+ void (*sig) (int);
+@@ -227,12 +228,12 @@ des_read_pw_string(char *s, int maxa, ch
+ setbuf(fi, (char *)NULL);
+ sig = signal(SIGINT, catch);
+ intrupt = 0;
+- (void)ioctl(fileno(fi), TCGETA, &ttyb);
++ (void)ioctl(fileno(fi), TCGETS, &ttyb);
+ savel = ttyb.c_line;
+ ttyb.c_line = 0;
+ flags = ttyb.c_lflag;
+ ttyb.c_lflag &= ~(ECHO | ECHOE | ECHOK | ECHONL);
+- (void)ioctl(fileno(fi), TCSETAF, &ttyb);
++ (void)ioctl(fileno(fi), TCSETSF, &ttyb);
+ #else
+ #ifdef AFS_NT40_ENV
+ /* turn off console input echoing */
+@@ -335,7 +336,7 @@ des_read_pw_string(char *s, int maxa, ch
+ #if defined (AFS_AIX_ENV) /*|| defined (AFS_HPUX_ENV)*/ || defined(AFS_SGI_ENV) || defined(AFS_LINUX20_ENV)
+ ttyb.c_lflag = flags;
+ ttyb.c_line = savel;
+- (void)ioctl(fileno(fi), TCSETAW, &ttyb);
++ (void)ioctl(fileno(fi), TCSETSW, &ttyb);
+ (void)signal(SIGINT, sig);
+ if (fi != stdin)
+ (void)fclose(fi);
diff --git a/package/openafs/patches/patch-src_libafs_MakefileProto_LINUX_in b/package/openafs/patches/patch-src_libafs_MakefileProto_LINUX_in
new file mode 100644
index 000000000..c07f5993e
--- /dev/null
+++ b/package/openafs/patches/patch-src_libafs_MakefileProto_LINUX_in
@@ -0,0 +1,11 @@
+--- openafs-1.6.5.orig/src/libafs/MakefileProto.LINUX.in 2013-07-18 00:10:42.000000000 +0200
++++ openafs-1.6.5/src/libafs/MakefileProto.LINUX.in 2013-09-22 20:53:43.359091259 +0200
+@@ -340,7 +340,7 @@ ${LIBAFS} ${LIBAFS_MP} ${LIBAFS_EP} ${LI
+ .FORCE:
+ ${LINUX_LIBAFS_NAME}.ko afspag.ko: .FORCE
+ env EXTRA_CFLAGS="${EXTRA_CFLAGS}" @TOP_SRCDIR@/libafs/make_kbuild_makefile.pl ${KDIR} $@ @TOP_OBJDIR@/src/config/Makefile.config Makefile.afs Makefile.common
+- env EXTRA_CFLAGS="${EXTRA_CFLAGS}" $(MAKE) -C ${LINUX_KERNEL_BUILD} M=@TOP_OBJDIR@/src/libafs/${KDIR} modules 2>&1 | tee .makelog
++ env EXTRA_CFLAGS="${EXTRA_CFLAGS}" $(MAKE) -C ${LINUX_KERNEL_BUILD} ARCH=${ARCH} CROSS_COMPILE=${CROSS} M=@TOP_OBJDIR@/src/libafs/${KDIR} modules 2>&1 | tee .makelog
+ @if [ `grep ^WARNING .makelog | wc -l` -ne 0 ]; then \
+ echo Error: Undefined symbols in modules ; \
+ rm .makelog ; \
diff --git a/package/openafs/patches/patch-src_lwp_iomgr_c b/package/openafs/patches/patch-src_lwp_iomgr_c
new file mode 100644
index 000000000..c0b13db4f
--- /dev/null
+++ b/package/openafs/patches/patch-src_lwp_iomgr_c
@@ -0,0 +1,12 @@
+--- openafs-1.6.5.orig/src/lwp/iomgr.c 2013-07-18 00:10:42.000000000 +0200
++++ openafs-1.6.5/src/lwp/iomgr.c 2013-09-10 19:18:44.346172788 +0200
+@@ -57,9 +57,7 @@ extern void lwp_abort(void);
+ #include "timer.h"
+ #include <signal.h>
+ #include <errno.h>
+-#ifdef AFS_SUN5_ENV
+ #include <fcntl.h>
+-#endif
+
+ #if defined(USE_PTHREADS) || defined(USE_SOLARIS_THREADS)
+
diff --git a/package/openafs/patches/patch-src_lwp_waitkey_c b/package/openafs/patches/patch-src_lwp_waitkey_c
new file mode 100644
index 000000000..4cdc004a8
--- /dev/null
+++ b/package/openafs/patches/patch-src_lwp_waitkey_c
@@ -0,0 +1,37 @@
+--- openafs-1.6.5.orig/src/lwp/waitkey.c 2013-07-18 00:10:42.000000000 +0200
++++ openafs-1.6.5/src/lwp/waitkey.c 2013-09-10 20:04:09.315133972 +0200
+@@ -158,34 +158,6 @@ LWP_WaitForKeystroke(int seconds)
+ struct timeval twait;
+ struct timeval *tp = NULL;
+
+-#ifdef AFS_LINUX20_ENV
+- if (stdin->_IO_read_ptr < stdin->_IO_read_end)
+- return 1;
+-#else
+-#if defined(AFS_DARWIN_ENV) || defined(AFS_XBSD_ENV)
+-#if defined(AFS_DFBSD_ENV)
+- struct appx_sbuf {
+- unsigned char *_base;
+- int _size;
+- };
+- struct APPX_FILE
+- {
+- struct __FILE_public pub;
+- struct appx_sbuf _bf; /* the buffer (at least 1 byte, if !NULL) */
+- };
+- struct APPX_FILE *appx_stdin = (struct APPX_FILE *) stdin;
+- if (appx_stdin->_bf._size > 0)
+- return 1;
+-#else
+- if (stdin->_bf._size > 0)
+- return 1;
+-#endif
+-#else
+- if (stdin->_cnt > 0)
+- return 1;
+-#endif
+-#endif
+-
+ FD_ZERO(&rdfds);
+ FD_SET(fileno(stdin), &rdfds);
+
diff --git a/package/openafs/patches/patch-src_rx_rx_lwp_c b/package/openafs/patches/patch-src_rx_rx_lwp_c
new file mode 100644
index 000000000..9201c06c1
--- /dev/null
+++ b/package/openafs/patches/patch-src_rx_rx_lwp_c
@@ -0,0 +1,10 @@
+--- openafs-1.6.5.orig/src/rx/rx_lwp.c 2013-07-18 00:10:42.000000000 +0200
++++ openafs-1.6.5/src/rx/rx_lwp.c 2013-09-14 15:12:45.580963823 +0200
+@@ -28,6 +28,7 @@
+ #ifdef AFS_NT40_ENV
+ # include <winsock2.h>
+ #else
++# include <fcntl.h>
+ # include <unistd.h> /* select() prototype */
+ # include <sys/time.h> /* struct timeval, select() prototype */
+ # ifndef FD_SET
diff --git a/package/openafs/patches/patch-src_rx_rx_trace_c b/package/openafs/patches/patch-src_rx_rx_trace_c
new file mode 100644
index 000000000..93cbd9de7
--- /dev/null
+++ b/package/openafs/patches/patch-src_rx_rx_trace_c
@@ -0,0 +1,10 @@
+--- openafs-1.6.5.orig/src/rx/rx_trace.c 2013-07-18 00:10:42.000000000 +0200
++++ openafs-1.6.5/src/rx/rx_trace.c 2013-09-14 15:36:29.926860486 +0200
+@@ -26,6 +26,7 @@ main(int argc, char **argv)
+ #include <fcntl.h>
+ #include <io.h>
+ #else
++#include <fcntl.h>
+ #include <sys/file.h>
+ #include <unistd.h>
+ #endif
diff --git a/package/openafs/patches/patch-src_rxgen_Makefile_in b/package/openafs/patches/patch-src_rxgen_Makefile_in
new file mode 100644
index 000000000..bd0aa8c9a
--- /dev/null
+++ b/package/openafs/patches/patch-src_rxgen_Makefile_in
@@ -0,0 +1,19 @@
+--- openafs-1.6.5.orig/src/rxgen/Makefile.in 2013-07-18 00:10:42.000000000 +0200
++++ openafs-1.6.5/src/rxgen/Makefile.in 2013-09-10 20:57:38.854784594 +0200
+@@ -25,10 +25,14 @@ ${TOP_INCDIR}/afs/rxgen_consts.h: rxgen_
+ ${INSTALL_DATA} $? $@
+
+ rxgen: $(OBJS) AFS_component_version_number.c $(HDRS)
+- $(CC) $(CFLAGS) $(OBJS) $(XLIBS) -o $@
++ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(OBJS) $(XLIBS) -o $@
+
+ rpc_main.o: rpc_main.c
+- $(CCOBJ) $(CFLAGS) -c ${srcdir}/rpc_main.c -DPATH_CPP="\"$(PATH_CPP)\""
++ $(CC_FOR_BUILD) ${COMMON_INCL} $(CFLAGS_FOR_BUILD) -c ${srcdir}/rpc_main.c -DPATH_CPP="\"$(PATH_CPP)\""
++
++.c.o:
++ $(CC_FOR_BUILD) ${COMMON_INCL} $(CFLAGS_FOR_BUILD) -c $<
++
+
+ #
+ # Install targets
diff --git a/package/openafs/patches/patch-src_rxkad_rxkad_client_c b/package/openafs/patches/patch-src_rxkad_rxkad_client_c
new file mode 100644
index 000000000..2149a128d
--- /dev/null
+++ b/package/openafs/patches/patch-src_rxkad_rxkad_client_c
@@ -0,0 +1,10 @@
+--- openafs-1.6.5.orig/src/rxkad/rxkad_client.c 2013-07-18 00:10:42.000000000 +0200
++++ openafs-1.6.5/src/rxkad/rxkad_client.c 2013-09-24 22:03:30.630747856 +0200
+@@ -37,7 +37,6 @@
+ #include "afs/sysincludes.h"
+ #endif /* !UKERNEL */
+ #ifndef AFS_LINUX22_ENV
+-#include "rpc/types.h"
+ #include "rx/xdr.h"
+ #endif
+ #include "rx/rx.h"
diff --git a/package/openafs/patches/patch-src_shlibafsrpc_Makefile_in b/package/openafs/patches/patch-src_shlibafsrpc_Makefile_in
new file mode 100644
index 000000000..c66781211
--- /dev/null
+++ b/package/openafs/patches/patch-src_shlibafsrpc_Makefile_in
@@ -0,0 +1,11 @@
+--- openafs-1.6.5.orig/src/shlibafsrpc/Makefile.in 2013-07-18 00:10:42.000000000 +0200
++++ openafs-1.6.5/src/shlibafsrpc/Makefile.in 2013-09-24 22:20:22.450027563 +0200
+@@ -404,7 +404,7 @@ syscall.o: ${SYS}/syscall.s
+ ${CC} ${CFLAGS} -c syscall.c;; \
+ *) \
+ $(PATH_CPP) ${SFLAGS} ${SYS}/syscall.s > syscall.ss; \
+- as $(ASFLAGS) -o syscall.o syscall.ss; \
++ ${AS} $(ASFLAGS) -o syscall.o syscall.ss; \
+ $(RM) syscall.ss;; \
+ esac
+
diff --git a/package/openafs/patches/patch-src_sys_glue_c b/package/openafs/patches/patch-src_sys_glue_c
new file mode 100644
index 000000000..a1bb43376
--- /dev/null
+++ b/package/openafs/patches/patch-src_sys_glue_c
@@ -0,0 +1,12 @@
+--- openafs-1.6.5.orig/src/sys/glue.c 2013-07-18 00:10:42.000000000 +0200
++++ openafs-1.6.5/src/sys/glue.c 2013-09-15 14:36:10.940304169 +0200
+@@ -20,9 +20,7 @@
+ #include <sys/ioctl.h>
+ #include <unistd.h>
+ #include <stdio.h>
+-#ifdef AFS_SUN5_ENV
+ #include <fcntl.h>
+-#endif
+ #include "afssyscalls.h"
+
+ #ifdef AFS_LINUX20_ENV
diff --git a/package/openafs/src/src/comerr/internal.c b/package/openafs/src/src/comerr/internal.c
new file mode 100644
index 000000000..8e0193d44
--- /dev/null
+++ b/package/openafs/src/src/comerr/internal.c
@@ -0,0 +1,22 @@
+/* Just like strncpy but shift-case in transit and forces null termination */
+char *
+lcstring(char *d, char *s, int n)
+{
+ char *original_d = d;
+ char c;
+
+ if ((s == 0) || (d == 0))
+ return 0; /* just to be safe */
+ while (n) {
+ c = *s++;
+ if (isupper(c))
+ c = tolower(c);
+ *d++ = c;
+ if (c == 0)
+ break; /* quit after transferring null */
+ if (--n == 0)
+ *(d - 1) = 0; /* make sure null terminated */
+ }
+ return original_d;
+}
+
diff --git a/package/php/Makefile b/package/php/Makefile
index f6c97d2db..64bf3c013 100644
--- a/package/php/Makefile
+++ b/package/php/Makefile
@@ -4,9 +4,9 @@
include $(TOPDIR)/rules.mk
PKG_NAME:= php
-PKG_VERSION:= 5.4.17
-PKG_RELEASE:= 2
-PKG_MD5SUM:= cc698032dcdcb9ad158edcc90fe798d6
+PKG_VERSION:= 5.4.19
+PKG_RELEASE:= 1
+PKG_MD5SUM:= 9e7ad2494ba3de519328f74267de8342
PKG_DESCR:= PHP language interpreter
PKG_SECTION:= lang
PKG_DEPENDS:= libpthread librt libgcc
diff --git a/package/php/files/php.ini b/package/php/files/php.ini
index 903bb432e..c9b395ac1 100644
--- a/package/php/files/php.ini
+++ b/package/php/files/php.ini
@@ -106,7 +106,7 @@ error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
; instead (see below). Keeping display_errors enabled on a production web site
; may reveal security information to end users, such as file paths on your Web
; server, your database schema or other information.
-display_errors = On
+display_errors = Off
; Even when display_errors is on, errors that occur during PHP's startup
; sequence are not displayed. It's strongly recommended to keep
@@ -116,7 +116,7 @@ display_startup_errors = Off
; Log errors into a log file (server-specific log, stderr, or error_log (below))
; As stated above, you're strongly advised to use error logging in place of
; error displaying on production web sites.
-log_errors = Off
+log_errors = On
; Set maximum length of log_errors. In error_log information about the source is
; added. The default is 1024 and 0 allows to not apply any maximum length at all.
@@ -163,7 +163,7 @@ track_errors = Off
;error_log = filename
; Log errors to syslog (Event Log on NT, not valid in Windows 95).
-;error_log = syslog
+error_log = syslog
;;;;;;;;;;;;;;;;;
diff --git a/package/polipo/patches/patch-dns_c b/package/polipo/patches/patch-dns_c
new file mode 100644
index 000000000..1b9189bc3
--- /dev/null
+++ b/package/polipo/patches/patch-dns_c
@@ -0,0 +1,12 @@
+--- polipo-1.0.4.1.orig/dns.c 2010-02-01 00:13:20.000000000 +0100
++++ polipo-1.0.4.1/dns.c 2013-09-18 12:30:27.000000000 +0200
+@@ -646,7 +646,9 @@ really_do_gethostbyname(AtomPtr name, Ob
+ if(host == NULL) {
+ switch(h_errno) {
+ case HOST_NOT_FOUND: error = EDNS_HOST_NOT_FOUND; break;
++#ifdef NO_ADDRESS
+ case NO_ADDRESS: error = EDNS_NO_ADDRESS; break;
++#endif
+ case NO_RECOVERY: error = EDNS_NO_RECOVERY; break;
+ case TRY_AGAIN: error = EDNS_TRY_AGAIN; break;
+ default: error = EUNKNOWN; break;
diff --git a/package/rsync/Makefile b/package/rsync/Makefile
index 054a5d641..939a46fd1 100644
--- a/package/rsync/Makefile
+++ b/package/rsync/Makefile
@@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk
PKG_NAME:= rsync
PKG_VERSION:= 3.0.9
-PKG_RELEASE:= 1
+PKG_RELEASE:= 2
PKG_MD5SUM:= 5ee72266fe2c1822333c407e1761b92b
PKG_DESCR:= utility that provides fast incremental file transfer
PKG_SECTION:= net/misc
diff --git a/package/rsync/patches/patch-Makefile_in b/package/rsync/patches/patch-Makefile_in
new file mode 100644
index 000000000..f955b5016
--- /dev/null
+++ b/package/rsync/patches/patch-Makefile_in
@@ -0,0 +1,11 @@
+--- rsync-3.0.9.orig/Makefile.in 2011-03-26 18:01:37.000000000 +0100
++++ rsync-3.0.9/Makefile.in 2013-09-26 12:40:43.000000000 +0200
+@@ -146,7 +146,7 @@ configure.sh config.h.in: configure.ac a
+ else \
+ echo 'You may need to run:'; \
+ echo ' make reconfigure'; \
+- exit 1; \
++ exit 0; \
+ fi \
+ fi
+
diff --git a/package/screen/Makefile b/package/screen/Makefile
index 0e63651cb..22a1bd6f3 100644
--- a/package/screen/Makefile
+++ b/package/screen/Makefile
@@ -21,6 +21,14 @@ $(eval $(call PKG_template,SCREEN,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PK
CONFIGURE_ENV+= $(foreach flag,rename fchmod fchown strerror lstat _exit utimes vsnprintf getcwd setlocale strftime,ac_cv_func_${flag}=yes)
CONFIGURE_ARGS+= --with-sys-screenrc=/etc/screenrc
+pre-build:
+ echo '#undef UTMPOK' >> ${WRKBUILD}/config.h
+ echo '#undef LOGINDEFAULT' >> ${WRKBUILD}/config.h
+ echo '#define LOGINDEFAULT 0' >> ${WRKBUILD}/config.h
+ echo '#undef GETUTENT' >> ${WRKBUILD}/config.h
+ echo '#undef UTHOST' >> ${WRKBUILD}/config.h
+ echo '#undef BUGGYGETLOGIN' >> ${WRKBUILD}/config.h
+
post-install:
${INSTALL_DIR} ${IDIR_SCREEN}/usr/bin
${INSTALL_BIN} ${WRKINST}/usr/bin/screen ${IDIR_SCREEN}/usr/bin/
diff --git a/package/uclibc++/Makefile b/package/uclibc++/Makefile
index 6c1097e19..c51819429 100644
--- a/package/uclibc++/Makefile
+++ b/package/uclibc++/Makefile
@@ -5,7 +5,7 @@ include ${TOPDIR}/rules.mk
PKG_NAME:= uClibc++
PKG_VERSION:= 0.2.4
-PKG_RELEASE:= 1
+PKG_RELEASE:= 2
PKG_MD5SUM:= 394c119363dd8b469fb898442a6764b8
PKG_DESCR:= A standard c++ library for embedded systems
PKG_SECTION:= libs
diff --git a/package/uclibc++/patches/patch-include_unwind-cxx_h b/package/uclibc++/patches/patch-include_unwind-cxx_h
new file mode 100644
index 000000000..a81d44cc7
--- /dev/null
+++ b/package/uclibc++/patches/patch-include_unwind-cxx_h
@@ -0,0 +1,21 @@
+http://git.uclibc.org/uClibc++/commit/?id=cf73cb907c03ca2fb22bfe7fe2f732c10714b9ad
+--- uClibc++-0.2.4.orig/include/unwind-cxx.h 2012-05-25 23:15:31.000000000 +0200
++++ uClibc++-0.2.4/include/unwind-cxx.h 2013-09-24 11:48:52.000000000 +0200
+@@ -173,6 +173,7 @@ extern std::unexpected_handler __unexpec
+
+ // This is the exception class we report -- "GNUCC++\0".
+ const _Unwind_Exception_Class __gxx_exception_class
++#ifndef __ARM_EABI_UNWINDER__
+ = ((((((((_Unwind_Exception_Class) 'G'
+ << 8 | (_Unwind_Exception_Class) 'N')
+ << 8 | (_Unwind_Exception_Class) 'U')
+@@ -181,6 +182,9 @@ const _Unwind_Exception_Class __gxx_exce
+ << 8 | (_Unwind_Exception_Class) '+')
+ << 8 | (_Unwind_Exception_Class) '+')
+ << 8 | (_Unwind_Exception_Class) '\0');
++#else
++= "GNUCC++";
++#endif
+
+ // GNU C++ personality routine, Version 0.
+ extern "C" _Unwind_Reason_Code __gxx_personality_v0
diff --git a/package/vim/Makefile b/package/vim/Makefile
index da2cd3d3b..a96c799b1 100644
--- a/package/vim/Makefile
+++ b/package/vim/Makefile
@@ -4,9 +4,9 @@
include ${TOPDIR}/rules.mk
PKG_NAME:= vim
-PKG_VERSION:= 7.3
-PKG_RELEASE:= 2
-PKG_MD5SUM:= 5b9510a17074e2b37d8bb38ae09edbf2
+PKG_VERSION:= 7.4
+PKG_RELEASE:= 1
+PKG_MD5SUM:= 607e135c559be642f210094ad023dc65
PKG_DESCR:= The text editor
PKG_SECTION:= editor
PKG_DEPENDS:= libncurses libgcc
@@ -15,13 +15,14 @@ PKG_URL:= http://www.vim.org/
PKG_SITES:= ftp://ftp.vim.org/pub/vim/unix/
DISTFILES= ${PKG_NAME}-${PKG_VERSION}.tar.bz2
-WRKDIST= ${WRKDIR}/vim73
+WRKDIST= ${WRKDIR}/vim74
WRKSRC= ${WRKDIST}/src
include ${TOPDIR}/mk/package.mk
$(eval $(call PKG_template,VIM,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+TARGET_CFLAGS+= -lgcc
CONFIGURE_ENV+= vim_cv_toupper_broken=no \
vim_cv_getcwd_broken=no \
vim_cv_stat_ignores_slash=yes \
@@ -60,7 +61,7 @@ post-install:
${INSTALL_DIR} ${IDIR_VIM}/usr/bin
${INSTALL_DIR} ${IDIR_VIM}/usr/share/vim
${CP} ${WRKINST}/usr/bin/{ex,vim,view} ${IDIR_VIM}/usr/bin
- ${CP} ${WRKINST}/usr/share/vim/vim73/vimrc_example.vim \
+ ${CP} ${WRKINST}/usr/share/vim/vim74/vimrc_example.vim \
${IDIR_VIM}/usr/share/vim/vimrc
include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/vim/patches/patch-src_auto_configure b/package/vim/patches/patch-src_auto_configure
deleted file mode 100644
index 37544f63b..000000000
--- a/package/vim/patches/patch-src_auto_configure
+++ /dev/null
@@ -1,42 +0,0 @@
---- vim73.orig/src/auto/configure 2010-08-13 16:17:15.000000000 +0200
-+++ vim73/src/auto/configure 2010-09-20 02:59:14.017806852 +0200
-@@ -11639,39 +11639,6 @@ _ACEOF
-
-
-
--{ $as_echo "$as_me:${as_lineno-$LINENO}: checking uint32_t is 32 bits" >&5
--$as_echo_n "checking uint32_t is 32 bits... " >&6; }
--if test "$cross_compiling" = yes; then :
-- as_fn_error "could not compile program using uint32_t." "$LINENO" 5
--else
-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
--/* end confdefs.h. */
--
--#ifdef HAVE_STDINT_H
--# include <stdint.h>
--#endif
--#ifdef HAVE_INTTYPES_H
--# include <inttypes.h>
--#endif
--main() {
-- uint32_t nr1 = (uint32_t)-1;
-- uint32_t nr2 = (uint32_t)0xffffffffUL;
-- if (sizeof(uint32_t) != 4 || nr1 != 0xffffffffUL || nr2 + 1 != 0) exit(1);
-- exit(0);
--}
--_ACEOF
--if ac_fn_c_try_run "$LINENO"; then :
-- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
--$as_echo "ok" >&6; }
--else
-- as_fn_error "WRONG! uint32_t not defined correctly." "$LINENO" 5
--fi
--rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-- conftest.$ac_objext conftest.beam conftest.$ac_ext
--fi
--
--
--
- bcopy_test_prog='
- #include "confdefs.h"
- #ifdef HAVE_STRING_H
diff --git a/package/vte/Makefile b/package/vte/Makefile
deleted file mode 100644
index a37d8fab0..000000000
--- a/package/vte/Makefile
+++ /dev/null
@@ -1,37 +0,0 @@
-# This file is part of the OpenADK project. OpenADK is copyrighted
-# material, please see the LICENCE file in the top-level directory.
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:= vte
-PKG_VERSION:= 0.25.1
-PKG_EXTRAVER:= 0.25
-PKG_RELEASE:= 1
-PKG_MD5SUM:= 415ba972ea60b8016b7a98019fa412b1
-PKG_DESCR:= an experimental terminal emulator widget
-PKG_SECTION:= libs
-PKG_BUILDDEP:= ncurses
-PKG_URL:= http://www.gnome.org/
-PKG_SITES:= http://ftp.gnome.org/pub/GNOME/sources/vte/$(PKG_EXTRAVER)/
-
-PKG_SUBPKGS:= VTE VTE_DEV
-
-include $(TOPDIR)/mk/package.mk
-
-$(eval $(call PKG_template,VTE,vte,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-$(eval $(call PKG_template,VTE_DEV,vte-dev,$(PKG_VERSION)-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
-
-vte-install:
- $(INSTALL_DIR) $(IDIR_VTE)/usr/lib
- $(CP) $(WRKINST)/usr/lib/libvte*.so* $(IDIR_VTE)/usr/lib
- $(INSTALL_DIR) $(IDIR_VTE)/usr/bin
- $(INSTALL_BIN) $(WRKINST)/usr/bin/vte $(IDIR_VTE)/usr/bin
-
-vte-dev-install:
- $(INSTALL_DIR) $(IDIR_VTE_DEV)/usr/include
- $(CP) $(WRKINST)/usr/include/* $(IDIR_VTE_DEV)/usr/include
- $(INSTALL_DIR) $(IDIR_VTE_DEV)/usr/lib/pkgconfig
- $(CP) $(WRKINST)/usr/lib/pkgconfig/*.pc \
- $(IDIR_VTE_DEV)/usr/lib/pkgconfig
-
-include ${TOPDIR}/mk/pkg-bottom.mk
diff --git a/package/xbmc/Makefile b/package/xbmc/Makefile
index cdffe1852..5efdbfb40 100644
--- a/package/xbmc/Makefile
+++ b/package/xbmc/Makefile
@@ -9,7 +9,7 @@ PKG_RELEASE:= 1
PKG_MD5SUM:= 489f3877decae4e265ece54f9eaef0ba
PKG_DESCR:= software media player
PKG_SECTION:= multimedia
-PKG_DEPENDS:= boost-shared libffmpeg python2 libstdcxx
+PKG_DEPENDS:= boost boost-shared libffmpeg python2 libstdcxx
PKG_DEPENDS+= libglew mesalib libass libmpeg2 libmad
PKG_DEPENDS+= libjpeg libogg libvorbis libmodplug libcurl
PKG_DEPENDS+= libflac libopenssl libbz2 libtiff liblzo
@@ -21,10 +21,12 @@ PKG_BUILDDEP+= libmpeg2 libmad jpeg libogg libvorbis libmodplug
PKG_BUILDDEP+= curl flac openssl bzip2 libtiff liblzo yajl
PKG_BUILDDEP+= tinyxml sqlite pcre libpng libcdio freetype
PKG_BUILDDEP+= libsamplerate taglib libjasper lame libmicrohttpd
+PKG_BUILDDEP+= bcm2835-vc libgpg-error
PKG_URL:= http://xbmc.org/
PKG_SITES:= http://mirrors.xbmc.org/releases/source/
PKG_SYSTEM_DEPENDS:= raspberry-pi
+PKG_LIBC_DEPENDS:= eglibc glibc
include $(TOPDIR)/mk/package.mk
diff --git a/target/arm/kernel.config.sharp-zaurus b/target/arm/kernel.config.sharp-zaurus
index 65b6f94ad..d00ec0d36 100644
--- a/target/arm/kernel.config.sharp-zaurus
+++ b/target/arm/kernel.config.sharp-zaurus
@@ -1,39 +1,30 @@
#
-# Automatically generated make config: don't edit
-# Linux/arm 2.6.39 Kernel Configuration
-# Fri Sep 30 15:02:47 2011
+# Automatically generated file; DO NOT EDIT.
+# Linux/arm 3.9.11 Kernel Configuration
#
CONFIG_ARM=y
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_HAVE_SCHED_CLOCK=y
CONFIG_GENERIC_GPIO=y
-# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_KTIME_SCALAR=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_HARDIRQS_SW_RESEND=y
-CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_ARCH_HAS_CPUFREQ=y
-CONFIG_ARCH_HAS_CPU_IDLE_WAIT=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 is not set
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_NEED_MACH_GPIO_H=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
-CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
#
# General setup
#
-CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
@@ -41,17 +32,18 @@ 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_BSD_PROCESS_ACCT is not set
# CONFIG_FHANDLE is not set
-# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
CONFIG_HAVE_GENERIC_HARDIRQS=y
@@ -59,21 +51,42 @@ CONFIG_HAVE_GENERIC_HARDIRQS=y
# IRQ subsystem
#
CONFIG_GENERIC_HARDIRQS=y
-CONFIG_HAVE_SPARSE_IRQ=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_TRACE 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
@@ -82,6 +95,7 @@ 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
@@ -105,7 +119,6 @@ CONFIG_PERF_USE_VMALLOC=y
# Kernel Performance Events And Counters
#
# CONFIG_PERF_EVENTS is not set
-# CONFIG_PERF_COUNTERS is not set
# CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
@@ -114,11 +127,24 @@ CONFIG_SLAB=y
# 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
@@ -133,12 +159,36 @@ 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
@@ -147,98 +197,65 @@ CONFIG_IOSCHED_DEADLINE=y
CONFIG_DEFAULT_DEADLINE=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="deadline"
-# CONFIG_INLINE_SPIN_TRYLOCK is not set
-# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK is not set
-# CONFIG_INLINE_SPIN_LOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
-CONFIG_INLINE_SPIN_UNLOCK=y
-# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_READ_TRYLOCK is not set
-# CONFIG_INLINE_READ_LOCK is not set
-# CONFIG_INLINE_READ_LOCK_BH is not set
-# CONFIG_INLINE_READ_LOCK_IRQ is not set
-# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
CONFIG_INLINE_READ_UNLOCK=y
-# CONFIG_INLINE_READ_UNLOCK_BH is not set
CONFIG_INLINE_READ_UNLOCK_IRQ=y
-# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_WRITE_TRYLOCK is not set
-# CONFIG_INLINE_WRITE_LOCK is not set
-# CONFIG_INLINE_WRITE_LOCK_BH is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
CONFIG_INLINE_WRITE_UNLOCK=y
-# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
-# CONFIG_MUTEX_SPIN_ON_OWNER is not set
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_VEXPRESS is not set
# CONFIG_ARCH_AT91 is not set
-# CONFIG_ARCH_BCMRING is not set
-# CONFIG_ARCH_CLPS711X 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_MXC is not set
# CONFIG_ARCH_MXS is not set
-# CONFIG_ARCH_STMP3XXX 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_IXP23XX is not set
-# CONFIG_ARCH_IXP2000 is not set
# CONFIG_ARCH_IXP4XX is not set
# CONFIG_ARCH_DOVE is not set
# CONFIG_ARCH_KIRKWOOD is not set
-# CONFIG_ARCH_LOKI is not set
-# CONFIG_ARCH_LPC32XX 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_NS9XXX is not set
# CONFIG_ARCH_W90X900 is not set
-# CONFIG_ARCH_NUC93X is not set
+# CONFIG_ARCH_LPC32XX is not set
# CONFIG_ARCH_TEGRA is not set
-# CONFIG_ARCH_PNX4008 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_S3C2410 is not set
+# CONFIG_ARCH_S3C24XX is not set
# CONFIG_ARCH_S3C64XX is not set
# CONFIG_ARCH_S5P64X0 is not set
-# CONFIG_ARCH_S5P6442 is not set
# CONFIG_ARCH_S5PC100 is not set
# CONFIG_ARCH_S5PV210 is not set
-# CONFIG_ARCH_EXYNOS4 is not set
+# CONFIG_ARCH_EXYNOS is not set
# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_TCC_926 is not set
# CONFIG_ARCH_U300 is not set
# CONFIG_ARCH_U8500 is not set
# CONFIG_ARCH_NOMADIK is not set
-# CONFIG_ARCH_DAVINCI is not set
-# CONFIG_ARCH_OMAP is not set
# CONFIG_PLAT_SPEAR is not set
-# CONFIG_ARCH_VT8500 is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP1 is not set
# CONFIG_GPIO_PCA953X is not set
#
@@ -248,15 +265,14 @@ CONFIG_ARCH_PXA=y
#
# 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_TAVOREVB3 is not set
# CONFIG_MACH_SAAR is not set
-# CONFIG_MACH_SAARB is not set
#
# Third Party Dev Platforms (sorted by vendor name)
@@ -315,10 +331,6 @@ CONFIG_PXA_SHARP_Cxx00=y
CONFIG_SHARPSL_PM=y
CONFIG_SHARPSL_PM_MAX1111=y
CONFIG_PXA_SSP=y
-
-#
-# System MMU
-#
CONFIG_PLAT_PXA=y
#
@@ -337,12 +349,15 @@ 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_CPU_HAS_PMU=y
+CONFIG_MULTI_IRQ_HANDLER=y
CONFIG_SHARP_PARAM=y
CONFIG_SHARP_SCOOP=y
@@ -350,53 +365,53 @@ CONFIG_SHARP_SCOOP=y
# Bus support
#
# CONFIG_PCI_SYSCALL is not set
-# CONFIG_ARCH_SUPPORTS_MSI is not set
# CONFIG_PCCARD is not set
#
# Kernel Features
#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ=y
-# CONFIG_HIGH_RES_TIMERS is not set
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
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_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
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_VIRT_TO_BUS=y
# 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
-# CONFIG_DEPRECATED_PARAM_STRUCT 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=""
@@ -404,13 +419,18 @@ CONFIG_CMDLINE=""
CONFIG_KEXEC=y
CONFIG_ATAGS_PROC=y
# CONFIG_CRASH_DUMP is not set
-# CONFIG_AUTO_ZRELADDR 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
@@ -424,9 +444,11 @@ CONFIG_ATAGS_PROC=y
# 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
@@ -434,18 +456,25 @@ CONFIG_HAVE_AOUT=y
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
@@ -492,6 +521,7 @@ 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
@@ -511,13 +541,15 @@ CONFIG_IPV6_NDISC_NODETYPE=y
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER 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
@@ -534,6 +566,8 @@ CONFIG_IPV6_NDISC_NODETYPE=y
# 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
@@ -550,13 +584,68 @@ 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_MISC_DEVICES 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
@@ -571,8 +660,6 @@ CONFIG_SCSI_MOD=y
# CONFIG_ATA is not set
# CONFIG_MD is not set
# CONFIG_NETDEVICES is not set
-# CONFIG_ISDN is not set
-# CONFIG_PHONE is not set
#
# Input device support
@@ -581,6 +668,7 @@ 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
@@ -610,9 +698,11 @@ CONFIG_INPUT=y
#
# 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
@@ -620,6 +710,7 @@ CONFIG_UNIX98_PTYS=y
# 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
#
@@ -631,12 +722,14 @@ CONFIG_UNIX98_PTYS=y
# Non-8250 serial port support
#
# CONFIG_SERIAL_MAX3100 is not set
-# CONFIG_SERIAL_MAX3107 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
@@ -644,7 +737,7 @@ CONFIG_UNIX98_PTYS=y
# CONFIG_R3964 is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
-# CONFIG_RAMOOPS is not set
+# CONFIG_BRCM_CHAR_DRIVERS is not set
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
# CONFIG_I2C_COMPAT is not set
@@ -667,7 +760,8 @@ CONFIG_I2C_BOARDINFO=y
#
# I2C system bus drivers (mostly embedded / system-on-chip)
#
-# CONFIG_I2C_DESIGNWARE is not set
+# 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
@@ -691,6 +785,7 @@ CONFIG_I2C_PXA=y
# 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
#
@@ -700,8 +795,12 @@ CONFIG_SPI_MASTER=y
# 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
@@ -710,6 +809,7 @@ CONFIG_SPI_PXA2XX=y
#
# CONFIG_SPI_SPIDEV is not set
# CONFIG_SPI_TLE62X0 is not set
+# CONFIG_HSI is not set
#
# PPS support
@@ -719,15 +819,30 @@ CONFIG_SPI_PXA2XX=y
#
# 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 expanders:
+# Memory mapped GPIO drivers:
#
-# CONFIG_GPIO_BASIC_MMIO is not set
-# CONFIG_GPIO_IT8761E is not set
+# 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:
@@ -757,18 +872,32 @@ CONFIG_GPIOLIB=y
#
# 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_BQ20Z75 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
@@ -776,6 +905,7 @@ CONFIG_HWMON=y
#
# 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
@@ -785,6 +915,7 @@ CONFIG_HWMON=y
# 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
@@ -800,6 +931,7 @@ CONFIG_HWMON=y
# 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
@@ -821,10 +953,18 @@ CONFIG_HWMON=y
# 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
@@ -835,14 +975,17 @@ CONFIG_SENSORS_MAX1111=y
# 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_SCH5627 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
@@ -857,6 +1000,7 @@ CONFIG_SENSORS_MAX1111=y
# 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
@@ -865,7 +1009,77 @@ CONFIG_SSB_POSSIBLE=y
# Sonics Silicon Backplane
#
# CONFIG_SSB is not set
-# CONFIG_MFD_SUPPORT 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
@@ -898,6 +1112,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y
#
# 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
@@ -906,29 +1121,34 @@ CONFIG_FB_PXA=y
# 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_MB862XX 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
-
-#
-# Display device support
-#
-# CONFIG_DISPLAY_SUPPORT 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
@@ -948,27 +1168,80 @@ CONFIG_FONT_8x16=y
# 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
-# CONFIG_HID_SUPPORT 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_NFC_DEVICES 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
@@ -1021,6 +1294,7 @@ CONFIG_PROC_SYSCTL=y
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
@@ -1039,10 +1313,12 @@ CONFIG_MISC_FILESYSTEMS=y
# 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
@@ -1051,28 +1327,6 @@ CONFIG_NETWORK_FILESYSTEMS=y
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS 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
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
# CONFIG_NLS_CODEPAGE_437 is not set
@@ -1112,6 +1366,17 @@ CONFIG_NLS_ISO8859_1=y
# 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
#
@@ -1124,32 +1389,81 @@ CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
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 is not set
-# CONFIG_HARDLOCKUP_DETECTOR is not set
-# CONFIG_SPARSE_RCU_POINTER 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_SYSCTL_SYSCALL_CHECK is not set
+# 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_OC_ETM is not set
+# CONFIG_DEBUG_LL is not set
+CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S"
#
# Security options
@@ -1165,8 +1479,11 @@ 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
@@ -1202,6 +1519,7 @@ CONFIG_CRYPTO=y
# 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
@@ -1211,6 +1529,7 @@ CONFIG_CRYPTO=y
# 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
@@ -1219,7 +1538,8 @@ CONFIG_CRYPTO=y
#
# Ciphers
#
-# CONFIG_CRYPTO_AES is not set
+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
@@ -1249,25 +1569,29 @@ CONFIG_CRYPTO=y
# CONFIG_CRYPTO_USER_API_HASH is not set
# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
# CONFIG_CRYPTO_HW is not set
-
-#
-# OCF Configuration
-#
-# CONFIG_OCF_OCF is not set
# CONFIG_BINARY_PRINTF is not set
#
# Library routines
#
CONFIG_BITREVERSE=y
-CONFIG_GENERIC_FIND_LAST_BIT=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
@@ -1280,6 +1604,11 @@ CONFIG_XZ_DEC_BCJ=y
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/linux/config/Config.in.misc b/target/linux/config/Config.in.misc
index 57b64d5e9..ea9bc5e5a 100644
--- a/target/linux/config/Config.in.misc
+++ b/target/linux/config/Config.in.misc
@@ -1,3 +1,6 @@
+config ADK_KERNEL_KEYS
+ boolean
+
config ADK_KERNEL_I2C
boolean
diff --git a/target/linux/patches/3.9.11/arm-spitz.patch b/target/linux/patches/3.9.11/arm-spitz.patch
new file mode 100644
index 000000000..aea848244
--- /dev/null
+++ b/target/linux/patches/3.9.11/arm-spitz.patch
@@ -0,0 +1,27 @@
+http://lists.infradead.org/pipermail/linux-arm-kernel/2013-September/198444.html
+
+diff -Nur linux-3.9.11.orig/arch/arm/common/sharpsl_param.c linux-3.9.11/arch/arm/common/sharpsl_param.c
+--- linux-3.9.11.orig/arch/arm/common/sharpsl_param.c 2013-07-21 02:16:17.000000000 +0200
++++ linux-3.9.11/arch/arm/common/sharpsl_param.c 2013-09-18 16:27:10.000000000 +0200
+@@ -26,6 +26,7 @@
+ #ifdef CONFIG_ARCH_SA1100
+ #define PARAM_BASE 0xe8ffc000
+ #else
++#include <asm/memory.h>
+ #define PARAM_BASE 0xa0000a00
+ #endif
+ #define MAGIC_CHG(a,b,c,d) ( ( d << 24 ) | ( c << 16 ) | ( b << 8 ) | a )
+@@ -41,7 +42,12 @@
+
+ void sharpsl_save_param(void)
+ {
+- memcpy(&sharpsl_param, (void *)PARAM_BASE, sizeof(struct sharpsl_param_info));
++#ifdef CONFIG_ARCH_SA1100
++ void *param_start = (void *)PARAM_BASE;
++#else
++ void *param_start = phys_to_virt(PARAM_BASE);
++#endif
++ memcpy(&sharpsl_param, param_start, sizeof(struct sharpsl_param_info));
+
+ if (sharpsl_param.comadj_keyword != COMADJ_MAGIC)
+ sharpsl_param.comadj=-1;
diff --git a/target/ppc/kernel.config b/target/ppc/kernel.config
index 42f6e73e2..d48da1856 100644
--- a/target/ppc/kernel.config
+++ b/target/ppc/kernel.config
@@ -1,7 +1,6 @@
#
-# Automatically generated make config: don't edit
-# Linux/powerpc 2.6.39 Kernel Configuration
-# Mon Sep 5 19:53:55 2011
+# Automatically generated file; DO NOT EDIT.
+# Linux/powerpc 3.9.11 Kernel Configuration
#
# CONFIG_PPC64 is not set
@@ -23,15 +22,13 @@ CONFIG_PPC_STD_MMU_32=y
# CONFIG_PPC_MM_SLICES is not set
CONFIG_PPC_HAVE_PMU_SUPPORT=y
# CONFIG_SMP is not set
+# CONFIG_PPC_DOORBELL is not set
CONFIG_PPC32=y
CONFIG_32BIT=y
CONFIG_WORD_SIZE=32
# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set
CONFIG_MMU=y
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_GENERIC_TIME_VSYSCALL=y
-CONFIG_GENERIC_CLOCKEVENTS=y
# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set
CONFIG_NR_IRQS=512
@@ -42,9 +39,6 @@ CONFIG_LOCKDEP_SUPPORT=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_ARCH_HAS_ILOG2_U32=y
CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_FIND_NEXT_BIT=y
-CONFIG_GENERIC_FIND_BIT_LE=y
-# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
CONFIG_PPC=y
CONFIG_EARLY_PRINTK=y
CONFIG_GENERIC_NVRAM=y
@@ -55,32 +49,31 @@ CONFIG_PPC_UDBG_16550=y
# CONFIG_GENERIC_TBSYNC is not set
CONFIG_AUDIT_ARCH=y
CONFIG_GENERIC_BUG=y
+# CONFIG_EPAPR_BOOT is not set
# CONFIG_DEFAULT_UIMAGE is not set
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
# CONFIG_PPC_DCR_NATIVE is not set
# CONFIG_PPC_DCR_MMIO is not set
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
-CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
#
# General setup
#
-CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_DEFAULT_HOSTNAME="openadk"
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
-# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_FHANDLE is not set
-# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
CONFIG_HAVE_GENERIC_HARDIRQS=y
@@ -88,23 +81,44 @@ CONFIG_HAVE_GENERIC_HARDIRQS=y
# IRQ subsystem
#
CONFIG_GENERIC_HARDIRQS=y
-CONFIG_HAVE_SPARSE_IRQ=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
-# CONFIG_SPARSE_IRQ is not set
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_GENERIC_TIME_VSYSCALL_OLD=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+
+#
+# Timers subsystem
+#
+# 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_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_TRACE 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=15
# 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
@@ -114,12 +128,14 @@ CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
CONFIG_EXPERT=y
CONFIG_SYSCTL_SYSCALL=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
# CONFIG_KALLSYMS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
# CONFIG_ELF_CORE is not set
CONFIG_PCSPKR_PLATFORM=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
# CONFIG_BASE_FULL is not set
CONFIG_FUTEX=y
CONFIG_EPOLL=y
@@ -135,7 +151,6 @@ CONFIG_HAVE_PERF_EVENTS=y
# Kernel Performance Events And Counters
#
# CONFIG_PERF_EVENTS is not set
-# CONFIG_PERF_COUNTERS is not set
# CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_PCI_QUIRKS is not set
# CONFIG_COMPAT_BRK is not set
@@ -145,14 +160,26 @@ CONFIG_SLAB=y
# 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_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_OLD_SIGSUSPEND=y
+CONFIG_OLD_SIGACTION=y
#
# GCOV-based kernel profiling
@@ -167,12 +194,22 @@ 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 is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_EFI_PARTITION=y
+
+#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
@@ -181,36 +218,17 @@ CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
-# CONFIG_INLINE_SPIN_TRYLOCK is not set
-# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK is not set
-# CONFIG_INLINE_SPIN_LOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
-CONFIG_INLINE_SPIN_UNLOCK=y
-# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_READ_TRYLOCK is not set
-# CONFIG_INLINE_READ_LOCK is not set
-# CONFIG_INLINE_READ_LOCK_BH is not set
-# CONFIG_INLINE_READ_LOCK_IRQ is not set
-# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
CONFIG_INLINE_READ_UNLOCK=y
-# CONFIG_INLINE_READ_UNLOCK_BH is not set
CONFIG_INLINE_READ_UNLOCK_IRQ=y
-# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_WRITE_TRYLOCK is not set
-# CONFIG_INLINE_WRITE_LOCK is not set
-# CONFIG_INLINE_WRITE_LOCK_BH is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
CONFIG_INLINE_WRITE_UNLOCK=y
-# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
-# CONFIG_MUTEX_SPIN_ON_OWNER is not set
# CONFIG_FREEZER is not set
+# CONFIG_PPC_XICS is not set
+# CONFIG_PPC_ICP_NATIVE is not set
+# CONFIG_PPC_ICP_HV is not set
+# CONFIG_PPC_ICS_RTAS is not set
+# CONFIG_GE_FPGA is not set
#
# Platform support
@@ -227,13 +245,17 @@ CONFIG_PPC_PMAC=y
# CONFIG_PPC_86xx is not set
# CONFIG_EMBEDDED6xx is not set
# CONFIG_AMIGAONE is not set
+# CONFIG_PPC_WSP is not set
# CONFIG_KVM_GUEST is not set
+# CONFIG_EPAPR_PARAVIRT is not set
CONFIG_PPC_NATIVE=y
CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
# CONFIG_UDBG_RTAS_CONSOLE is not set
# CONFIG_IPIC is not set
CONFIG_MPIC=y
+# CONFIG_PPC_EPAPR_HV_PIC is not set
# CONFIG_MPIC_WEIRD is not set
+# CONFIG_MPIC_MSGR is not set
CONFIG_PPC_I8259=y
CONFIG_PPC_RTAS=y
CONFIG_RTAS_ERROR_LOGGING=y
@@ -243,9 +265,18 @@ CONFIG_PPC_RTAS_DAEMON=y
# CONFIG_MPIC_U3_HT_IRQS is not set
CONFIG_PPC_MPC106=y
# CONFIG_PPC_970_NAP is not set
-# CONFIG_PPC_INDIRECT_IO is not set
-# CONFIG_GENERIC_IOMAP is not set
+# CONFIG_PPC_P7_NAP is not set
+
+#
+# CPU Frequency scaling
+#
# CONFIG_CPU_FREQ is not set
+
+#
+# CPUIdle driver
+#
+# CONFIG_CPU_IDLE is not set
+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
CONFIG_PPC601_SYNC_FIX=y
# CONFIG_TAU is not set
# CONFIG_FSL_ULI1575 is not set
@@ -255,9 +286,6 @@ CONFIG_PPC601_SYNC_FIX=y
# Kernel options
#
CONFIG_HIGHMEM=y
-# CONFIG_NO_HZ is not set
-# CONFIG_HIGH_RES_TIMERS is not set
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
@@ -270,6 +298,7 @@ CONFIG_PREEMPT_NONE=y
CONFIG_BINFMT_ELF=y
# CONFIG_HAVE_AOUT is not set
# CONFIG_BINFMT_MISC is not set
+CONFIG_COREDUMP=y
# CONFIG_IOMMU_HELPER is not set
# CONFIG_SWIOTLB is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -279,12 +308,11 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
# CONFIG_CRASH_DUMP is not set
CONFIG_MAX_ACTIVE_REGIONS=32
CONFIG_ARCH_FLATMEM_ENABLE=y
-CONFIG_ARCH_POPULATES_NODE_MAP=y
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_COMPACTION is not set
@@ -295,7 +323,9 @@ CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
# 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_PPC_4K_PAGES=y
CONFIG_FORCE_MAX_ZONEORDER=11
CONFIG_CMDLINE_BOOL=y
@@ -320,12 +350,17 @@ CONFIG_PCI_SYSCALL=y
# CONFIG_PCIEPORTBUS is not set
CONFIG_ARCH_SUPPORTS_MSI=y
# CONFIG_PCI_MSI is not set
+# CONFIG_PCI_DEBUG is not set
+# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
# CONFIG_PCI_STUB is not set
# CONFIG_PCI_IOV is not set
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_PASID is not set
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set
# CONFIG_HAS_RAPIDIO is not set
# CONFIG_RAPIDIO is not set
+# CONFIG_NONSTATIC_KERNEL is not set
#
# Advanced setup
@@ -346,7 +381,10 @@ 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
@@ -388,13 +426,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER 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
#
# Network testing
@@ -417,6 +456,7 @@ CONFIG_WIRELESS=y
# CONFIG_NET_9P is not set
# CONFIG_CAIF is not set
# CONFIG_CEPH_LIB is not set
+# CONFIG_NFC is not set
#
# Device Drivers
@@ -431,7 +471,15 @@ 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
+
+#
+# Bus devices
+#
# CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set
CONFIG_DTC=y
@@ -441,17 +489,44 @@ 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_DYNAMIC=y
CONFIG_OF_ADDRESS=y
CONFIG_OF_IRQ=y
CONFIG_OF_DEVICE=y
CONFIG_OF_PCI=y
+CONFIG_OF_PCI_IRQ=y
# CONFIG_PARPORT is not set
# CONFIG_BLK_DEV is not set
+
+#
+# Misc devices
+#
# CONFIG_SENSORS_LIS3LV02D is not set
-# CONFIG_MISC_DEVICES is not set
+# CONFIG_PHANTOM is not set
+# CONFIG_INTEL_MID_PTI is not set
+# CONFIG_SGI_IOC4 is not set
+# CONFIG_TIFM_CORE is not set
+# CONFIG_ATMEL_SSC is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HP_ILO is not set
+# CONFIG_PCH_PHUB is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_CB710_CORE is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+
+#
+# Altera FPGA firmware download module
+#
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
@@ -479,7 +554,6 @@ CONFIG_SCSI_DMA=y
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_SCAN_ASYNC is not set
-CONFIG_SCSI_WAIT_SCAN=m
#
# SCSI Transports
@@ -520,6 +594,7 @@ CONFIG_ATA_BMDMA=y
# SATA SFF controllers with BMDMA
#
# CONFIG_ATA_PIIX is not set
+# CONFIG_SATA_HIGHBANK is not set
# CONFIG_SATA_MV is not set
# CONFIG_SATA_NV is not set
# CONFIG_SATA_PROMISE is not set
@@ -535,7 +610,6 @@ CONFIG_ATA_BMDMA=y
#
# CONFIG_PATA_ALI is not set
# CONFIG_PATA_AMD is not set
-# CONFIG_PATA_ARASAN_CF is not set
# CONFIG_PATA_ARTOP is not set
# CONFIG_PATA_ATIIXP is not set
# CONFIG_PATA_ATP867X is not set
@@ -610,8 +684,6 @@ CONFIG_INPUT_ADBHID=y
# CONFIG_ANSLCD is not set
# CONFIG_PMAC_RACKMETER is not set
# CONFIG_NETDEVICES is not set
-# CONFIG_ISDN is not set
-# CONFIG_PHONE is not set
#
# Input device support
@@ -620,6 +692,7 @@ 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
@@ -651,11 +724,13 @@ CONFIG_SERIO=y
# CONFIG_SERIO_XILINX_XPS_PS2 is not set
# CONFIG_SERIO_ALTERA_PS2 is not set
# CONFIG_SERIO_PS2MULT is not set
+# CONFIG_SERIO_ARC_PS2 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
@@ -667,6 +742,8 @@ CONFIG_UNIX98_PTYS=y
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set
# CONFIG_N_GSM is not set
+# CONFIG_TRACE_SINK is not set
+# CONFIG_PPC_EPAPR_HV_BYTECHAN is not set
# CONFIG_DEVKMEM is not set
#
@@ -685,12 +762,15 @@ CONFIG_SERIAL_PMACZILOG=y
CONFIG_SERIAL_PMACZILOG_TTYS=y
CONFIG_SERIAL_PMACZILOG_CONSOLE=y
# CONFIG_SERIAL_JSM 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_PCH_UART is not set
+# CONFIG_SERIAL_XILINX_PS_UART is not set
+# CONFIG_SERIAL_ARC is not set
+# CONFIG_SERIAL_RP2 is not set
# CONFIG_TTY_PRINTK is not set
-# CONFIG_BRIQ_PANEL is not set
# CONFIG_HVC_RTAS is not set
# CONFIG_HVC_UDBG is not set
# CONFIG_IPMI_HANDLER is not set
@@ -701,9 +781,10 @@ CONFIG_SERIAL_PMACZILOG_CONSOLE=y
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
CONFIG_DEVPORT=y
-# CONFIG_RAMOOPS 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
@@ -713,10 +794,22 @@ CONFIG_DEVPORT=y
#
# 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_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIO_DEVRES=y
# CONFIG_GPIOLIB is not set
# 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
@@ -726,7 +819,29 @@ CONFIG_SSB_POSSIBLE=y
# Sonics Silicon Backplane
#
# CONFIG_SSB is not set
-# CONFIG_MFD_SUPPORT 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_SM501 is not set
+# CONFIG_MFD_RTSX_PCI is not set
+# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_LPC_SCH is not set
+# CONFIG_LPC_ICH is not set
+# CONFIG_MFD_RDC321X is not set
+# CONFIG_MFD_JANZ_CMODIO is not set
+# CONFIG_MFD_VX855 is not set
+# CONFIG_MFD_SYSCON is not set
# CONFIG_REGULATOR is not set
# CONFIG_MEDIA_SUPPORT is not set
@@ -736,37 +851,48 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_AGP is not set
# CONFIG_VGA_ARB is not set
# CONFIG_DRM is not set
-# CONFIG_STUB_POULSBO is not set
# CONFIG_VGASTATE is not set
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+# CONFIG_OF_DISPLAY_TIMING is not set
+# CONFIG_OF_VIDEOMODE is not set
# CONFIG_FB is not set
+# CONFIG_EXYNOS_VIDEO is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
#
-# Display device support
-#
-# CONFIG_DISPLAY_SUPPORT is not set
-
-#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_VGACON_SOFT_SCROLLBACK is not set
CONFIG_DUMMY_CONSOLE=y
# CONFIG_SOUND is not set
-# CONFIG_HID_SUPPORT is not set
+
+#
+# HID support
+#
+CONFIG_HID=y
+# CONFIG_HIDRAW is not set
+# CONFIG_UHID is not set
+CONFIG_HID_GENERIC=y
+
+#
+# Special HID drivers
+#
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB_ARCH_HAS_XHCI=y
# CONFIG_USB_SUPPORT is not set
# CONFIG_UWB is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
-# CONFIG_NFC_DEVICES is not set
# CONFIG_ACCESSIBILITY is not set
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_SYSTOHC=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set
@@ -799,17 +925,60 @@ CONFIG_RTC_DRV_M48T59=y
# CONFIG_RTC_DRV_BQ4802 is not set
# CONFIG_RTC_DRV_RP5C01 is not set
# CONFIG_RTC_DRV_V3020 is not set
+# CONFIG_RTC_DRV_DS2404 is not set
#
# on-CPU RTC drivers
#
# CONFIG_RTC_DRV_GENERIC is not set
+# CONFIG_RTC_DRV_SNVS is not set
+
+#
+# HID Sensor RTC drivers
+#
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
# CONFIG_UIO is not set
+
+#
+# Virtio drivers
+#
+# CONFIG_VIRTIO_PCI is not set
+# CONFIG_VIRTIO_MMIO is not set
+
+#
+# Microsoft Hyper-V guest support
+#
# CONFIG_STAGING is not set
#
+# Hardware Spinlock drivers
+#
+CONFIG_I8253_LOCK=y
+CONFIG_CLKBLD_I8253=y
+# 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_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_VME_BUS is not set
+# CONFIG_PWM is not set
+CONFIG_IRQCHIP=y
+# CONFIG_IPACK_BUS is not set
+
+#
# File systems
#
# CONFIG_EXT2_FS is not set
@@ -820,7 +989,7 @@ CONFIG_RTC_DRV_M48T59=y
# CONFIG_XFS_FS is not set
# CONFIG_BTRFS_FS is not set
# CONFIG_NILFS2_FS is not set
-CONFIG_FS_POSIX_ACL=y
+# CONFIG_FS_POSIX_ACL is not set
CONFIG_EXPORTFS=y
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
@@ -860,17 +1029,11 @@ CONFIG_PROC_SYSCTL=y
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
-
-#
-# Partition Types
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MAC_PARTITION=y
-CONFIG_MSDOS_PARTITION=y
# CONFIG_NLS is not set
# CONFIG_BINARY_PRINTF is not set
@@ -878,22 +1041,35 @@ CONFIG_MSDOS_PARTITION=y
# Library routines
#
CONFIG_BITREVERSE=y
-CONFIG_GENERIC_FIND_LAST_BIT=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 is not set
# 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 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
#
# Kernel hacking
@@ -905,32 +1081,87 @@ CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
CONFIG_FRAME_WARN=1024
# CONFIG_MAGIC_SYSRQ is not set
# 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 is not set
-# CONFIG_HARDLOCKUP_DETECTOR is not set
-# CONFIG_SPARSE_RCU_POINTER 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_HIGHMEM is not set
CONFIG_DEBUG_BUGVERBOSE=y
+# 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_SYSCTL_SYSCALL_CHECK 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
+
+#
+# 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_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_PPC_DISABLE_WERROR is not set
CONFIG_PPC_WERROR=y
CONFIG_PRINT_STACK_DEPTH=64
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_CODE_PATCHING_SELFTEST is not set
+# CONFIG_FTR_FIXUP_SELFTEST is not set
+# CONFIG_MSI_BITMAP_SELFTEST is not set
+# CONFIG_XMON is not set
+# CONFIG_BDI_SWITCH is not set
CONFIG_BOOTX_TEXT=y
# CONFIG_PPC_EARLY_DEBUG is not set
+CONFIG_STRICT_DEVMEM=y
#
# Security options
@@ -946,8 +1177,11 @@ 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
@@ -983,6 +1217,7 @@ CONFIG_CRYPTO=y
# 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
@@ -992,6 +1227,7 @@ CONFIG_CRYPTO=y
# CONFIG_CRYPTO_RMD256 is not set
# CONFIG_CRYPTO_RMD320 is not set
# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA1_PPC is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_TGR192 is not set
@@ -1000,7 +1236,7 @@ CONFIG_CRYPTO=y
#
# Ciphers
#
-# CONFIG_CRYPTO_AES is not set
+CONFIG_CRYPTO_AES=y
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_BLOWFISH is not set
@@ -1030,10 +1266,5 @@ CONFIG_CRYPTO=y
# CONFIG_CRYPTO_USER_API_HASH is not set
# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
# CONFIG_CRYPTO_HW is not set
-
-#
-# OCF Configuration
-#
-# CONFIG_OCF_OCF is not set
# CONFIG_PPC_CLOCK is not set
# CONFIG_VIRTUALIZATION is not set
diff --git a/target/ppc64/kernel.config b/target/ppc64/kernel.config
index 64152ccf6..ac15f186a 100644
--- a/target/ppc64/kernel.config
+++ b/target/ppc64/kernel.config
@@ -1,7 +1,6 @@
#
-# Automatically generated make config: don't edit
-# Linux/powerpc 2.6.39 Kernel Configuration
-# Wed Aug 24 13:58:26 2011
+# Automatically generated file; DO NOT EDIT.
+# Linux/powerpc 3.9.11 Kernel Configuration
#
CONFIG_PPC64=y
@@ -10,28 +9,31 @@ CONFIG_PPC64=y
#
CONFIG_PPC_BOOK3S_64=y
# CONFIG_PPC_BOOK3E_64 is not set
+CONFIG_GENERIC_CPU=y
+# CONFIG_CELL_CPU is not set
+# CONFIG_POWER4_CPU is not set
+# CONFIG_POWER5_CPU is not set
+# CONFIG_POWER6_CPU is not set
+# CONFIG_POWER7_CPU is not set
CONFIG_PPC_BOOK3S=y
-# CONFIG_POWER4_ONLY is not set
CONFIG_POWER3=y
CONFIG_POWER4=y
# CONFIG_TUNE_CELL is not set
CONFIG_PPC_FPU=y
CONFIG_ALTIVEC=y
# CONFIG_VSX is not set
+# CONFIG_PPC_ICSWX is not set
CONFIG_PPC_STD_MMU=y
CONFIG_PPC_STD_MMU_64=y
# CONFIG_PPC_MM_SLICES is not set
-CONFIG_VIRT_CPU_ACCOUNTING=y
CONFIG_PPC_HAVE_PMU_SUPPORT=y
# CONFIG_SMP is not set
+# CONFIG_PPC_DOORBELL is not set
CONFIG_64BIT=y
CONFIG_WORD_SIZE=64
CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
CONFIG_ARCH_DMA_ADDR_T_64BIT=y
CONFIG_MMU=y
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_GENERIC_TIME_VSYSCALL=y
-CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_HAVE_SETUP_PER_CPU_AREA=y
CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
CONFIG_NR_IRQS=512
@@ -43,9 +45,6 @@ CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_ARCH_HAS_ILOG2_U32=y
CONFIG_ARCH_HAS_ILOG2_U64=y
CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_FIND_NEXT_BIT=y
-CONFIG_GENERIC_FIND_BIT_LE=y
-CONFIG_ARCH_NO_VIRT_TO_BUS=y
CONFIG_PPC=y
CONFIG_EARLY_PRINTK=y
CONFIG_COMPAT=y
@@ -57,6 +56,7 @@ CONFIG_PPC_OF=y
CONFIG_GENERIC_TBSYNC=y
CONFIG_AUDIT_ARCH=y
CONFIG_GENERIC_BUG=y
+# CONFIG_EPAPR_BOOT is not set
# CONFIG_DEFAULT_UIMAGE is not set
CONFIG_ARCH_HIBERNATION_POSSIBLE=y
CONFIG_ARCH_SUSPEND_POSSIBLE=y
@@ -64,27 +64,25 @@ CONFIG_ARCH_SUSPEND_POSSIBLE=y
# CONFIG_PPC_DCR_MMIO is not set
# CONFIG_PPC_OF_PLATFORM_PCI is not set
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
-CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
#
# General setup
#
-CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_DEFAULT_HOSTNAME="openadk"
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
-# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_FHANDLE is not set
-# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
CONFIG_HAVE_GENERIC_HARDIRQS=y
@@ -92,23 +90,46 @@ CONFIG_HAVE_GENERIC_HARDIRQS=y
# IRQ subsystem
#
CONFIG_GENERIC_HARDIRQS=y
-CONFIG_HAVE_SPARSE_IRQ=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
-# CONFIG_SPARSE_IRQ is not set
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_GENERIC_TIME_VSYSCALL_OLD=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+
+#
+# Timers subsystem
+#
+# CONFIG_NO_HZ is not set
+# CONFIG_HIGH_RES_TIMERS is not set
+
+#
+# CPU/Task time and stats accounting
+#
+CONFIG_VIRT_CPU_ACCOUNTING=y
+# CONFIG_TICK_CPU_ACCOUNTING is not set
+CONFIG_VIRT_CPU_ACCOUNTING_NATIVE=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_TRACE 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=15
# 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
@@ -118,6 +139,7 @@ CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
CONFIG_EXPERT=y
CONFIG_SYSCTL_SYSCALL=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
# CONFIG_KALLSYMS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
@@ -138,7 +160,6 @@ CONFIG_HAVE_PERF_EVENTS=y
# Kernel Performance Events And Counters
#
# CONFIG_PERF_EVENTS is not set
-# CONFIG_PERF_COUNTERS is not set
# CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_PCI_QUIRKS is not set
# CONFIG_COMPAT_BRK is not set
@@ -148,15 +169,30 @@ CONFIG_SLAB=y
# 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_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_ARCH_USE_BUILTIN_BSWAP=y
CONFIG_HAVE_SYSCALL_WRAPPERS=y
CONFIG_HAVE_IOREMAP_PROT=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
+CONFIG_HAVE_VIRT_CPU_ACCOUNTING=y
+CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
+CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_OLD_SIGSUSPEND=y
+CONFIG_COMPAT_OLD_SIGACTION=y
#
# GCOV-based kernel profiling
@@ -171,9 +207,19 @@ 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_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 is not set
+CONFIG_MAC_PARTITION=y
+CONFIG_MSDOS_PARTITION=y
+CONFIG_EFI_PARTITION=y
CONFIG_BLOCK_COMPAT=y
#
@@ -185,43 +231,24 @@ CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
-# CONFIG_INLINE_SPIN_TRYLOCK is not set
-# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK is not set
-# CONFIG_INLINE_SPIN_LOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
-CONFIG_INLINE_SPIN_UNLOCK=y
-# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_READ_TRYLOCK is not set
-# CONFIG_INLINE_READ_LOCK is not set
-# CONFIG_INLINE_READ_LOCK_BH is not set
-# CONFIG_INLINE_READ_LOCK_IRQ is not set
-# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
CONFIG_INLINE_READ_UNLOCK=y
-# CONFIG_INLINE_READ_UNLOCK_BH is not set
CONFIG_INLINE_READ_UNLOCK_IRQ=y
-# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_WRITE_TRYLOCK is not set
-# CONFIG_INLINE_WRITE_LOCK is not set
-# CONFIG_INLINE_WRITE_LOCK_BH is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
CONFIG_INLINE_WRITE_UNLOCK=y
-# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
-# CONFIG_MUTEX_SPIN_ON_OWNER is not set
CONFIG_FREEZER=y
CONFIG_PPC_MSI_BITMAP=y
+# CONFIG_PPC_XICS is not set
+# CONFIG_PPC_ICP_NATIVE is not set
+# CONFIG_PPC_ICP_HV is not set
+# CONFIG_PPC_ICS_RTAS is not set
+# CONFIG_GE_FPGA is not set
#
# Platform support
#
+# CONFIG_PPC_POWERNV is not set
# CONFIG_PPC_PSERIES is not set
-# CONFIG_PPC_ISERIES is not set
CONFIG_PPC_PMAC=y
CONFIG_PPC_PMAC64=y
# CONFIG_PPC_MAPLE is not set
@@ -233,12 +260,16 @@ CONFIG_PPC_PMAC64=y
# CONFIG_PPC_CELLEB is not set
# CONFIG_PPC_CELL_QPACE is not set
# CONFIG_PQ2ADS is not set
+# CONFIG_PPC_WSP is not set
# CONFIG_KVM_GUEST is not set
+# CONFIG_EPAPR_PARAVIRT is not set
CONFIG_PPC_NATIVE=y
CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
# CONFIG_IPIC is not set
CONFIG_MPIC=y
+# CONFIG_PPC_EPAPR_HV_PIC is not set
# CONFIG_MPIC_WEIRD is not set
+# CONFIG_MPIC_MSGR is not set
# CONFIG_PPC_I8259 is not set
CONFIG_U3_DART=y
# CONFIG_PPC_RTAS is not set
@@ -246,18 +277,24 @@ CONFIG_U3_DART=y
CONFIG_MPIC_U3_HT_IRQS=y
# CONFIG_PPC_MPC106 is not set
CONFIG_PPC_970_NAP=y
-# CONFIG_PPC_INDIRECT_IO is not set
-# CONFIG_GENERIC_IOMAP is not set
+# CONFIG_PPC_P7_NAP is not set
+
+#
+# CPU Frequency scaling
+#
# CONFIG_CPU_FREQ is not set
+
+#
+# CPUIdle driver
+#
+# CONFIG_CPU_IDLE is not set
+# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set
# CONFIG_FSL_ULI1575 is not set
# CONFIG_SIMPLE_GPIO is not set
#
# Kernel options
#
-# CONFIG_NO_HZ is not set
-# CONFIG_HIGH_RES_TIMERS is not set
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
@@ -271,6 +308,7 @@ CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y
# CONFIG_HAVE_AOUT is not set
# CONFIG_BINFMT_MISC is not set
+CONFIG_COREDUMP=y
CONFIG_IOMMU_HELPER=y
# CONFIG_SWIOTLB is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
@@ -283,7 +321,6 @@ CONFIG_MAX_ACTIVE_REGIONS=256
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
-CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_SYS_SUPPORTS_HUGETLBFS=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
@@ -292,6 +329,8 @@ CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_COMPACTION is not set
@@ -301,11 +340,14 @@ CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
# 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_PPC_HAS_HASH_64K is not set
CONFIG_PPC_4K_PAGES=y
# CONFIG_PPC_64K_PAGES is not set
CONFIG_FORCE_MAX_ZONEORDER=13
+# CONFIG_PPC_DENORMALISATION is not set
CONFIG_CMDLINE_BOOL=y
CONFIG_CMDLINE="console=ttyS0,9600 console=tty0"
CONFIG_EXTRA_TARGETS=""
@@ -313,6 +355,8 @@ CONFIG_ARCH_WANTS_FREEZER_CONTROL=y
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
@@ -333,12 +377,17 @@ CONFIG_PCI_SYSCALL=y
# CONFIG_PCIEPORTBUS is not set
CONFIG_ARCH_SUPPORTS_MSI=y
CONFIG_PCI_MSI=y
+# CONFIG_PCI_DEBUG is not set
+# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
# CONFIG_PCI_STUB is not set
# CONFIG_PCI_IOV is not set
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_PASID is not set
# CONFIG_PCCARD is not set
# CONFIG_HOTPLUG_PCI is not set
# CONFIG_HAS_RAPIDIO is not set
# CONFIG_RAPIDIO is not set
+# CONFIG_NONSTATIC_KERNEL is not set
# CONFIG_RELOCATABLE is not set
CONFIG_PAGE_OFFSET=0xc000000000000000
CONFIG_KERNEL_START=0xc000000000000000
@@ -349,7 +398,10 @@ 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
@@ -391,13 +443,15 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER 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
@@ -420,6 +474,8 @@ CONFIG_WIRELESS=y
# 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
@@ -434,7 +490,15 @@ 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
+
+#
+# Bus devices
+#
# CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set
CONFIG_DTC=y
@@ -444,17 +508,44 @@ 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_DYNAMIC=y
CONFIG_OF_ADDRESS=y
CONFIG_OF_IRQ=y
CONFIG_OF_DEVICE=y
CONFIG_OF_PCI=y
+CONFIG_OF_PCI_IRQ=y
# CONFIG_PARPORT is not set
# CONFIG_BLK_DEV is not set
+
+#
+# Misc devices
+#
# CONFIG_SENSORS_LIS3LV02D is not set
-# CONFIG_MISC_DEVICES is not set
+# CONFIG_PHANTOM is not set
+# CONFIG_INTEL_MID_PTI is not set
+# CONFIG_SGI_IOC4 is not set
+# CONFIG_TIFM_CORE is not set
+# CONFIG_ATMEL_SSC is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HP_ILO is not set
+# CONFIG_PCH_PHUB is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_CB710_CORE is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+
+#
+# Altera FPGA firmware download module
+#
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
@@ -484,8 +575,6 @@ CONFIG_PMAC_SMU=y
# CONFIG_WINDFARM is not set
# CONFIG_PMAC_RACKMETER is not set
# CONFIG_NETDEVICES is not set
-# CONFIG_ISDN is not set
-# CONFIG_PHONE is not set
#
# Input device support
@@ -494,6 +583,7 @@ 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
@@ -525,14 +615,17 @@ CONFIG_SERIO=y
# CONFIG_SERIO_XILINX_XPS_PS2 is not set
# CONFIG_SERIO_ALTERA_PS2 is not set
# CONFIG_SERIO_PS2MULT is not set
+# CONFIG_SERIO_ARC_PS2 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
@@ -541,6 +634,8 @@ CONFIG_UNIX98_PTYS=y
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set
# CONFIG_N_GSM is not set
+# CONFIG_TRACE_SINK is not set
+# CONFIG_PPC_EPAPR_HV_BYTECHAN is not set
# CONFIG_DEVKMEM is not set
#
@@ -558,10 +653,14 @@ CONFIG_SERIAL_PMACZILOG=y
CONFIG_SERIAL_PMACZILOG_TTYS=y
CONFIG_SERIAL_PMACZILOG_CONSOLE=y
# CONFIG_SERIAL_JSM 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_PCH_UART is not set
+# CONFIG_SERIAL_XILINX_PS_UART is not set
+# CONFIG_SERIAL_ARC is not set
+# CONFIG_SERIAL_RP2 is not set
# CONFIG_TTY_PRINTK is not set
# CONFIG_HVC_UDBG is not set
# CONFIG_IPMI_HANDLER is not set
@@ -572,9 +671,10 @@ CONFIG_SERIAL_PMACZILOG_CONSOLE=y
# CONFIG_HANGCHECK_TIMER is not set
# CONFIG_TCG_TPM is not set
CONFIG_DEVPORT=y
-# CONFIG_RAMOOPS 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
@@ -584,10 +684,22 @@ CONFIG_DEVPORT=y
#
# 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_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIO_DEVRES=y
# CONFIG_GPIOLIB is not set
# 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
@@ -597,7 +709,29 @@ CONFIG_SSB_POSSIBLE=y
# Sonics Silicon Backplane
#
# CONFIG_SSB is not set
-# CONFIG_MFD_SUPPORT 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_SM501 is not set
+# CONFIG_MFD_RTSX_PCI is not set
+# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_LPC_SCH is not set
+# CONFIG_LPC_ICH is not set
+# CONFIG_MFD_RDC321X is not set
+# CONFIG_MFD_JANZ_CMODIO is not set
+# CONFIG_MFD_VX855 is not set
+# CONFIG_MFD_SYSCON is not set
# CONFIG_REGULATOR is not set
# CONFIG_MEDIA_SUPPORT is not set
@@ -607,9 +741,10 @@ CONFIG_SSB_POSSIBLE=y
# CONFIG_AGP is not set
# CONFIG_VGA_ARB is not set
# CONFIG_DRM is not set
-# CONFIG_STUB_POULSBO is not set
# CONFIG_VGASTATE is not set
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+# CONFIG_OF_DISPLAY_TIMING is not set
+# CONFIG_OF_VIDEOMODE is not set
CONFIG_FB=y
# CONFIG_FIRMWARE_EDID is not set
# CONFIG_FB_DDC is not set
@@ -643,6 +778,7 @@ CONFIG_FB_OF=y
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_NVIDIA is not set
# CONFIG_FB_RIVA is not set
+# CONFIG_FB_I740 is not set
# CONFIG_FB_MATROX is not set
# CONFIG_FB_RADEON is not set
# CONFIG_FB_ATY128 is not set
@@ -660,18 +796,16 @@ CONFIG_FB_OF=y
# CONFIG_FB_PM3 is not set
# CONFIG_FB_CARMINE is not set
# CONFIG_FB_IBM_GXT4500 is not set
+# CONFIG_FB_GOLDFISH is not set
# CONFIG_FB_VIRTUAL is not set
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX 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 is not set
#
-# Display device support
-#
-# CONFIG_DISPLAY_SUPPORT is not set
-
-#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
@@ -685,19 +819,33 @@ CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
# CONFIG_LOGO is not set
# CONFIG_SOUND is not set
-# CONFIG_HID_SUPPORT is not set
+
+#
+# HID support
+#
+CONFIG_HID=y
+# CONFIG_HIDRAW is not set
+# CONFIG_UHID is not set
+CONFIG_HID_GENERIC=y
+
+#
+# Special HID drivers
+#
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB_ARCH_HAS_XHCI=y
# CONFIG_USB_SUPPORT is not set
# CONFIG_UWB is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
-# CONFIG_NFC_DEVICES is not set
# CONFIG_ACCESSIBILITY is not set
# CONFIG_INFINIBAND is not set
# CONFIG_EDAC is not set
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_SYSTOHC=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set
@@ -730,17 +878,58 @@ CONFIG_RTC_DRV_M48T59=y
# CONFIG_RTC_DRV_BQ4802 is not set
# CONFIG_RTC_DRV_RP5C01 is not set
# CONFIG_RTC_DRV_V3020 is not set
+# CONFIG_RTC_DRV_DS2404 is not set
#
# on-CPU RTC drivers
#
# CONFIG_RTC_DRV_GENERIC is not set
+# CONFIG_RTC_DRV_SNVS is not set
+
+#
+# HID Sensor RTC drivers
+#
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
# CONFIG_UIO is not set
+
+#
+# Virtio drivers
+#
+# CONFIG_VIRTIO_PCI is not set
+# CONFIG_VIRTIO_MMIO is not set
+
+#
+# Microsoft Hyper-V guest support
+#
# CONFIG_STAGING is not set
#
+# 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_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_VME_BUS is not set
+# CONFIG_PWM is not set
+CONFIG_IRQCHIP=y
+# CONFIG_IPACK_BUS is not set
+
+#
# File systems
#
# CONFIG_EXT2_FS is not set
@@ -752,7 +941,7 @@ CONFIG_RTC_DRV_M48T59=y
# CONFIG_GFS2_FS is not set
# CONFIG_BTRFS_FS is not set
# CONFIG_NILFS2_FS is not set
-CONFIG_FS_POSIX_ACL=y
+# CONFIG_FS_POSIX_ACL is not set
CONFIG_EXPORTFS=y
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
@@ -792,18 +981,12 @@ CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_TMPFS_XATTR is not set
# CONFIG_HUGETLBFS 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
-
-#
-# Partition Types
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MAC_PARTITION=y
-CONFIG_MSDOS_PARTITION=y
# CONFIG_NLS is not set
# CONFIG_BINARY_PRINTF is not set
@@ -811,21 +994,34 @@ CONFIG_MSDOS_PARTITION=y
# Library routines
#
CONFIG_BITREVERSE=y
-CONFIG_GENERIC_FIND_LAST_BIT=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 is not set
# 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 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_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
# CONFIG_AVERAGE is not set
+# CONFIG_CORDIC is not set
+# CONFIG_DDR is not set
#
# Kernel hacking
@@ -837,32 +1033,85 @@ CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
CONFIG_FRAME_WARN=1024
# CONFIG_MAGIC_SYSRQ is not set
# 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 is not set
-# CONFIG_HARDLOCKUP_DETECTOR is not set
-# CONFIG_SPARSE_RCU_POINTER 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_BUGVERBOSE=y
+# 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_SYSCTL_SYSCALL_CHECK 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
+
+#
+# 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_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_PPC_DISABLE_WERROR is not set
CONFIG_PPC_WERROR=y
CONFIG_PRINT_STACK_DEPTH=64
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_CODE_PATCHING_SELFTEST is not set
+# CONFIG_FTR_FIXUP_SELFTEST is not set
+# CONFIG_MSI_BITMAP_SELFTEST is not set
+# CONFIG_XMON is not set
CONFIG_BOOTX_TEXT=y
# CONFIG_PPC_EARLY_DEBUG is not set
+CONFIG_STRICT_DEVMEM=y
#
# Security options
@@ -878,8 +1127,11 @@ 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
@@ -915,6 +1167,7 @@ CONFIG_CRYPTO=y
# 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
@@ -924,6 +1177,7 @@ CONFIG_CRYPTO=y
# CONFIG_CRYPTO_RMD256 is not set
# CONFIG_CRYPTO_RMD320 is not set
# CONFIG_CRYPTO_SHA1 is not set
+# CONFIG_CRYPTO_SHA1_PPC is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_TGR192 is not set
@@ -932,7 +1186,7 @@ CONFIG_CRYPTO=y
#
# Ciphers
#
-# CONFIG_CRYPTO_AES is not set
+CONFIG_CRYPTO_AES=y
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_ARC4 is not set
# CONFIG_CRYPTO_BLOWFISH is not set
@@ -962,10 +1216,5 @@ CONFIG_CRYPTO=y
# CONFIG_CRYPTO_USER_API_HASH is not set
# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
# CONFIG_CRYPTO_HW is not set
-
-#
-# OCF Configuration
-#
-# CONFIG_OCF_OCF is not set
# CONFIG_PPC_CLOCK is not set
# CONFIG_VIRTUALIZATION is not set
diff --git a/target/sparc64/kernel.config b/target/sparc64/kernel.config
index 5c6b6b7f9..bde642987 100644
--- a/target/sparc64/kernel.config
+++ b/target/sparc64/kernel.config
@@ -1,18 +1,13 @@
#
-# Automatically generated make config: don't edit
-# Linux/sparc 2.6.39 Kernel Configuration
-# Wed Aug 24 15:35:30 2011
+# Automatically generated file; DO NOT EDIT.
+# Linux/sparc 3.9.11 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_SPARC=y
# CONFIG_SPARC32 is not set
CONFIG_SPARC64=y
CONFIG_ARCH_DEFCONFIG="arch/sparc/configs/sparc64_defconfig"
-CONFIG_BITS=64
-CONFIG_GENERIC_CMOS_UPDATE=y
-CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_IOMMU_HELPER=y
-CONFIG_QUICKLIST=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_HAVE_LATENCYTOP_SUPPORT=y
@@ -23,29 +18,25 @@ CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
CONFIG_MMU=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_SG_DMA_LENGTH=y
-CONFIG_ARCH_NO_VIRT_TO_BUS=y
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
-CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
#
# General setup
#
-CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_INIT_ENV_ARG_LIMIT=32
CONFIG_CROSS_COMPILE=""
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_DEFAULT_HOSTNAME="openadk"
# CONFIG_SWAP is not set
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_POSIX_MQUEUE_SYSCTL=y
-# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_FHANDLE is not set
-# CONFIG_TASKSTATS is not set
# CONFIG_AUDIT is not set
CONFIG_HAVE_GENERIC_HARDIRQS=y
@@ -55,19 +46,38 @@ CONFIG_HAVE_GENERIC_HARDIRQS=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_SHOW=y
CONFIG_IRQ_PREFLOW_FASTEOI=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+
+#
+# Timers subsystem
+#
+# 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_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_TRACE 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=15
# 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
@@ -76,8 +86,10 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
CONFIG_SYSCTL=y
CONFIG_ANON_INODES=y
CONFIG_EXPERT=y
+CONFIG_HAVE_UID16=y
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
+CONFIG_SYSCTL_EXCEPTION_TRACE=y
# CONFIG_KALLSYMS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
@@ -99,7 +111,6 @@ CONFIG_PERF_USE_VMALLOC=y
# Kernel Performance Events And Counters
#
# CONFIG_PERF_EVENTS is not set
-# CONFIG_PERF_COUNTERS is not set
# CONFIG_VM_EVENT_COUNTERS is not set
# CONFIG_PCI_QUIRKS is not set
# CONFIG_COMPAT_BRK is not set
@@ -110,13 +121,25 @@ CONFIG_SLAB=y
CONFIG_HAVE_OPROFILE=y
# CONFIG_KPROBES is not set
# CONFIG_JUMP_LABEL is not set
+CONFIG_HAVE_64BIT_ALIGNED_ACCESS=y
CONFIG_HAVE_SYSCALL_WRAPPERS=y
CONFIG_HAVE_KPROBES=y
CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_NMI_WATCHDOG=y
CONFIG_HAVE_ARCH_TRACEHOOK=y
CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
CONFIG_HAVE_DMA_API_DEBUG=y
CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
+CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
+CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
+CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
+CONFIG_MODULES_USE_ELF_RELA=y
+CONFIG_ODD_RT_SIGACTION=y
+CONFIG_OLD_SIGSUSPEND=y
+CONFIG_COMPAT_OLD_SIGACTION=y
#
# GCOV-based kernel profiling
@@ -131,9 +154,19 @@ 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_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 is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_SUN_PARTITION=y
+CONFIG_EFI_PARTITION=y
CONFIG_BLOCK_COMPAT=y
#
@@ -145,35 +178,11 @@ CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"
-# CONFIG_INLINE_SPIN_TRYLOCK is not set
-# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK is not set
-# CONFIG_INLINE_SPIN_LOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
-CONFIG_INLINE_SPIN_UNLOCK=y
-# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_READ_TRYLOCK is not set
-# CONFIG_INLINE_READ_LOCK is not set
-# CONFIG_INLINE_READ_LOCK_BH is not set
-# CONFIG_INLINE_READ_LOCK_IRQ is not set
-# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
CONFIG_INLINE_READ_UNLOCK=y
-# CONFIG_INLINE_READ_UNLOCK_BH is not set
CONFIG_INLINE_READ_UNLOCK_IRQ=y
-# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_WRITE_TRYLOCK is not set
-# CONFIG_INLINE_WRITE_LOCK is not set
-# CONFIG_INLINE_WRITE_LOCK_BH is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
CONFIG_INLINE_WRITE_UNLOCK=y
-# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
-# CONFIG_MUTEX_SPIN_ON_OWNER is not set
# CONFIG_FREEZER is not set
#
@@ -187,21 +196,17 @@ CONFIG_HZ_250=y
CONFIG_HZ=250
# CONFIG_SCHED_HRTICK is not set
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
-CONFIG_GENERIC_FIND_NEXT_BIT=y
-CONFIG_GENERIC_FIND_BIT_LE=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_EARLYFB=y
-CONFIG_SPARC64_PAGE_SIZE_8KB=y
-# CONFIG_SPARC64_PAGE_SIZE_64KB is not set
# CONFIG_SECCOMP is not set
-# CONFIG_NO_HZ is not set
-# CONFIG_HIGH_RES_TIMERS is not set
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+
+#
+# CPU Frequency scaling
+#
# CONFIG_CPU_FREQ is not set
# CONFIG_US3_MC is not set
-CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_DEFAULT=y
@@ -213,15 +218,20 @@ CONFIG_SPARSEMEM_EXTREME=y
CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
# CONFIG_SPARSEMEM_VMEMMAP is not set
CONFIG_HAVE_MEMBLOCK=y
+CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
+CONFIG_NO_BOOTMEM=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=y
CONFIG_ZONE_DMA_FLAG=0
-CONFIG_NR_QUICK=1
# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+# CONFIG_TRANSPARENT_HUGEPAGE is not set
+CONFIG_CROSS_MEMORY_ATTACH=y
CONFIG_NEED_PER_CPU_KM=y
+# CONFIG_CLEANCACHE is not set
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
@@ -239,8 +249,12 @@ CONFIG_PCI_DOMAINS=y
CONFIG_PCI_SYSCALL=y
CONFIG_ARCH_SUPPORTS_MSI=y
# CONFIG_PCI_MSI is not set
+# CONFIG_PCI_DEBUG is not set
+# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
# CONFIG_PCI_STUB is not set
# CONFIG_PCI_IOV is not set
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_PASID is not set
# CONFIG_PCCARD is not set
CONFIG_SUN_OPENPROMFS=y
CONFIG_SPARC64_PCI=y
@@ -252,6 +266,7 @@ CONFIG_BINFMT_ELF=y
CONFIG_COMPAT_BINFMT_ELF=y
# CONFIG_HAVE_AOUT is not set
# CONFIG_BINFMT_MISC is not set
+CONFIG_COREDUMP=y
CONFIG_COMPAT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_NET=y
@@ -260,7 +275,10 @@ 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
@@ -295,7 +313,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_ATM is not set
# CONFIG_L2TP is not set
# CONFIG_BRIDGE is not set
-# CONFIG_NET_DSA is not set
+CONFIG_HAVE_NET_DSA=y
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
@@ -303,13 +321,15 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER 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
@@ -326,6 +346,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
# 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
@@ -340,7 +362,15 @@ 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
+
+#
+# Bus devices
+#
# CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set
CONFIG_OF=y
@@ -348,13 +378,41 @@ CONFIG_OF=y
#
# Device Tree and Open Firmware support
#
+# CONFIG_OF_SELFTEST is not set
CONFIG_OF_PROMTREE=y
CONFIG_OF_DEVICE=y
CONFIG_OF_NET=y
+CONFIG_OF_PCI=y
# CONFIG_PARPORT is not set
# CONFIG_BLK_DEV is not set
+
+#
+# Misc devices
+#
# CONFIG_SENSORS_LIS3LV02D is not set
-# CONFIG_MISC_DEVICES is not set
+# CONFIG_PHANTOM is not set
+# CONFIG_INTEL_MID_PTI is not set
+# CONFIG_SGI_IOC4 is not set
+# CONFIG_TIFM_CORE is not set
+# CONFIG_ATMEL_SSC is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+# CONFIG_HP_ILO is not set
+# CONFIG_PCH_PHUB is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_93CX6 is not set
+# CONFIG_CB710_CORE is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+
+#
+# Altera FPGA firmware download module
+#
CONFIG_HAVE_IDE=y
# CONFIG_IDE is not set
@@ -377,109 +435,171 @@ CONFIG_SCSI_MOD=y
# CONFIG_FIREWIRE_NOSY is not set
# CONFIG_I2O is not set
CONFIG_NETDEVICES=y
-# CONFIG_DUMMY is not set
+CONFIG_NET_CORE=y
# CONFIG_BONDING is not set
-# CONFIG_MACVLAN is not set
+# CONFIG_DUMMY is not set
# CONFIG_EQUALIZER is not set
+# CONFIG_MII is not set
+# CONFIG_NET_TEAM is not set
+# CONFIG_MACVLAN is not set
+# CONFIG_VXLAN is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_TUN is not set
# CONFIG_VETH is not set
# CONFIG_ARCNET is not set
-# CONFIG_MII is not set
-# CONFIG_PHYLIB is not set
-CONFIG_NET_ETHERNET=y
-CONFIG_SUNLANCE=y
-# CONFIG_HAPPYMEAL is not set
-# CONFIG_SUNBMAC is not set
-# CONFIG_SUNQE is not set
-# CONFIG_SUNGEM is not set
-# CONFIG_CASSINI is not set
+
+#
+# CAIF transport drivers
+#
+
+#
+# Distributed Switch Architecture drivers
+#
+# CONFIG_NET_DSA_MV88E6XXX is not set
+# CONFIG_NET_DSA_MV88E6060 is not set
+# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set
+# CONFIG_NET_DSA_MV88E6131 is not set
+# CONFIG_NET_DSA_MV88E6123_61_65 is not set
+CONFIG_ETHERNET=y
# CONFIG_NET_VENDOR_3COM is not set
-# CONFIG_ETHOC is not set
+CONFIG_NET_VENDOR_ADAPTEC=y
+# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_GRETH is not set
-# CONFIG_DNET is not set
-# CONFIG_NET_TULIP is not set
-# CONFIG_HP100 is not set
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-# CONFIG_NET_PCI is not set
-# CONFIG_B44 is not set
-# CONFIG_KS8851_MLL is not set
-# CONFIG_ATL2 is not set
-CONFIG_NETDEV_1000=y
+CONFIG_NET_VENDOR_ALTEON=y
# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-# CONFIG_E1000 is not set
-# CONFIG_E1000E is not set
-# CONFIG_IP1000 is not set
-# CONFIG_IGB is not set
-# CONFIG_IGBVF is not set
-# CONFIG_MYRI_SBUS is not set
-# CONFIG_NS83820 is not set
-# CONFIG_HAMACHI is not set
-# CONFIG_YELLOWFIN is not set
-# CONFIG_R8169 is not set
-# CONFIG_SIS190 is not set
-# CONFIG_SKGE is not set
-# CONFIG_SKY2 is not set
-# CONFIG_VIA_VELOCITY is not set
-# CONFIG_TIGON3 is not set
-# CONFIG_BNX2 is not set
-# CONFIG_CNIC is not set
-# CONFIG_QLA3XXX is not set
+CONFIG_NET_VENDOR_AMD=y
+# CONFIG_AMD8111_ETH is not set
+# CONFIG_PCNET32 is not set
+CONFIG_SUNLANCE=y
+CONFIG_NET_VENDOR_ATHEROS=y
+# CONFIG_ATL2 is not set
# CONFIG_ATL1 is not set
# CONFIG_ATL1E is not set
# CONFIG_ATL1C is not set
-# CONFIG_JME is not set
-# CONFIG_STMMAC_ETH is not set
-# CONFIG_PCH_GBE is not set
-CONFIG_NETDEV_10000=y
+CONFIG_NET_CADENCE=y
+# CONFIG_ARM_AT91_ETHER is not set
+# CONFIG_MACB is not set
+CONFIG_NET_VENDOR_BROADCOM=y
+# CONFIG_B44 is not set
+# CONFIG_BNX2 is not set
+# CONFIG_CNIC is not set
+# CONFIG_TIGON3 is not set
+# CONFIG_BNX2X is not set
+CONFIG_NET_VENDOR_BROCADE=y
+# CONFIG_BNA is not set
+# CONFIG_NET_CALXEDA_XGMAC is not set
+CONFIG_NET_VENDOR_CHELSIO=y
# CONFIG_CHELSIO_T1 is not set
# CONFIG_CHELSIO_T3 is not set
# CONFIG_CHELSIO_T4 is not set
# CONFIG_CHELSIO_T4VF is not set
+CONFIG_NET_VENDOR_CISCO=y
# CONFIG_ENIC is not set
-# CONFIG_IXGBE is not set
-# CONFIG_IXGB is not set
+# CONFIG_DNET is not set
+CONFIG_NET_VENDOR_DEC=y
+# CONFIG_NET_TULIP is not set
+CONFIG_NET_VENDOR_DLINK=y
+# CONFIG_DL2K is not set
+# CONFIG_SUNDANCE is not set
+CONFIG_NET_VENDOR_EMULEX=y
+# CONFIG_BE2NET is not set
+CONFIG_NET_VENDOR_EXAR=y
# CONFIG_S2IO is not set
# CONFIG_VXGE is not set
-# CONFIG_MYRI10GE is not set
-# CONFIG_NETXEN_NIC is not set
-# CONFIG_NIU is not set
+CONFIG_NET_VENDOR_HP=y
+# CONFIG_HP100 is not set
+CONFIG_NET_VENDOR_INTEL=y
+# CONFIG_E100 is not set
+# CONFIG_E1000 is not set
+# CONFIG_E1000E is not set
+# CONFIG_IGB is not set
+# CONFIG_IGBVF is not set
+# CONFIG_IXGB is not set
+# CONFIG_IXGBE is not set
+CONFIG_NET_VENDOR_I825XX=y
+# CONFIG_IP1000 is not set
+# CONFIG_JME is not set
+CONFIG_NET_VENDOR_MARVELL=y
+# CONFIG_MVMDIO is not set
+# CONFIG_SKGE is not set
+# CONFIG_SKY2 is not set
+CONFIG_NET_VENDOR_MELLANOX=y
# CONFIG_MLX4_EN is not set
# CONFIG_MLX4_CORE is not set
-# CONFIG_TEHUTI is not set
-# CONFIG_BNX2X is not set
+CONFIG_NET_VENDOR_MICREL=y
+# CONFIG_KS8851_MLL is not set
+# CONFIG_KSZ884X_PCI is not set
+CONFIG_NET_VENDOR_MYRI=y
+# CONFIG_MYRI10GE is not set
+# CONFIG_FEALNX is not set
+CONFIG_NET_VENDOR_NATSEMI=y
+# CONFIG_NATSEMI is not set
+# CONFIG_NS83820 is not set
+CONFIG_NET_VENDOR_8390=y
+# CONFIG_NE2K_PCI is not set
+CONFIG_NET_VENDOR_NVIDIA=y
+# CONFIG_FORCEDETH is not set
+CONFIG_NET_VENDOR_OKI=y
+# CONFIG_PCH_GBE is not set
+# CONFIG_ETHOC is not set
+CONFIG_NET_PACKET_ENGINE=y
+# CONFIG_HAMACHI is not set
+# CONFIG_YELLOWFIN is not set
+CONFIG_NET_VENDOR_QLOGIC=y
+# CONFIG_QLA3XXX is not set
# CONFIG_QLCNIC is not set
# CONFIG_QLGE is not set
-# CONFIG_BNA is not set
+# CONFIG_NETXEN_NIC is not set
+CONFIG_NET_VENDOR_REALTEK=y
+# CONFIG_8139CP is not set
+# CONFIG_8139TOO is not set
+# CONFIG_R8169 is not set
+CONFIG_NET_VENDOR_RDC=y
+# CONFIG_R6040 is not set
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_NET_VENDOR_SILAN=y
+# CONFIG_SC92031 is not set
+CONFIG_NET_VENDOR_SIS=y
+# CONFIG_SIS900 is not set
+# CONFIG_SIS190 is not set
# CONFIG_SFC is not set
-# CONFIG_BE2NET is not set
-# CONFIG_TR is not set
+CONFIG_NET_VENDOR_SMSC=y
+# CONFIG_EPIC100 is not set
+# CONFIG_SMSC9420 is not set
+CONFIG_NET_VENDOR_STMICRO=y
+# CONFIG_STMMAC_ETH is not set
+CONFIG_NET_VENDOR_SUN=y
+# CONFIG_HAPPYMEAL is not set
+# CONFIG_SUNBMAC is not set
+# CONFIG_SUNQE is not set
+# CONFIG_SUNGEM is not set
+# CONFIG_CASSINI is not set
+# CONFIG_NIU is not set
+CONFIG_NET_VENDOR_TEHUTI=y
+# CONFIG_TEHUTI is not set
+CONFIG_NET_VENDOR_TI=y
+# CONFIG_TLAN is not set
+CONFIG_NET_VENDOR_VIA=y
+# CONFIG_VIA_RHINE is not set
+# CONFIG_VIA_VELOCITY is not set
+CONFIG_NET_VENDOR_WIZNET=y
+# CONFIG_WIZNET_W5100 is not set
+# CONFIG_WIZNET_W5300 is not set
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+# CONFIG_PHYLIB is not set
+# CONFIG_PPP is not set
+# CONFIG_SLIP is not set
# CONFIG_WLAN is not set
#
# Enable WiMAX (Networking options) to see the WiMAX drivers
#
# CONFIG_WAN is not set
-
-#
-# CAIF transport drivers
-#
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
# CONFIG_VMXNET3 is not set
# CONFIG_ISDN is not set
-# CONFIG_PHONE is not set
#
# Input device support
@@ -488,6 +608,7 @@ 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
@@ -516,6 +637,7 @@ CONFIG_INPUT=y
#
# Character devices
#
+CONFIG_TTY=y
CONFIG_VT=y
# CONFIG_CONSOLE_TRANSLATIONS is not set
CONFIG_VT_CONSOLE=y
@@ -527,6 +649,7 @@ CONFIG_UNIX98_PTYS=y
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set
# CONFIG_N_GSM is not set
+# CONFIG_TRACE_SINK is not set
# CONFIG_DEVKMEM is not set
#
@@ -547,11 +670,15 @@ CONFIG_SERIAL_SUNSU_CONSOLE=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
+# CONFIG_SERIAL_SCCNXP is not set
# CONFIG_SERIAL_TIMBERDALE is not set
# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
# CONFIG_SERIAL_ALTERA_UART is not set
# CONFIG_SERIAL_PCH_UART is not set
+# CONFIG_SERIAL_XILINX_PS_UART is not set
+# CONFIG_SERIAL_ARC is not set
+# CONFIG_SERIAL_RP2 is not set
# CONFIG_TTY_PRINTK is not set
# CONFIG_IPMI_HANDLER is not set
# CONFIG_HW_RANDOM is not set
@@ -560,9 +687,10 @@ CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_RAW_DRIVER is not set
# CONFIG_TCG_TPM is not set
CONFIG_DEVPORT=y
-# CONFIG_RAMOOPS 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
@@ -572,10 +700,22 @@ CONFIG_DEVPORT=y
#
# 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_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_GPIO_DEVRES=y
# CONFIG_GPIOLIB is not set
# 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
@@ -585,7 +725,29 @@ CONFIG_SSB_POSSIBLE=y
# Sonics Silicon Backplane
#
# CONFIG_SSB is not set
-# CONFIG_MFD_SUPPORT 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_SM501 is not set
+# CONFIG_MFD_RTSX_PCI is not set
+# CONFIG_MFD_TI_AM335X_TSCADC is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_LPC_SCH is not set
+# CONFIG_LPC_ICH is not set
+# CONFIG_MFD_RDC321X is not set
+# CONFIG_MFD_JANZ_CMODIO is not set
+# CONFIG_MFD_VX855 is not set
+# CONFIG_MFD_SYSCON is not set
# CONFIG_REGULATOR is not set
# CONFIG_MEDIA_SUPPORT is not set
@@ -594,34 +756,45 @@ CONFIG_SSB_POSSIBLE=y
#
# CONFIG_VGA_ARB is not set
# CONFIG_DRM is not set
-# CONFIG_STUB_POULSBO is not set
# CONFIG_VGASTATE is not set
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+# CONFIG_OF_DISPLAY_TIMING is not set
+# CONFIG_OF_VIDEOMODE is not set
# CONFIG_FB is not set
+# CONFIG_EXYNOS_VIDEO is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
#
-# Display device support
-#
-# CONFIG_DISPLAY_SUPPORT is not set
-
-#
# Console display driver support
#
CONFIG_DUMMY_CONSOLE=y
# CONFIG_SOUND is not set
-# CONFIG_HID_SUPPORT is not set
+
+#
+# HID support
+#
+CONFIG_HID=y
+# CONFIG_HIDRAW is not set
+# CONFIG_UHID is not set
+CONFIG_HID_GENERIC=y
+
+#
+# Special HID drivers
+#
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB_ARCH_HAS_XHCI=y
# CONFIG_USB_SUPPORT is not set
# CONFIG_UWB is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
-# CONFIG_NFC_DEVICES is not set
# CONFIG_ACCESSIBILITY is not set
# CONFIG_INFINIBAND is not set
CONFIG_RTC_LIB=y
CONFIG_RTC_CLASS=y
CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_SYSTOHC=y
CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
# CONFIG_RTC_DEBUG is not set
@@ -654,18 +827,58 @@ CONFIG_RTC_DRV_M48T59=y
CONFIG_RTC_DRV_BQ4802=y
# CONFIG_RTC_DRV_RP5C01 is not set
# CONFIG_RTC_DRV_V3020 is not set
+# CONFIG_RTC_DRV_DS2404 is not set
#
# on-CPU RTC drivers
#
CONFIG_RTC_DRV_SUN4V=y
CONFIG_RTC_DRV_STARFIRE=y
+# CONFIG_RTC_DRV_SNVS is not set
+
+#
+# HID Sensor RTC drivers
+#
# CONFIG_DMADEVICES is not set
# CONFIG_AUXDISPLAY is not set
# CONFIG_UIO is not set
+
+#
+# Virtio drivers
+#
+# CONFIG_VIRTIO_PCI is not set
+# CONFIG_VIRTIO_MMIO is not set
+
+#
+# Microsoft Hyper-V guest support
+#
# CONFIG_STAGING is not set
#
+# 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_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_VME_BUS is not set
+# CONFIG_PWM is not set
+# CONFIG_IPACK_BUS is not set
+
+#
# Misc Linux/SPARC drivers
#
CONFIG_SUN_OPENPROMIO=y
@@ -687,7 +900,7 @@ CONFIG_SUN_OPENPROMIO=y
# CONFIG_GFS2_FS is not set
# CONFIG_BTRFS_FS is not set
# CONFIG_NILFS2_FS is not set
-CONFIG_FS_POSIX_ACL=y
+# CONFIG_FS_POSIX_ACL is not set
CONFIG_EXPORTFS=y
CONFIG_FILE_LOCKING=y
CONFIG_FSNOTIFY=y
@@ -727,18 +940,12 @@ CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_TMPFS_XATTR is not set
# CONFIG_HUGETLBFS 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
-
-#
-# Partition Types
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MSDOS_PARTITION=y
-CONFIG_SUN_PARTITION=y
# CONFIG_NLS is not set
#
@@ -752,16 +959,61 @@ CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
CONFIG_FRAME_WARN=1024
# CONFIG_MAGIC_SYSRQ is not set
# 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 is not set
-# CONFIG_HARDLOCKUP_DETECTOR is not set
-# CONFIG_SPARSE_RCU_POINTER 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_HAVE_DEBUG_BUGVERBOSE=y
CONFIG_DEBUG_BUGVERBOSE=y
+# 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_SYSCTL_SYSCALL_CHECK 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_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_FUNCTION_GRAPH_FP_TEST=y
@@ -769,13 +1021,18 @@ CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=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_DEBUG_DCFLUSH is not set
#
# Security options
@@ -791,8 +1048,11 @@ 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
@@ -828,31 +1088,40 @@ CONFIG_CRYPTO=y
# Digest
#
# CONFIG_CRYPTO_CRC32C is not set
+# CONFIG_CRYPTO_CRC32C_SPARC64 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_MD5_SPARC64 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_SPARC64 is not set
# CONFIG_CRYPTO_SHA256 is not set
+# CONFIG_CRYPTO_SHA256_SPARC64 is not set
# CONFIG_CRYPTO_SHA512 is not set
+# CONFIG_CRYPTO_SHA512_SPARC64 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_WP512 is not set
#
# Ciphers
#
-# CONFIG_CRYPTO_AES is not set
+CONFIG_CRYPTO_AES=y
+# CONFIG_CRYPTO_AES_SPARC64 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_CAMELLIA_SPARC64 is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_DES is not set
+# CONFIG_CRYPTO_DES_SPARC64 is not set
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_SALSA20 is not set
@@ -875,29 +1144,37 @@ CONFIG_CRYPTO=y
# CONFIG_CRYPTO_USER_API_HASH is not set
# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
# CONFIG_CRYPTO_HW is not set
-
-#
-# OCF Configuration
-#
-# CONFIG_OCF_OCF is not set
# CONFIG_BINARY_PRINTF is not set
#
# Library routines
#
CONFIG_BITREVERSE=y
-CONFIG_GENERIC_FIND_LAST_BIT=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 is not set
# 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 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_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
# CONFIG_AVERAGE is not set
+# CONFIG_CORDIC is not set
+# CONFIG_DDR is not set
diff --git a/toolchain/binutils/patches/2.23.2/arm-whitespace.patch b/toolchain/binutils/patches/2.23.2/arm-whitespace.patch
new file mode 100644
index 000000000..0bc560166
--- /dev/null
+++ b/toolchain/binutils/patches/2.23.2/arm-whitespace.patch
@@ -0,0 +1,23 @@
+diff -Nur binutils-2.23.2.orig/gas/config/tc-arm.c binutils-2.23.2/gas/config/tc-arm.c
+--- binutils-2.23.2.orig/gas/config/tc-arm.c 2013-03-25 09:06:21.000000000 +0100
++++ binutils-2.23.2/gas/config/tc-arm.c 2013-09-24 13:26:32.000000000 +0200
+@@ -885,6 +885,9 @@
+ static inline int
+ skip_past_char (char ** str, char c)
+ {
++ /* PR gas/14987: Allow for whitespace before the expected character. */
++ skip_whitespace (*str);
++
+ if (**str == c)
+ {
+ (*str)++;
+@@ -5168,6 +5171,9 @@
+ return PARSE_OPERAND_SUCCESS;
+ }
+
++ /* PR gas/14887: Allow for whitespace after the opening bracket. */
++ skip_whitespace (p);
++
+ if ((reg = arm_reg_parse (&p, REG_TYPE_RN)) == FAIL)
+ {
+ inst.error = _(reg_expected_msgs[REG_TYPE_RN]);
diff --git a/toolchain/eglibc/Makefile b/toolchain/eglibc/Makefile
index 13a537c05..76b09237d 100644
--- a/toolchain/eglibc/Makefile
+++ b/toolchain/eglibc/Makefile
@@ -7,11 +7,6 @@ include Makefile.inc
include Makefile.multilib
include ${TOPDIR}/mk/buildhlp.mk
-# eglibc does not compile with Os
-TARGET_CFLAGS_LIBC:= $(subst Os,O2,$(TARGET_CFLAGS))
-ifneq ($(ADK_DEBUG),)
-TARGET_CFLAGS_LIBC+= -O2
-endif
# ssp partially supported
TARGET_CFLAGS_LIBC:= $(filter-out -fstack-protector,$(TARGET_CFLAGS_LIBC))
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile
index 2bc954347..5d00be19b 100644
--- a/toolchain/gcc/Makefile
+++ b/toolchain/gcc/Makefile
@@ -62,8 +62,12 @@ GCC_CONFOPTS+= --enable-tls
endif
ifeq ($(ARCH),powerpc)
+ifeq ($(ADK_TARGET_LIBC),musl)
GCC_CONFOPTS+= --disable-target-optspace --with-long-double-64 --enable-secureplt
else
+GCC_CONFOPTS+= --disable-target-optspace --with-long-double-128 --enable-secureplt
+endif
+else
GCC_CONFOPTS+= --enable-target-optspace
endif
diff --git a/toolchain/gcc/patches/4.7.3/musl-cross.patch b/toolchain/gcc/patches/4.7.3/musl-cross.patch
index bbba746b0..453ba9aec 100644
--- a/toolchain/gcc/patches/4.7.3/musl-cross.patch
+++ b/toolchain/gcc/patches/4.7.3/musl-cross.patch
@@ -386,37 +386,9 @@ diff -Nur gcc-4.7.3.orig/gcc/config/rs6000/linux64.h gcc-4.7.3/gcc/config/rs6000
#define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
-diff -Nur gcc-4.7.3.orig/gcc/config/rs6000/secureplt.h gcc-4.7.3/gcc/config/rs6000/secureplt.h
---- gcc-4.7.3.orig/gcc/config/rs6000/secureplt.h 2007-08-02 12:49:31.000000000 +0200
-+++ gcc-4.7.3/gcc/config/rs6000/secureplt.h 2013-09-16 15:39:43.000000000 +0200
-@@ -18,3 +18,4 @@
- <http://www.gnu.org/licenses/>. */
-
- #define CC1_SECURE_PLT_DEFAULT_SPEC "-msecure-plt"
-+#define LINK_SECURE_PLT_DEFAULT_SPEC "--secure-plt"
diff -Nur gcc-4.7.3.orig/gcc/config/rs6000/sysv4.h gcc-4.7.3/gcc/config/rs6000/sysv4.h
--- gcc-4.7.3.orig/gcc/config/rs6000/sysv4.h 2012-04-30 19:39:01.000000000 +0200
+++ gcc-4.7.3/gcc/config/rs6000/sysv4.h 2013-09-16 15:39:43.000000000 +0200
-@@ -566,6 +566,9 @@
- #ifndef CC1_SECURE_PLT_DEFAULT_SPEC
- #define CC1_SECURE_PLT_DEFAULT_SPEC ""
- #endif
-+#ifndef LINK_SECURE_PLT_DEFAULT_SPEC
-+#define LINK_SECURE_PLT_DEFAULT_SPEC ""
-+#endif
-
- /* Pass -G xxx to the compiler and set correct endian mode. */
- #define CC1_SPEC "%{G*} %(cc1_cpu) \
-@@ -626,7 +629,8 @@
- %{mlittle: --oformat elf32-powerpcle } %{mlittle-endian: --oformat elf32-powerpcle } \
- %{!mlittle: %{!mlittle-endian: %{!mbig: %{!mbig-endian: \
- %{mcall-i960-old: --oformat elf32-powerpcle} \
-- }}}}"
-+ }}}} \
-+%{!mbss-plt: %{!msecure-plt: %(link_secure_plt_default)}}"
-
- /* Any specific OS flags. */
- #define LINK_OS_SPEC "\
@@ -804,15 +808,18 @@
#define GLIBC_DYNAMIC_LINKER "/lib/ld.so.1"
@@ -439,14 +411,6 @@ diff -Nur gcc-4.7.3.orig/gcc/config/rs6000/sysv4.h gcc-4.7.3/gcc/config/rs6000/s
#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
%{rdynamic:-export-dynamic} \
-@@ -938,6 +945,7 @@
- { "cc1_endian_little", CC1_ENDIAN_LITTLE_SPEC }, \
- { "cc1_endian_default", CC1_ENDIAN_DEFAULT_SPEC }, \
- { "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \
-+ { "link_secure_plt_default", LINK_SECURE_PLT_DEFAULT_SPEC }, \
- { "cpp_os_ads", CPP_OS_ADS_SPEC }, \
- { "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \
- { "cpp_os_mvme", CPP_OS_MVME_SPEC }, \
diff -Nur gcc-4.7.3.orig/gcc/config.gcc gcc-4.7.3/gcc/config.gcc
--- gcc-4.7.3.orig/gcc/config.gcc 2013-03-06 23:54:11.000000000 +0100
+++ gcc-4.7.3/gcc/config.gcc 2013-09-16 15:39:43.000000000 +0200
diff --git a/toolchain/gcc/patches/4.7.3/musl-mips64.patch b/toolchain/gcc/patches/4.7.3/musl-mips64.patch
new file mode 100644
index 000000000..671ba9f28
--- /dev/null
+++ b/toolchain/gcc/patches/4.7.3/musl-mips64.patch
@@ -0,0 +1,14 @@
+diff -Nur gcc-4.7.3.orig/gcc/config/mips/linux64.h gcc-4.7.3/gcc/config/mips/linux64.h
+--- gcc-4.7.3.orig/gcc/config/mips/linux64.h 2011-07-19 20:00:27.000000000 +0200
++++ gcc-4.7.3/gcc/config/mips/linux64.h 2013-09-17 09:24:36.000000000 +0200
+@@ -28,6 +28,9 @@
+ #define GLIBC_DYNAMIC_LINKERN32 "/lib32/ld.so.1"
+ #define UCLIBC_DYNAMIC_LINKERN32 "/lib32/ld-uClibc.so.0"
+ #define BIONIC_DYNAMIC_LINKERN32 "/system/bin/linker32"
++#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-mips.so.1"
++#define MUSL_DYNAMIC_LINKERN32 "/lib/ld-musl-mips.so.1"
++#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-mips.so.1"
+ #define GNU_USER_DYNAMIC_LINKERN32 \
+ CHOOSE_DYNAMIC_LINKER (GLIBC_DYNAMIC_LINKERN32, UCLIBC_DYNAMIC_LINKERN32, \
+- BIONIC_DYNAMIC_LINKERN32)
++ BIONIC_DYNAMIC_LINKERN32, MUSL_DYNAMIC_LINKERN32)
diff --git a/toolchain/gcc/patches/4.7.3/musl-sparc.patch b/toolchain/gcc/patches/4.7.3/musl-sparc.patch
new file mode 100644
index 000000000..228b8522d
--- /dev/null
+++ b/toolchain/gcc/patches/4.7.3/musl-sparc.patch
@@ -0,0 +1,24 @@
+diff -Nur gcc-4.7.3.orig/gcc/config/sparc/linux64.h gcc-4.7.3/gcc/config/sparc/linux64.h
+--- gcc-4.7.3.orig/gcc/config/sparc/linux64.h 2011-11-12 02:05:07.000000000 +0100
++++ gcc-4.7.3/gcc/config/sparc/linux64.h 2013-09-19 11:37:50.000000000 +0200
+@@ -95,6 +95,9 @@
+
+ #define GLIBC_DYNAMIC_LINKER32 "/lib/ld-linux.so.2"
+ #define GLIBC_DYNAMIC_LINKER64 "/lib64/ld-linux.so.2"
++#define MUSL_DYNAMIC_LINKER32 "/lib/ld-musl-sparc.1"
++#define MUSL_DYNAMIC_LINKER64 "/lib/ld-musl-sparc.1"
++
+
+ #ifdef SPARC_BI_ARCH
+
+diff -Nur gcc-4.7.3.orig/gcc/config/sparc/linux.h gcc-4.7.3/gcc/config/sparc/linux.h
+--- gcc-4.7.3.orig/gcc/config/sparc/linux.h 2011-11-12 02:05:07.000000000 +0100
++++ gcc-4.7.3/gcc/config/sparc/linux.h 2013-09-19 11:37:12.000000000 +0200
+@@ -85,6 +85,7 @@
+ done. */
+
+ #define GLIBC_DYNAMIC_LINKER "/lib/ld-linux.so.2"
++#define MUSL_DYNAMIC_LINKER "/lib/ld-musl-sparc.1"
+
+ #undef LINK_SPEC
+ #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
diff --git a/toolchain/gcc/patches/4.7.3/ppc-uclibc-cmath.patch b/toolchain/gcc/patches/4.7.3/ppc-uclibc-cmath.patch
new file mode 100644
index 000000000..0e64e8d0e
--- /dev/null
+++ b/toolchain/gcc/patches/4.7.3/ppc-uclibc-cmath.patch
@@ -0,0 +1,217 @@
+diff -Nur gcc-4.7.3.orig/libstdc++-v3/include/tr1/cmath gcc-4.7.3/libstdc++-v3/include/tr1/cmath
+--- gcc-4.7.3.orig/libstdc++-v3/include/tr1/cmath 2011-11-14 00:51:42.000000000 +0100
++++ gcc-4.7.3/libstdc++-v3/include/tr1/cmath 2013-09-22 20:13:54.000000000 +0200
+@@ -159,143 +159,213 @@
+ // functions
+ using ::acosh;
+ using ::acoshf;
++#ifdef __LONG_DOUBLE_128__
+ using ::acoshl;
++#endif
+
+ using ::asinh;
+ using ::asinhf;
++#ifdef __LONG_DOUBLE_128__
+ using ::asinhl;
++#endif
+
+ using ::atanh;
+ using ::atanhf;
++#ifdef __LONG_DOUBLE_128__
+ using ::atanhl;
++#endif
+
+ using ::cbrt;
+ using ::cbrtf;
++#ifdef __LONG_DOUBLE_128__
+ using ::cbrtl;
++#endif
+
+ using ::copysign;
+ using ::copysignf;
++#ifdef __LONG_DOUBLE_128__
+ using ::copysignl;
++#endif
+
+ using ::erf;
+ using ::erff;
++#ifdef __LONG_DOUBLE_128__
+ using ::erfl;
++#endif
+
+ using ::erfc;
+ using ::erfcf;
++#ifdef __LONG_DOUBLE_128__
+ using ::erfcl;
++#endif
+
+ using ::exp2;
+ using ::exp2f;
++#ifdef __LONG_DOUBLE_128__
+ using ::exp2l;
++#endif
+
+ using ::expm1;
+ using ::expm1f;
++#ifdef __LONG_DOUBLE_128__
+ using ::expm1l;
++#endif
+
+ using ::fdim;
+ using ::fdimf;
++#ifdef __LONG_DOUBLE_128__
+ using ::fdiml;
++#endif
+
+ using ::fma;
+ using ::fmaf;
++#ifdef __LONG_DOUBLE_128__
+ using ::fmal;
++#endif
+
+ using ::fmax;
+ using ::fmaxf;
++#ifdef __LONG_DOUBLE_128__
+ using ::fmaxl;
++#endif
+
+ using ::fmin;
+ using ::fminf;
++#ifdef __LONG_DOUBLE_128__
+ using ::fminl;
++#endif
+
+ using ::hypot;
+ using ::hypotf;
++#ifdef __LONG_DOUBLE_128__
+ using ::hypotl;
++#endif
+
+ using ::ilogb;
+ using ::ilogbf;
++#ifdef __LONG_DOUBLE_128__
+ using ::ilogbl;
++#endif
+
+ using ::lgamma;
+ using ::lgammaf;
++#ifdef __LONG_DOUBLE_128__
+ using ::lgammal;
++#endif
+
+ using ::llrint;
+ using ::llrintf;
++#ifdef __LONG_DOUBLE_128__
+ using ::llrintl;
++#endif
+
+ using ::llround;
+ using ::llroundf;
++#ifdef __LONG_DOUBLE_128__
+ using ::llroundl;
++#endif
+
+ using ::log1p;
+ using ::log1pf;
++#ifdef __LONG_DOUBLE_128__
+ using ::log1pl;
++#endif
+
+ using ::log2;
+ using ::log2f;
++#ifdef __LONG_DOUBLE_128__
+ using ::log2l;
++#endif
+
+ using ::logb;
+ using ::logbf;
++#ifdef __LONG_DOUBLE_128__
+ using ::logbl;
++#endif
+
+ using ::lrint;
+ using ::lrintf;
++#ifdef __LONG_DOUBLE_128__
+ using ::lrintl;
++#endif
+
+ using ::lround;
+ using ::lroundf;
++#ifdef __LONG_DOUBLE_128__
+ using ::lroundl;
++#endif
+
+ using ::nan;
+ using ::nanf;
++#ifdef __LONG_DOUBLE_128__
+ using ::nanl;
++#endif
+
+ using ::nearbyint;
+ using ::nearbyintf;
++#ifdef __LONG_DOUBLE_128__
+ using ::nearbyintl;
++#endif
+
+ using ::nextafter;
+ using ::nextafterf;
++#ifdef __LONG_DOUBLE_128__
+ using ::nextafterl;
++#endif
+
+ using ::nexttoward;
+ using ::nexttowardf;
++#ifdef __LONG_DOUBLE_128__
+ using ::nexttowardl;
++#endif
+
+ using ::remainder;
+ using ::remainderf;
++#ifdef __LONG_DOUBLE_128__
+ using ::remainderl;
++#endif
+
+ using ::remquo;
+ using ::remquof;
++#ifdef __LONG_DOUBLE_128__
+ using ::remquol;
++#endif
+
+ using ::rint;
+ using ::rintf;
++#ifdef __LONG_DOUBLE_128__
+ using ::rintl;
++#endif
+
+ using ::round;
+ using ::roundf;
++#ifdef __LONG_DOUBLE_128__
+ using ::roundl;
++#endif
+
+ using ::scalbln;
+ using ::scalblnf;
++#ifdef __LONG_DOUBLE_128__
+ using ::scalblnl;
++#endif
+
+ using ::scalbn;
+ using ::scalbnf;
++#ifdef __LONG_DOUBLE_128__
+ using ::scalbnl;
++#endif
+
+ using ::tgamma;
+ using ::tgammaf;
++#ifdef __LONG_DOUBLE_128__
+ using ::tgammal;
++#endif
+
+ using ::trunc;
+ using ::truncf;
++#ifdef __LONG_DOUBLE_128__
+ using ::truncl;
++#endif
+
+ #endif
+
diff --git a/toolchain/musl/Makefile b/toolchain/musl/Makefile
index 3782e5672..2cce6bebc 100644
--- a/toolchain/musl/Makefile
+++ b/toolchain/musl/Makefile
@@ -28,6 +28,10 @@ $(WRKBUILD)/.compiled:
touch $@
$(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
+ $(MAKE) -C $(WRKBUILD) DESTDIR=$(STAGING_TARGET_DIR) install
+ touch $@
+
+$(WRKBUILD)/.fixup:
# reconfigure musl, otherwise linking with libgcc or libgcc_eh is disabled
$(MAKE) CFLAGS='$(TARGET_CFLAGS)' -C $(WRKBUILD) clean
(cd $(WRKBUILD); CC='$(TARGET_CC)' CROSS_COMPILE='$(TARGET_CROSS)' \
@@ -39,7 +43,4 @@ $(WRKBUILD)/.installed: $(WRKBUILD)/.compiled
$(MAKE) -C $(WRKBUILD) DESTDIR=$(STAGING_TARGET_DIR) install
touch $@
-$(WRKBUILD)/.fixup:
- touch $@
-
include ${TOPDIR}/mk/toolchain.mk
diff --git a/toolchain/musl/Makefile.inc b/toolchain/musl/Makefile.inc
index 83dc75168..37bd7a981 100644
--- a/toolchain/musl/Makefile.inc
+++ b/toolchain/musl/Makefile.inc
@@ -2,8 +2,8 @@
# material, please see the LICENCE file in the top-level directory.
PKG_NAME:= musl
-PKG_VERSION:= 0.9.13
+PKG_VERSION:= 0.9.14
PKG_RELEASE:= 1
-PKG_MD5SUM:= 6af97d6157a2f4ee7a17af2316389fd7
+PKG_MD5SUM:= bfb685695aa942e64c63170589e575b2
PKG_SITES:= http://www.musl-libc.org/releases/
DISTFILES:= $(PKG_NAME)-$(PKG_VERSION).tar.gz
diff --git a/toolchain/musl/patches/0.9.13/musl-git.patch b/toolchain/musl/patches/0.9.13/musl-git.patch
deleted file mode 100644
index a6a87390f..000000000
--- a/toolchain/musl/patches/0.9.13/musl-git.patch
+++ /dev/null
@@ -1,8837 +0,0 @@
-diff -Nur musl-0.9.13/.gitignore musl-git/.gitignore
---- musl-0.9.13/.gitignore 1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/.gitignore 2013-09-16 20:31:39.000000000 +0200
-@@ -0,0 +1,10 @@
-+*.o
-+*.lo
-+*.a
-+*.so
-+*.so.1
-+arch/*/bits/alltypes.h
-+config.mak
-+include/bits
-+tools/musl-gcc
-+lib/musl-gcc.specs
-diff -Nur musl-0.9.13/Makefile musl-git/Makefile
---- musl-0.9.13/Makefile 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/Makefile 2013-09-16 20:31:39.000000000 +0200
-@@ -157,7 +157,7 @@
- $(INSTALL) -D -m 644 $< $@
-
- $(DESTDIR)$(LDSO_PATHNAME): $(DESTDIR)$(libdir)/libc.so
-- $(INSTALL) -D -l $< $@ || true
-+ $(INSTALL) -D -l $(libdir)/libc.so $@ || true
-
- install-libs: $(ALL_LIBS:lib/%=$(DESTDIR)$(libdir)/%) $(if $(SHARED_LIBS),$(DESTDIR)$(LDSO_PATHNAME),)
-
-diff -Nur musl-0.9.13/arch/microblaze/bits/limits.h musl-git/arch/microblaze/bits/limits.h
---- musl-0.9.13/arch/microblaze/bits/limits.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/arch/microblaze/bits/limits.h 2013-09-16 20:31:39.000000000 +0200
-@@ -1,6 +1,5 @@
- #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
-
-diff -Nur musl-0.9.13/arch/microblaze/reloc.h musl-git/arch/microblaze/reloc.h
---- musl-0.9.13/arch/microblaze/reloc.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/arch/microblaze/reloc.h 2013-09-16 20:31:39.000000000 +0200
-@@ -49,7 +49,7 @@
- for (a+=c+1; *a; a++);
- for (a++; *a; a+=2) if (*a<20) t[*a] = a[1];
- base = (char *)t[AT_BASE];
-- if (!base) base = (char *)(t[AT_PHDR] & -4096);
-+ if (!base) base = (char *)(t[AT_PHDR] & -t[AT_PAGESZ]);
- for (a=dynv; *a; a+=2) if (*a<20) t[*a] = a[1];
- n = t[DT_RELASZ];
- for (a=(void *)(base+t[DT_RELA]); n; a+=3, n-=12)
-diff -Nur musl-0.9.13/arch/mips/bits/limits.h musl-git/arch/mips/bits/limits.h
---- musl-0.9.13/arch/mips/bits/limits.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/arch/mips/bits/limits.h 2013-09-16 20:31:39.000000000 +0200
-@@ -1,6 +1,5 @@
- #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
-
-diff -Nur musl-0.9.13/arch/mips/bits/msg.h musl-git/arch/mips/bits/msg.h
---- musl-0.9.13/arch/mips/bits/msg.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/arch/mips/bits/msg.h 2013-09-16 20:31:39.000000000 +0200
-@@ -1,12 +1,21 @@
- struct msqid_ds
- {
- struct ipc_perm msg_perm;
-+#if _MIPSEL || __MIPSEL || __MIPSEL__
- time_t msg_stime;
- int __unused1;
- time_t msg_rtime;
- int __unused2;
- time_t msg_ctime;
- int __unused3;
-+#else
-+ int __unused1;
-+ time_t msg_stime;
-+ int __unused2;
-+ time_t msg_rtime;
-+ int __unused3;
-+ time_t msg_ctime;
-+#endif
- unsigned long msg_cbytes;
- msgqnum_t msg_qnum;
- msglen_t msg_qbytes;
-diff -Nur musl-0.9.13/arch/mips/bits/shm.h musl-git/arch/mips/bits/shm.h
---- musl-0.9.13/arch/mips/bits/shm.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/arch/mips/bits/shm.h 2013-09-16 20:31:39.000000000 +0200
-@@ -5,11 +5,8 @@
- 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;
-diff -Nur musl-0.9.13/arch/mips/reloc.h musl-git/arch/mips/reloc.h
---- musl-0.9.13/arch/mips/reloc.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/arch/mips/reloc.h 2013-09-16 20:31:39.000000000 +0200
-@@ -51,7 +51,7 @@
- for (a+=c+1; *a; a++);
- for (a++; *a; a+=2) if (*a<20) t[*a] = a[1];
- base = (char *)t[AT_BASE];
-- if (!base) base = (char *)(t[AT_PHDR] & -4096);
-+ if (!base) base = (char *)(t[AT_PHDR] & -t[AT_PAGESZ]);
- for (a=dynv; *a; a+=2) if (*a-0x70000000UL<20) t[*a&31] = a[1];
- n = t[DT_MIPS_LOCAL_GOTNO - 0x70000000];
- for (a=got; n; a++, n--) *a += (size_t)base;
-diff -Nur musl-0.9.13/arch/powerpc/bits/limits.h musl-git/arch/powerpc/bits/limits.h
---- musl-0.9.13/arch/powerpc/bits/limits.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/arch/powerpc/bits/limits.h 2013-09-16 20:31:39.000000000 +0200
-@@ -1,6 +1,5 @@
- #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
-
-diff -Nur musl-0.9.13/arch/powerpc/reloc.h musl-git/arch/powerpc/reloc.h
---- musl-0.9.13/arch/powerpc/reloc.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/arch/powerpc/reloc.h 2013-09-16 20:31:39.000000000 +0200
-@@ -46,7 +46,7 @@
- for (a+=c+1; *a; a++);
- for (a++; *a; a+=2) if (*a<20) t[*a] = a[1];
- base = (char *)t[AT_BASE];
-- if (!base) base = (char *)(t[AT_PHDR] & -4096);
-+ if (!base) base = (char *)(t[AT_PHDR] & -t[AT_PAGESZ]);
- for (a=dynv; *a; a+=2) if (*a<20) t[*a] = a[1];
- n = t[DT_RELASZ];
- for (a=(void *)(base+t[DT_RELA]); n; a+=3, n-=12)
-diff -Nur musl-0.9.13/include/elf.h musl-git/include/elf.h
---- musl-0.9.13/include/elf.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/include/elf.h 2013-09-16 20:31:39.000000000 +0200
-@@ -105,6 +105,7 @@
- #define ELFOSABI_HPUX 1
- #define ELFOSABI_NETBSD 2
- #define ELFOSABI_LINUX 3
-+#define ELFOSABI_GNU 3
- #define ELFOSABI_SOLARIS 6
- #define ELFOSABI_AIX 7
- #define ELFOSABI_IRIX 8
-@@ -211,7 +212,11 @@
- #define EM_OPENRISC 92
- #define EM_ARC_A5 93
- #define EM_XTENSA 94
--#define EM_NUM 95
-+#define EM_AARCH64 183
-+#define EM_TILEPRO 188
-+#define EM_MICROBLAZE 189
-+#define EM_TILEGX 191
-+#define EM_NUM 192
- #define EM_ALPHA 0x9026
-
- #define EV_NONE 0
-@@ -487,6 +492,8 @@
- #define PT_HIPROC 0x7fffffff
-
-
-+#define PN_XNUM 0xffff
-+
-
- #define PF_X (1 << 0)
- #define PF_W (1 << 1)
-@@ -512,12 +519,31 @@
- #define NT_LWPSTATUS 16
- #define NT_LWPSINFO 17
- #define NT_PRFPXREG 20
-+#define NT_SIGINFO 0x53494749
-+#define NT_FILE 0x46494c45
- #define NT_PRXFPREG 0x46e62b7f
- #define NT_PPC_VMX 0x100
- #define NT_PPC_SPE 0x101
- #define NT_PPC_VSX 0x102
- #define NT_386_TLS 0x200
- #define NT_386_IOPERM 0x201
-+#define NT_X86_XSTATE 0x202
-+#define NT_S390_HIGH_GPRS 0x300
-+#define NT_S390_TIMER 0x301
-+#define NT_S390_TODCMP 0x302
-+#define NT_S390_TODPREG 0x303
-+#define NT_S390_CTRS 0x304
-+#define NT_S390_PREFIX 0x305
-+#define NT_S390_LAST_BREAK 0x306
-+#define NT_S390_SYSTEM_CALL 0x307
-+#define NT_S390_TDB 0x308
-+#define NT_ARM_VFP 0x400
-+#define NT_ARM_TLS 0x401
-+#define NT_ARM_HW_BREAK 0x402
-+#define NT_ARM_HW_WATCH 0x403
-+#define NT_METAG_CBUF 0x500
-+#define NT_METAG_RPIPE 0x501
-+#define NT_METAG_TLS 0x502
- #define NT_VERSION 1
-
-
-@@ -666,7 +692,15 @@
- #define DF_1_ENDFILTEE 0x00004000
- #define DF_1_DISPRELDNE 0x00008000
- #define DF_1_DISPRELPND 0x00010000
--
-+#define DF_1_NODIRECT 0x00020000
-+#define DF_1_IGNMULDEF 0x00040000
-+#define DF_1_NOKSYMS 0x00080000
-+#define DF_1_NOHDR 0x00100000
-+#define DF_1_EDITED 0x00200000
-+#define DF_1_NORELOC 0x00400000
-+#define DF_1_SYMINTPOSE 0x00800000
-+#define DF_1_GLOBAUDIT 0x01000000
-+#define DF_1_SINGLETON 0x02000000
-
- #define DTF_1_PARINIT 0x00000001
- #define DTF_1_CONFEXP 0x00000002
-@@ -832,6 +866,8 @@
-
- #define AT_RANDOM 25
-
-+#define AT_HWCAP2 26
-+
- #define AT_EXECFN 31
-
-
-@@ -979,6 +1015,7 @@
- #define R_386_TLS_DTPMOD32 35
- #define R_386_TLS_DTPOFF32 36
- #define R_386_TLS_TPOFF32 37
-+#define R_386_SIZE32 38
- #define R_386_TLS_GOTDESC 39
- #define R_386_TLS_DESC_CALL 40
- #define R_386_TLS_DESC 41
-@@ -1109,20 +1146,6 @@
- #define DT_SPARC_NUM 2
-
-
--
--#define HWCAP_SPARC_FLUSH 1
--#define HWCAP_SPARC_STBAR 2
--#define HWCAP_SPARC_SWAP 4
--#define HWCAP_SPARC_MULDIV 8
--#define HWCAP_SPARC_V9 16
--#define HWCAP_SPARC_ULTRA3 32
--#define HWCAP_SPARC_BLKINIT 64
--#define HWCAP_SPARC_N2 128
--
--
--
--
--
- #define EF_MIPS_NOREORDER 1
- #define EF_MIPS_PIC 2
- #define EF_MIPS_CPIC 4
-@@ -1139,9 +1162,10 @@
- #define EF_MIPS_ARCH_3 0x20000000
- #define EF_MIPS_ARCH_4 0x30000000
- #define EF_MIPS_ARCH_5 0x40000000
--#define EF_MIPS_ARCH_32 0x60000000
--#define EF_MIPS_ARCH_64 0x70000000
--
-+#define EF_MIPS_ARCH_32 0x50000000
-+#define EF_MIPS_ARCH_64 0x60000000
-+#define EF_MIPS_ARCH_32R2 0x70000000
-+#define EF_MIPS_ARCH_64R2 0x80000000
-
-
- #define E_MIPS_ARCH_1 0x00000000
-@@ -1149,8 +1173,8 @@
- #define E_MIPS_ARCH_3 0x20000000
- #define E_MIPS_ARCH_4 0x30000000
- #define E_MIPS_ARCH_5 0x40000000
--#define E_MIPS_ARCH_32 0x60000000
--#define E_MIPS_ARCH_64 0x70000000
-+#define E_MIPS_ARCH_32 0x50000000
-+#define E_MIPS_ARCH_64 0x60000000
-
-
-
-@@ -2020,7 +2044,8 @@
- #define EF_ARM_VFP_FLOAT 0x400
- #define EF_ARM_MAVERICK_FLOAT 0x800
-
--
-+#define EF_ARM_ABI_FLOAT_SOFT 0x200
-+#define EF_ARM_ABI_FLOAT_HARD 0x400
-
-
- #define EF_ARM_SYMSARESORTED 0x04
-@@ -2064,6 +2089,17 @@
- #define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3)
-
-
-+#define R_AARCH64_NONE 0
-+#define R_AARCH64_ABS64 257
-+#define R_AARCH64_ABS32 258
-+#define R_AARCH64_COPY 1024
-+#define R_AARCH64_GLOB_DAT 1025
-+#define R_AARCH64_JUMP_SLOT 1026
-+#define R_AARCH64_RELATIVE 1027
-+#define R_AARCH64_TLS_DTPMOD64 1028
-+#define R_AARCH64_TLS_DTPREL64 1029
-+#define R_AARCH64_TLS_TPREL64 1030
-+#define R_AARCH64_TLSDESC 1031
-
-
- #define R_ARM_NONE 0
-@@ -2079,7 +2115,7 @@
- #define R_ARM_THM_PC22 10
- #define R_ARM_THM_PC8 11
- #define R_ARM_AMP_VCALL9 12
--#define R_ARM_SWI24 13
-+#define R_ARM_TLS_DESC 13
- #define R_ARM_THM_SWI8 14
- #define R_ARM_XPC25 15
- #define R_ARM_THM_XPC22 16
-@@ -2094,12 +2130,78 @@
- #define R_ARM_GOTPC 25
- #define R_ARM_GOT32 26
- #define R_ARM_PLT32 27
-+#define R_ARM_CALL 28
-+#define R_ARM_JUMP24 29
-+#define R_ARM_THM_JUMP24 30
-+#define R_ARM_BASE_ABS 31
- #define R_ARM_ALU_PCREL_7_0 32
- #define R_ARM_ALU_PCREL_15_8 33
- #define R_ARM_ALU_PCREL_23_15 34
- #define R_ARM_LDR_SBREL_11_0 35
- #define R_ARM_ALU_SBREL_19_12 36
- #define R_ARM_ALU_SBREL_27_20 37
-+#define R_ARM_TARGET1 38
-+#define R_ARM_SBREL31 39
-+#define R_ARM_V4BX 40
-+#define R_ARM_TARGET2 41
-+#define R_ARM_PREL31 42
-+#define R_ARM_MOVW_ABS_NC 43
-+#define R_ARM_MOVT_ABS 44
-+#define R_ARM_MOVW_PREL_NC 45
-+#define R_ARM_MOVT_PREL 46
-+#define R_ARM_THM_MOVW_ABS_NC 47
-+#define R_ARM_THM_MOVT_ABS 48
-+#define R_ARM_THM_MOVW_PREL_NC 49
-+#define R_ARM_THM_MOVT_PREL 50
-+#define R_ARM_THM_JUMP19 51
-+#define R_ARM_THM_JUMP6 52
-+#define R_ARM_THM_ALU_PREL_11_0 53
-+#define R_ARM_THM_PC12 54
-+#define R_ARM_ABS32_NOI 55
-+#define R_ARM_REL32_NOI 56
-+#define R_ARM_ALU_PC_G0_NC 57
-+#define R_ARM_ALU_PC_G0 58
-+#define R_ARM_ALU_PC_G1_NC 59
-+#define R_ARM_ALU_PC_G1 60
-+#define R_ARM_ALU_PC_G2 61
-+#define R_ARM_LDR_PC_G1 62
-+#define R_ARM_LDR_PC_G2 63
-+#define R_ARM_LDRS_PC_G0 64
-+#define R_ARM_LDRS_PC_G1 65
-+#define R_ARM_LDRS_PC_G2 66
-+#define R_ARM_LDC_PC_G0 67
-+#define R_ARM_LDC_PC_G1 68
-+#define R_ARM_LDC_PC_G2 69
-+#define R_ARM_ALU_SB_G0_NC 70
-+#define R_ARM_ALU_SB_G0 71
-+#define R_ARM_ALU_SB_G1_NC 72
-+#define R_ARM_ALU_SB_G1 73
-+#define R_ARM_ALU_SB_G2 74
-+#define R_ARM_LDR_SB_G0 75
-+#define R_ARM_LDR_SB_G1 76
-+#define R_ARM_LDR_SB_G2 77
-+#define R_ARM_LDRS_SB_G0 78
-+#define R_ARM_LDRS_SB_G1 79
-+#define R_ARM_LDRS_SB_G2 80
-+#define R_ARM_LDC_SB_G0 81
-+#define R_ARM_LDC_SB_G1 82
-+#define R_ARM_LDC_SB_G2 83
-+#define R_ARM_MOVW_BREL_NC 84
-+#define R_ARM_MOVT_BREL 85
-+#define R_ARM_MOVW_BREL 86
-+#define R_ARM_THM_MOVW_BREL_NC 87
-+#define R_ARM_THM_MOVT_BREL 88
-+#define R_ARM_THM_MOVW_BREL 89
-+#define R_ARM_TLS_GOTDESC 90
-+#define R_ARM_TLS_CALL 91
-+#define R_ARM_TLS_DESCSEQ 92
-+#define R_ARM_THM_TLS_CALL 93
-+#define R_ARM_PLT32_ABS 94
-+#define R_ARM_GOT_ABS 95
-+#define R_ARM_GOT_PREL 96
-+#define R_ARM_GOT_BREL12 97
-+#define R_ARM_GOTOFF12 98
-+#define R_ARM_GOTRELAX 99
- #define R_ARM_GNU_VTENTRY 100
- #define R_ARM_GNU_VTINHERIT 101
- #define R_ARM_THM_PC11 102
-@@ -2113,7 +2215,15 @@
- #define R_ARM_TLS_IE32 107
-
- #define R_ARM_TLS_LE32 108
--
-+#define R_ARM_TLS_LDO12 109
-+#define R_ARM_TLS_LE12 110
-+#define R_ARM_TLS_IE12GP 111
-+#define R_ARM_ME_TOO 128
-+#define R_ARM_THM_TLS_DESCSEQ 129
-+#define R_ARM_THM_TLS_DESCSEQ16 129
-+#define R_ARM_THM_TLS_DESCSEQ32 130
-+#define R_ARM_THM_GOT_BREL12 131
-+#define R_ARM_IRELATIVE 160
- #define R_ARM_RXPC25 249
- #define R_ARM_RSBREL32 250
- #define R_ARM_THM_RPC22 251
-@@ -2421,15 +2531,21 @@
- #define R_X86_64_PC64 24
- #define R_X86_64_GOTOFF64 25
- #define R_X86_64_GOTPC32 26
--
-+#define R_X86_64_GOT64 27
-+#define R_X86_64_GOTPCREL64 28
-+#define R_X86_64_GOTPC64 29
-+#define R_X86_64_GOTPLT64 30
-+#define R_X86_64_PLTOFF64 31
-+#define R_X86_64_SIZE32 32
-+#define R_X86_64_SIZE64 33
-
- #define R_X86_64_GOTPC32_TLSDESC 34
- #define R_X86_64_TLSDESC_CALL 35
-
- #define R_X86_64_TLSDESC 36
- #define R_X86_64_IRELATIVE 37
--
--#define R_X86_64_NUM 38
-+#define R_X86_64_RELATIVE64 38
-+#define R_X86_64_NUM 39
-
-
-
-diff -Nur musl-0.9.13/include/limits.h musl-git/include/limits.h
---- musl-0.9.13/include/limits.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/include/limits.h 2013-09-16 20:31:39.000000000 +0200
-@@ -40,7 +40,9 @@
- || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-
- #define PIPE_BUF 4096
-+#ifdef PAGE_SIZE
- #define PAGESIZE PAGE_SIZE
-+#endif
- #define FILESIZEBITS 64
- #define NAME_MAX 255
- #define SYMLINK_MAX 255
-diff -Nur musl-0.9.13/include/net/if_arp.h musl-git/include/net/if_arp.h
---- musl-0.9.13/include/net/if_arp.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/include/net/if_arp.h 2013-09-16 20:31:39.000000000 +0200
-@@ -52,6 +52,7 @@
- #define ARPHRD_ROSE 270
- #define ARPHRD_X25 271
- #define ARPHRD_HWX25 272
-+#define ARPHRD_CAN 280
- #define ARPHRD_PPP 512
- #define ARPHRD_CISCO 513
- #define ARPHRD_HDLC ARPHRD_CISCO
-@@ -84,7 +85,12 @@
- #define ARPHRD_IEEE80211_PRISM 802
- #define ARPHRD_IEEE80211_RADIOTAP 803
- #define ARPHRD_IEEE802154 804
--#define ARPHRD_IEEE802154_PHY 805
-+#define ARPHRD_IEEE802154_MONITOR 805
-+#define ARPHRD_PHONET 820
-+#define ARPHRD_PHONET_PIPE 821
-+#define ARPHRD_CAIF 822
-+#define ARPHRD_IP6GRE 823
-+#define ARPHRD_NETLINK 824
-
- #define ARPHRD_VOID 0xFFFF
- #define ARPHRD_NONE 0xFFFE
-diff -Nur musl-0.9.13/include/netinet/in.h musl-git/include/netinet/in.h
---- musl-0.9.13/include/netinet/in.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/include/netinet/in.h 2013-09-16 20:31:39.000000000 +0200
-@@ -91,10 +91,12 @@
- #define IPPROTO_NONE 59
- #define IPPROTO_DSTOPTS 60
- #define IPPROTO_MTP 92
-+#define IPPROTO_BEETPH 94
- #define IPPROTO_ENCAP 98
- #define IPPROTO_PIM 103
- #define IPPROTO_COMP 108
- #define IPPROTO_SCTP 132
-+#define IPPROTO_MH 135
- #define IPPROTO_UDPLITE 136
- #define IPPROTO_RAW 255
- #define IPPROTO_MAX 256
-diff -Nur musl-0.9.13/include/sys/ptrace.h musl-git/include/sys/ptrace.h
---- musl-0.9.13/include/sys/ptrace.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/include/sys/ptrace.h 2013-09-16 20:31:39.000000000 +0200
-@@ -37,6 +37,8 @@
- #define PTRACE_INTERRUPT 0x4207
- #define PTRACE_LISTEN 0x4208
- #define PTRACE_PEEKSIGINFO 0x4209
-+#define PTRACE_GETSIGMASK 0x420a
-+#define PTRACE_SETSIGMASK 0x420b
-
- #define PT_READ_I PTRACE_PEEKTEXT
- #define PT_READ_D PTRACE_PEEKDATA
-diff -Nur musl-0.9.13/include/sys/resource.h musl-git/include/sys/resource.h
---- musl-0.9.13/include/sys/resource.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/include/sys/resource.h 2013-09-16 20:31:39.000000000 +0200
-@@ -59,6 +59,9 @@
- #define prlimit64 prlimit
- #endif
-
-+#define PRIO_MIN (-20)
-+#define PRIO_MAX 20
-+
- #define PRIO_PROCESS 0
- #define PRIO_PGRP 1
- #define PRIO_USER 2
-diff -Nur musl-0.9.13/include/sys/socket.h musl-git/include/sys/socket.h
---- musl-0.9.13/include/sys/socket.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/include/sys/socket.h 2013-09-16 20:31:39.000000000 +0200
-@@ -199,6 +199,7 @@
- #define SO_NOFCS 43
- #define SO_LOCK_FILTER 44
- #define SO_SELECT_ERR_QUEUE 45
-+#define SO_BUSY_POLL 46
-
- #ifndef SOL_SOCKET
- #define SOL_SOCKET 1
-diff -Nur musl-0.9.13/include/wait.h musl-git/include/wait.h
---- musl-0.9.13/include/wait.h 1970-01-01 01:00:00.000000000 +0100
-+++ musl-git/include/wait.h 2013-09-16 20:31:39.000000000 +0200
-@@ -0,0 +1,2 @@
-+#warning redirecting incorrect #include <wait.h> to <sys/wait.h>
-+#include <sys/wait.h>
-diff -Nur musl-0.9.13/src/aio/aio_readwrite.c musl-git/src/aio/aio_readwrite.c
---- musl-0.9.13/src/aio/aio_readwrite.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/aio/aio_readwrite.c 2013-09-16 20:31:39.000000000 +0200
-@@ -2,8 +2,8 @@
- #include <fcntl.h>
- #include <errno.h>
- #include <unistd.h>
--#include <limits.h>
- #include "pthread_impl.h"
-+#include "libc.h"
-
- static void dummy(void)
- {
-diff -Nur musl-0.9.13/src/aio/lio_listio.c musl-git/src/aio/lio_listio.c
---- musl-0.9.13/src/aio/lio_listio.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/aio/lio_listio.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,9 +1,9 @@
- #include <aio.h>
- #include <errno.h>
--#include <limits.h>
- #include <unistd.h>
- #include <string.h>
- #include "pthread_impl.h"
-+#include "libc.h"
-
- struct lio_state {
- struct sigevent *sev;
-diff -Nur musl-0.9.13/src/conf/fpathconf.c musl-git/src/conf/fpathconf.c
---- musl-0.9.13/src/conf/fpathconf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/conf/fpathconf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -19,11 +19,11 @@
- [_PC_PRIO_IO] = -1,
- [_PC_SOCK_MAXBUF] = -1,
- [_PC_FILESIZEBITS] = FILESIZEBITS,
-- [_PC_REC_INCR_XFER_SIZE] = PAGE_SIZE,
-- [_PC_REC_MAX_XFER_SIZE] = PAGE_SIZE,
-- [_PC_REC_MIN_XFER_SIZE] = PAGE_SIZE,
-- [_PC_REC_XFER_ALIGN] = PAGE_SIZE,
-- [_PC_ALLOC_SIZE_MIN] = PAGE_SIZE,
-+ [_PC_REC_INCR_XFER_SIZE] = 4096,
-+ [_PC_REC_MAX_XFER_SIZE] = 4096,
-+ [_PC_REC_MIN_XFER_SIZE] = 4096,
-+ [_PC_REC_XFER_ALIGN] = 4096,
-+ [_PC_ALLOC_SIZE_MIN] = 4096,
- [_PC_SYMLINK_MAX] = SYMLINK_MAX,
- [_PC_2_SYMLINKS] = 1
- };
-diff -Nur musl-0.9.13/src/conf/sysconf.c musl-git/src/conf/sysconf.c
---- musl-0.9.13/src/conf/sysconf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/conf/sysconf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -3,6 +3,7 @@
- #include <errno.h>
- #include <sys/resource.h>
- #include "syscall.h"
-+#include "libc.h"
-
- #define VER (-2)
- #define OFLOW (-3)
-@@ -40,9 +41,9 @@
- [_SC_AIO_PRIO_DELTA_MAX] = 0, /* ?? */
- [_SC_DELAYTIMER_MAX] = _POSIX_DELAYTIMER_MAX,
- [_SC_MQ_OPEN_MAX] = -1,
-- [_SC_MQ_PRIO_MAX] = MQ_PRIO_MAX,
-+ [_SC_MQ_PRIO_MAX] = OFLOW,
- [_SC_VERSION] = VER,
-- [_SC_PAGE_SIZE] = PAGE_SIZE,
-+ [_SC_PAGE_SIZE] = OFLOW,
- [_SC_RTSIG_MAX] = 63, /* ?? */
- [_SC_SEM_NSEMS_MAX] = SEM_NSEMS_MAX,
- [_SC_SEM_VALUE_MAX] = OFLOW,
-@@ -221,6 +222,9 @@
- } else if (values[name] == OFLOW) {
- if (name == _SC_ARG_MAX) return ARG_MAX;
- if (name == _SC_SEM_VALUE_MAX) return SEM_VALUE_MAX;
-+ if (name == _SC_MQ_PRIO_MAX) return MQ_PRIO_MAX;
-+ /* name == _SC_PAGE_SIZE */
-+ return PAGE_SIZE;
- } else if (values[name] == CPUCNT) {
- unsigned char set[128] = {1};
- int i, cnt;
-diff -Nur musl-0.9.13/src/env/__libc_start_main.c musl-git/src/env/__libc_start_main.c
---- musl-0.9.13/src/env/__libc_start_main.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/env/__libc_start_main.c 2013-09-16 20:31:39.000000000 +0200
-@@ -26,6 +26,7 @@
- for (i=0; auxv[i]; i+=2) if (auxv[i]<AUX_CNT) aux[auxv[i]] = auxv[i+1];
- __hwcap = aux[AT_HWCAP];
- __sysinfo = aux[AT_SYSINFO];
-+ libc.page_size = aux[AT_PAGESZ];
-
- if (pn) {
- __progname = __progname_full = pn;
-diff -Nur musl-0.9.13/src/internal/libc.h musl-git/src/internal/libc.h
---- musl-0.9.13/src/internal/libc.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/internal/libc.h 2013-09-16 20:31:39.000000000 +0200
-@@ -3,6 +3,7 @@
-
- #include <stdlib.h>
- #include <stdio.h>
-+#include <limits.h>
-
- struct __libc {
- void *main_thread;
-@@ -14,10 +15,15 @@
- FILE *ofl_head;
- int ofl_lock[2];
- size_t tls_size;
-+ size_t page_size;
- };
-
- extern size_t __hwcap;
-
-+#ifndef PAGE_SIZE
-+#define PAGE_SIZE libc.page_size
-+#endif
-+
- #if !defined(__PIC__) || (100*__GNUC__+__GNUC_MINOR__ >= 303 && !defined(__PCC__))
-
- #ifdef __PIC__
-diff -Nur musl-0.9.13/src/internal/libm.h musl-git/src/internal/libm.h
---- musl-0.9.13/src/internal/libm.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/internal/libm.h 2013-09-16 20:31:39.000000000 +0200
-@@ -17,117 +17,115 @@
- #include <float.h>
- #include <math.h>
- #include <complex.h>
-+#include <endian.h>
-
--#include "longdbl.h"
--
--#include "libc.h"
--
--union fshape {
-- float value;
-- uint32_t bits;
-+#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-+#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384 && __BYTE_ORDER == __LITTLE_ENDIAN
-+union ldshape {
-+ long double f;
-+ struct {
-+ uint64_t m;
-+ uint16_t se;
-+ } i;
- };
--
--union dshape {
-- double value;
-- uint64_t bits;
-+#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384 && __BYTE_ORDER == __LITTLE_ENDIAN
-+union ldshape {
-+ long double f;
-+ struct {
-+ uint64_t lo;
-+ uint32_t mid;
-+ uint16_t top;
-+ uint16_t se;
-+ } i;
-+ struct {
-+ uint64_t lo;
-+ uint64_t hi;
-+ } i2;
- };
-+#else
-+#error Unsupported long double representation
-+#endif
-
--#define FORCE_EVAL(x) do { \
-- if (sizeof(x) == sizeof(float)) { \
-- volatile float __x; \
-- __x = (x); \
-- } else if (sizeof(x) == sizeof(double)) { \
-- volatile double __x; \
-- __x = (x); \
-- } else { \
-- volatile long double __x; \
-- __x = (x); \
-- } \
-+#define FORCE_EVAL(x) do { \
-+ if (sizeof(x) == sizeof(float)) { \
-+ volatile float __x; \
-+ __x = (x); \
-+ } else if (sizeof(x) == sizeof(double)) { \
-+ volatile double __x; \
-+ __x = (x); \
-+ } else { \
-+ volatile long double __x; \
-+ __x = (x); \
-+ } \
- } while(0)
-
- /* Get two 32 bit ints from a double. */
--#define EXTRACT_WORDS(hi,lo,d) \
--do { \
-- union dshape __u; \
-- __u.value = (d); \
-- (hi) = __u.bits >> 32; \
-- (lo) = (uint32_t)__u.bits; \
--} while (0)
--
--/* Get a 64 bit int from a double. */
--#define EXTRACT_WORD64(i,d) \
--do { \
-- union dshape __u; \
-- __u.value = (d); \
-- (i) = __u.bits; \
-+#define EXTRACT_WORDS(hi,lo,d) \
-+do { \
-+ union {double f; uint64_t i;} __u; \
-+ __u.f = (d); \
-+ (hi) = __u.i >> 32; \
-+ (lo) = (uint32_t)__u.i; \
- } while (0)
-
- /* Get the more significant 32 bit int from a double. */
--#define GET_HIGH_WORD(i,d) \
--do { \
-- union dshape __u; \
-- __u.value = (d); \
-- (i) = __u.bits >> 32; \
-+#define GET_HIGH_WORD(hi,d) \
-+do { \
-+ union {double f; uint64_t i;} __u; \
-+ __u.f = (d); \
-+ (hi) = __u.i >> 32; \
- } while (0)
-
- /* Get the less significant 32 bit int from a double. */
--#define GET_LOW_WORD(i,d) \
--do { \
-- union dshape __u; \
-- __u.value = (d); \
-- (i) = (uint32_t)__u.bits; \
-+#define GET_LOW_WORD(lo,d) \
-+do { \
-+ union {double f; uint64_t i;} __u; \
-+ __u.f = (d); \
-+ (lo) = (uint32_t)__u.i; \
- } while (0)
-
- /* Set a double from two 32 bit ints. */
--#define INSERT_WORDS(d,hi,lo) \
--do { \
-- union dshape __u; \
-- __u.bits = ((uint64_t)(hi) << 32) | (uint32_t)(lo); \
-- (d) = __u.value; \
--} while (0)
--
--/* Set a double from a 64 bit int. */
--#define INSERT_WORD64(d,i) \
--do { \
-- union dshape __u; \
-- __u.bits = (i); \
-- (d) = __u.value; \
-+#define INSERT_WORDS(d,hi,lo) \
-+do { \
-+ union {double f; uint64_t i;} __u; \
-+ __u.i = ((uint64_t)(hi)<<32) | (uint32_t)(lo); \
-+ (d) = __u.f; \
- } while (0)
-
- /* Set the more significant 32 bits of a double from an int. */
--#define SET_HIGH_WORD(d,hi) \
--do { \
-- union dshape __u; \
-- __u.value = (d); \
-- __u.bits &= 0xffffffff; \
-- __u.bits |= (uint64_t)(hi) << 32; \
-- (d) = __u.value; \
-+#define SET_HIGH_WORD(d,hi) \
-+do { \
-+ union {double f; uint64_t i;} __u; \
-+ __u.f = (d); \
-+ __u.i &= 0xffffffff; \
-+ __u.i |= (uint64_t)(hi) << 32; \
-+ (d) = __u.f; \
- } while (0)
-
- /* Set the less significant 32 bits of a double from an int. */
--#define SET_LOW_WORD(d,lo) \
--do { \
-- union dshape __u; \
-- __u.value = (d); \
-- __u.bits &= 0xffffffff00000000ull; \
-- __u.bits |= (uint32_t)(lo); \
-- (d) = __u.value; \
-+#define SET_LOW_WORD(d,lo) \
-+do { \
-+ union {double f; uint64_t i;} __u; \
-+ __u.f = (d); \
-+ __u.i &= 0xffffffff00000000ull; \
-+ __u.i |= (uint32_t)(lo); \
-+ (d) = __u.f; \
- } while (0)
-
- /* Get a 32 bit int from a float. */
--#define GET_FLOAT_WORD(i,d) \
--do { \
-- union fshape __u; \
-- __u.value = (d); \
-- (i) = __u.bits; \
-+#define GET_FLOAT_WORD(w,d) \
-+do { \
-+ union {float f; uint32_t i;} __u; \
-+ __u.f = (d); \
-+ (w) = __u.i; \
- } while (0)
-
- /* Set a float from a 32 bit int. */
--#define SET_FLOAT_WORD(d,i) \
--do { \
-- union fshape __u; \
-- __u.bits = (i); \
-- (d) = __u.value; \
-+#define SET_FLOAT_WORD(d,w) \
-+do { \
-+ union {float f; uint32_t i;} __u; \
-+ __u.i = (w); \
-+ (d) = __u.f; \
- } while (0)
-
- /* fdlibm kernel functions */
-@@ -157,15 +155,4 @@
- long double __polevll(long double, const long double *, int);
- long double __p1evll(long double, const long double *, int);
-
--#if 0
--/* Attempt to get strict C99 semantics for assignment with non-C99 compilers. */
--#define STRICT_ASSIGN(type, lval, rval) do { \
-- volatile type __v = (rval); \
-- (lval) = __v; \
--} while (0)
--#else
--/* Should work with -fexcess-precision=standard (>=gcc-4.5) or -ffloat-store */
--#define STRICT_ASSIGN(type, lval, rval) ((lval) = (type)(rval))
--#endif
--
- #endif
-diff -Nur musl-0.9.13/src/internal/longdbl.h musl-git/src/internal/longdbl.h
---- musl-0.9.13/src/internal/longdbl.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/internal/longdbl.h 1970-01-01 01:00:00.000000000 +0100
-@@ -1,137 +0,0 @@
--#ifndef _LDHACK_H
--#define _LDHACK_H
--
--#include <float.h>
--#include <stdint.h>
--
--#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
--#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
--union ldshape {
-- long double value;
-- struct {
-- uint64_t m;
-- uint16_t exp:15;
-- uint16_t sign:1;
-- uint16_t pad;
-- } bits;
--};
--#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384
--union ldshape {
-- long double value;
-- struct {
-- uint64_t mlo;
-- uint64_t mhi:48;
-- uint16_t exp:15;
-- uint16_t sign:1;
-- } bits;
--};
--#else
--#error Unsupported long double representation
--#endif
--
--
--// FIXME: hacks to make freebsd+openbsd long double code happy
--
--// union and macros for freebsd
--
--#if LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
--
--union IEEEl2bits {
-- long double e;
-- struct {
-- uint32_t manl:32;
-- uint32_t manh:32;
-- uint32_t exp:15;
-- uint32_t sign:1;
-- uint32_t pad:16;
-- } bits;
-- struct {
-- uint64_t man:64;
-- uint32_t expsign:16;
-- uint32_t pad:16;
-- } xbits;
--};
--
--#define LDBL_MANL_SIZE 32
--#define LDBL_MANH_SIZE 32
--#define LDBL_NBIT (1ull << LDBL_MANH_SIZE-1)
--#undef LDBL_IMPLICIT_NBIT
--#define mask_nbit_l(u) ((u).bits.manh &= ~LDBL_NBIT)
--
--#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384
--/*
--// ld128 float.h
--//#define LDBL_MAX 1.189731495357231765085759326628007016E+4932L
--#define LDBL_MAX 0x1.ffffffffffffffffffffffffffffp+16383
--#define LDBL_MAX_EXP 16384
--#define LDBL_HAS_INFINITY 1
--//#define LDBL_MIN 3.362103143112093506262677817321752603E-4932L
--#define LDBL_MIN 0x1p-16382
--#define LDBL_HAS_QUIET_NAN 1
--#define LDBL_HAS_DENORM 1
--//#define LDBL_EPSILON 1.925929944387235853055977942584927319E-34L
--#define LDBL_EPSILON 0x1p-112
--#define LDBL_MANT_DIG 113
--#define LDBL_MIN_EXP (-16381)
--#define LDBL_MAX_10_EXP 4932
--#define LDBL_DENORM_MIN 0x0.0000000000000000000000000001p-16381
--#define LDBL_MIN_10_EXP (-4931)
--#define LDBL_DIG 33
--*/
--
--union IEEEl2bits {
-- long double e;
-- struct {
-- uint64_t manl:64;
-- uint64_t manh:48;
-- uint32_t exp:15;
-- uint32_t sign:1;
-- } bits;
-- struct {
-- uint64_t unused0:64;
-- uint64_t unused1:48;
-- uint32_t expsign:16;
-- } xbits;
--};
--
--#define LDBL_MANL_SIZE 64
--#define LDBL_MANH_SIZE 48
--#define LDBL_NBIT (1ull << LDBL_MANH_SIZE)
--#define LDBL_IMPLICIT_NBIT 1
--#define mask_nbit_l(u)
--
--#endif
--
--
--// macros for openbsd
--
--#define GET_LDOUBLE_WORDS(se,mh,ml, f) do{ \
-- union IEEEl2bits u; \
-- u.e = (f); \
-- (se) = u.xbits.expsign; \
-- (mh) = u.bits.manh; \
-- (ml) = u.bits.manl; \
--}while(0)
--
--#define SET_LDOUBLE_WORDS(f, se,mh,ml) do{ \
-- union IEEEl2bits u; \
-- u.xbits.expsign = (se); \
-- u.bits.manh = (mh); \
-- u.bits.manl = (ml); \
-- (f) = u.e; \
--}while(0)
--
--#define GET_LDOUBLE_EXP(se, f) do{ \
-- union IEEEl2bits u; \
-- u.e = (f); \
-- (se) = u.xbits.expsign; \
--}while(0)
--
--#define SET_LDOUBLE_EXP(f, se) do{ \
-- union IEEEl2bits u; \
-- u.e = (f); \
-- u.xbits.expsign = (se); \
-- (f) = u.e; \
--}while(0)
--
--#endif
-diff -Nur musl-0.9.13/src/ldso/dynlink.c musl-git/src/ldso/dynlink.c
---- musl-0.9.13/src/ldso/dynlink.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/ldso/dynlink.c 2013-09-16 20:31:39.000000000 +0200
-@@ -614,6 +614,8 @@
- sys_path = "";
- }
- fclose(f);
-+ } else if (errno != ENOENT) {
-+ sys_path = "";
- }
- }
- if (!sys_path) sys_path = "/lib:/usr/local/lib:/usr/lib";
-@@ -978,6 +980,7 @@
- env_preload = 0;
- libc.secure = 1;
- }
-+ libc.page_size = aux[AT_PAGESZ];
-
- /* If the dynamic linker was invoked as a program itself, AT_BASE
- * will not be set. In that case, we assume the base address is
-diff -Nur musl-0.9.13/src/legacy/getpagesize.c musl-git/src/legacy/getpagesize.c
---- musl-0.9.13/src/legacy/getpagesize.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/legacy/getpagesize.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,5 +1,5 @@
- #include <unistd.h>
--#include <limits.h>
-+#include "libc.h"
-
- int getpagesize(void)
- {
-diff -Nur musl-0.9.13/src/legacy/valloc.c musl-git/src/legacy/valloc.c
---- musl-0.9.13/src/legacy/valloc.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/legacy/valloc.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,6 +1,6 @@
- #define _BSD_SOURCE
- #include <stdlib.h>
--#include <limits.h>
-+#include "libc.h"
-
- void *valloc(size_t size)
- {
-diff -Nur musl-0.9.13/src/math/__cosl.c musl-git/src/math/__cosl.c
---- musl-0.9.13/src/math/__cosl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/__cosl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,4 +1,5 @@
- /* origin: FreeBSD /usr/src/lib/msun/ld80/k_cosl.c */
-+/* origin: FreeBSD /usr/src/lib/msun/ld128/k_cosl.c */
- /*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-@@ -14,7 +15,8 @@
-
- #include "libm.h"
-
--#if LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
-+#if (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
-+#if LDBL_MANT_DIG == 64
- /*
- * ld80 version of __cos.c. See __cos.c for most comments.
- */
-@@ -43,7 +45,6 @@
- */
- static const long double
- C1 = 0.0416666666666666666136L; /* 0xaaaaaaaaaaaaaa9b.0p-68 */
--
- static const double
- C2 = -0.0013888888888888874, /* -0x16c16c16c16c10.0p-62 */
- C3 = 0.000024801587301571716, /* 0x1a01a01a018e22.0p-68 */
-@@ -51,13 +52,43 @@
- C5 = 0.0000000020876754400407278, /* 0x11eed8caaeccf1.0p-81 */
- C6 = -1.1470297442401303e-11, /* -0x19393412bd1529.0p-89 */
- C7 = 4.7383039476436467e-14; /* 0x1aac9d9af5c43e.0p-97 */
-+#define POLY(z) (z*(C1+z*(C2+z*(C3+z*(C4+z*(C5+z*(C6+z*C7)))))))
-+#elif LDBL_MANT_DIG == 113
-+/*
-+ * ld128 version of __cos.c. See __cos.c for most comments.
-+ */
-+/*
-+ * Domain [-0.7854, 0.7854], range ~[-1.80e-37, 1.79e-37]:
-+ * |cos(x) - c(x))| < 2**-122.0
-+ *
-+ * 113-bit precision requires more care than 64-bit precision, since
-+ * simple methods give a minimax polynomial with coefficient for x^2
-+ * that is 1 ulp below 0.5, but we want it to be precisely 0.5. See
-+ * above for more details.
-+ */
-+static const long double
-+C1 = 0.04166666666666666666666666666666658424671L,
-+C2 = -0.001388888888888888888888888888863490893732L,
-+C3 = 0.00002480158730158730158730158600795304914210L,
-+C4 = -0.2755731922398589065255474947078934284324e-6L,
-+C5 = 0.2087675698786809897659225313136400793948e-8L,
-+C6 = -0.1147074559772972315817149986812031204775e-10L,
-+C7 = 0.4779477332386808976875457937252120293400e-13L;
-+static const double
-+C8 = -0.1561920696721507929516718307820958119868e-15,
-+C9 = 0.4110317413744594971475941557607804508039e-18,
-+C10 = -0.8896592467191938803288521958313920156409e-21,
-+C11 = 0.1601061435794535138244346256065192782581e-23;
-+#define POLY(z) (z*(C1+z*(C2+z*(C3+z*(C4+z*(C5+z*(C6+z*(C7+ \
-+ z*(C8+z*(C9+z*(C10+z*C11)))))))))))
-+#endif
-
- long double __cosl(long double x, long double y)
- {
- long double hz,z,r,w;
-
- z = x*x;
-- r = z*(C1+z*(C2+z*(C3+z*(C4+z*(C5+z*(C6+z*C7))))));
-+ r = POLY(z);
- hz = 0.5*z;
- w = 1.0-hz;
- return w + (((1.0-w)-hz) + (z*r-x*y));
-diff -Nur musl-0.9.13/src/math/__fpclassify.c musl-git/src/math/__fpclassify.c
---- musl-0.9.13/src/math/__fpclassify.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/__fpclassify.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,10 +1,11 @@
--#include "libm.h"
-+#include <math.h>
-+#include <stdint.h>
-
- int __fpclassify(double x)
- {
-- union dshape u = { x };
-- int e = u.bits>>52 & 0x7ff;
-- if (!e) return u.bits<<1 ? FP_SUBNORMAL : FP_ZERO;
-- if (e==0x7ff) return u.bits<<12 ? FP_NAN : FP_INFINITE;
-+ union {double f; uint64_t i;} u = {x};
-+ int e = u.i>>52 & 0x7ff;
-+ if (!e) return u.i<<1 ? FP_SUBNORMAL : FP_ZERO;
-+ if (e==0x7ff) return u.i<<12 ? FP_NAN : FP_INFINITE;
- return FP_NORMAL;
- }
-diff -Nur musl-0.9.13/src/math/__fpclassifyf.c musl-git/src/math/__fpclassifyf.c
---- musl-0.9.13/src/math/__fpclassifyf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/__fpclassifyf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,10 +1,11 @@
--#include "libm.h"
-+#include <math.h>
-+#include <stdint.h>
-
- int __fpclassifyf(float x)
- {
-- union fshape u = { x };
-- int e = u.bits>>23 & 0xff;
-- if (!e) return u.bits<<1 ? FP_SUBNORMAL : FP_ZERO;
-- if (e==0xff) return u.bits<<9 ? FP_NAN : FP_INFINITE;
-+ union {float f; uint32_t i;} u = {x};
-+ int e = u.i>>23 & 0xff;
-+ if (!e) return u.i<<1 ? FP_SUBNORMAL : FP_ZERO;
-+ if (e==0xff) return u.i<<9 ? FP_NAN : FP_INFINITE;
- return FP_NORMAL;
- }
-diff -Nur musl-0.9.13/src/math/__fpclassifyl.c musl-git/src/math/__fpclassifyl.c
---- musl-0.9.13/src/math/__fpclassifyl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/__fpclassifyl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -5,26 +5,28 @@
- #elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
- int __fpclassifyl(long double x)
- {
-- union ldshape u = { x };
-- int e = u.bits.exp;
-- if (!e) {
-- if (u.bits.m >> 63) return FP_NAN;
-- else if (u.bits.m) return FP_SUBNORMAL;
-- else return FP_ZERO;
-- }
-+ union ldshape u = {x};
-+ int e = u.i.se & 0x7fff;
-+ int msb = u.i.m>>63;
-+ if (!e && !msb)
-+ return u.i.m ? FP_SUBNORMAL : FP_ZERO;
-+ if (!msb)
-+ return FP_NAN;
- if (e == 0x7fff)
-- return u.bits.m & (uint64_t)-1>>1 ? FP_NAN : FP_INFINITE;
-- return u.bits.m & (uint64_t)1<<63 ? FP_NORMAL : FP_NAN;
-+ return u.i.m << 1 ? FP_NAN : FP_INFINITE;
-+ return FP_NORMAL;
- }
- #elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384
- int __fpclassifyl(long double x)
- {
-- union ldshape u = { x };
-- int e = u.bits.exp;
-+ union ldshape u = {x};
-+ int e = u.i.se & 0x7fff;
- if (!e)
-- return u.bits.mlo | u.bits.mhi ? FP_SUBNORMAL : FP_ZERO;
-- if (e == 0x7fff)
-- return u.bits.mlo | u.bits.mhi ? FP_NAN : FP_INFINITE;
-+ return u.i2.lo | u.i2.hi ? FP_SUBNORMAL : FP_ZERO;
-+ if (e == 0x7fff) {
-+ u.i.se = 0;
-+ return u.i2.lo | u.i2.hi ? FP_NAN : FP_INFINITE;
-+ }
- return FP_NORMAL;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/__invtrigl.c musl-git/src/math/__invtrigl.c
---- musl-0.9.13/src/math/__invtrigl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/__invtrigl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,7 +1,7 @@
-+#include <float.h>
- #include "__invtrigl.h"
-
- #if LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
--
- static const long double
- pS0 = 1.66666666666666666631e-01L,
- pS1 = -4.16313987993683104320e-01L,
-@@ -28,4 +28,36 @@
- q = 1.0+z*(qS1+z*(qS2+z*(qS3+z*(qS4+z*qS5))));
- return p/q;
- }
-+#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384
-+static const long double
-+pS0 = 1.66666666666666666666666666666700314e-01L,
-+pS1 = -7.32816946414566252574527475428622708e-01L,
-+pS2 = 1.34215708714992334609030036562143589e+00L,
-+pS3 = -1.32483151677116409805070261790752040e+00L,
-+pS4 = 7.61206183613632558824485341162121989e-01L,
-+pS5 = -2.56165783329023486777386833928147375e-01L,
-+pS6 = 4.80718586374448793411019434585413855e-02L,
-+pS7 = -4.42523267167024279410230886239774718e-03L,
-+pS8 = 1.44551535183911458253205638280410064e-04L,
-+pS9 = -2.10558957916600254061591040482706179e-07L,
-+qS1 = -4.84690167848739751544716485245697428e+00L,
-+qS2 = 9.96619113536172610135016921140206980e+00L,
-+qS3 = -1.13177895428973036660836798461641458e+01L,
-+qS4 = 7.74004374389488266169304117714658761e+00L,
-+qS5 = -3.25871986053534084709023539900339905e+00L,
-+qS6 = 8.27830318881232209752469022352928864e-01L,
-+qS7 = -1.18768052702942805423330715206348004e-01L,
-+qS8 = 8.32600764660522313269101537926539470e-03L,
-+qS9 = -1.99407384882605586705979504567947007e-04L;
-+
-+const long double pio2_hi = 1.57079632679489661923132169163975140L;
-+const long double pio2_lo = 4.33590506506189051239852201302167613e-35L;
-+
-+long double __invtrigl_R(long double z)
-+{
-+ long double p, q;
-+ p = z*(pS0+z*(pS1+z*(pS2+z*(pS3+z*(pS4+z*(pS5+z*(pS6+z*(pS7+z*(pS8+z*pS9)))))))));
-+ q = 1.0+z*(qS1+z*(qS2+z*(qS3+z*(qS4+z*(qS5+z*(pS6+z*(pS7+z*(pS8+z*pS9))))))));
-+ return p/q;
-+}
- #endif
-diff -Nur musl-0.9.13/src/math/__invtrigl.h musl-git/src/math/__invtrigl.h
---- musl-0.9.13/src/math/__invtrigl.h 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/__invtrigl.h 2013-09-16 20:31:39.000000000 +0200
-@@ -1,10 +1,6 @@
--#include <float.h>
--
--#if LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
- /* shared by acosl, asinl and atan2l */
- #define pio2_hi __pio2_hi
- #define pio2_lo __pio2_lo
- extern const long double pio2_hi, pio2_lo;
-
- long double __invtrigl_R(long double z);
--#endif
-diff -Nur musl-0.9.13/src/math/__rem_pio2.c musl-git/src/math/__rem_pio2.c
---- musl-0.9.13/src/math/__rem_pio2.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/__rem_pio2.c 2013-09-16 20:31:39.000000000 +0200
-@@ -112,7 +112,7 @@
- uint32_t high;
- medium:
- /* Use a specialized rint() to get fn. Assume round-to-nearest. */
-- STRICT_ASSIGN(double, fn, x*invpio2 + 0x1.8p52);
-+ fn = x*invpio2 + 0x1.8p52;
- fn = fn - 0x1.8p52;
- // FIXME
- #ifdef HAVE_EFFICIENT_IRINT
-diff -Nur musl-0.9.13/src/math/__rem_pio2_large.c musl-git/src/math/__rem_pio2_large.c
---- musl-0.9.13/src/math/__rem_pio2_large.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/__rem_pio2_large.c 2013-09-16 20:31:39.000000000 +0200
-@@ -415,7 +415,8 @@
- fw = 0.0;
- for (i=jz; i>=0; i--)
- fw += fq[i];
-- STRICT_ASSIGN(double,fw,fw);
-+ // TODO: drop excess precision here once double_t is used
-+ fw = (double)fw;
- y[0] = ih==0 ? fw : -fw;
- fw = fq[0]-fw;
- for (i=1; i<=jz; i++)
-diff -Nur musl-0.9.13/src/math/__rem_pio2f.c musl-git/src/math/__rem_pio2f.c
---- musl-0.9.13/src/math/__rem_pio2f.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/__rem_pio2f.c 2013-09-16 20:31:39.000000000 +0200
-@@ -44,7 +44,7 @@
- /* 25+53 bit pi is good enough for medium size */
- if (ix < 0x4dc90fdb) { /* |x| ~< 2^28*(pi/2), medium size */
- /* Use a specialized rint() to get fn. Assume round-to-nearest. */
-- STRICT_ASSIGN(double, fn, x*invpio2 + 0x1.8p52);
-+ fn = x*invpio2 + 0x1.8p52;
- fn = fn - 0x1.8p52;
- // FIXME
- #ifdef HAVE_EFFICIENT_IRINT
-diff -Nur musl-0.9.13/src/math/__rem_pio2l.c musl-git/src/math/__rem_pio2l.c
---- musl-0.9.13/src/math/__rem_pio2l.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/__rem_pio2l.c 2013-09-16 20:31:39.000000000 +0200
-@@ -13,15 +13,22 @@
- * Optimized by Bruce D. Evans.
- */
- #include "libm.h"
--#if LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
--/* ld80 version of __rem_pio2(x,y)
-+#if (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
-+/* ld80 and ld128 version of __rem_pio2(x,y)
- *
- * return the remainder of x rem pi/2 in y[0]+y[1]
- * use __rem_pio2_large() for large x
- */
-
--#define BIAS (LDBL_MAX_EXP - 1)
--
-+#if LDBL_MANT_DIG == 64
-+/* u ~< 0x1p25*pi/2 */
-+#define SMALL(u) (((u.i.se & 0x7fffU)<<16 | u.i.m>>48) < ((0x3fff + 25)<<16 | 0x921f>>1 | 0x8000))
-+#define TOINT 0x1.8p63
-+#define QUOBITS(x) ((uint32_t)(int32_t)x & 0x7fffffff)
-+#define ROUND1 22
-+#define ROUND2 61
-+#define NX 3
-+#define NY 2
- /*
- * invpio2: 64 bits of 2/pi
- * pio2_1: first 39 bits of pi/2
-@@ -32,60 +39,61 @@
- * pio2_3t: pi/2 - (pio2_1+pio2_2+pio2_3)
- */
- static const double
--two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */
- pio2_1 = 1.57079632679597125389e+00, /* 0x3FF921FB, 0x54444000 */
- pio2_2 = -1.07463465549783099519e-12, /* -0x12e7b967674000.0p-92 */
- pio2_3 = 6.36831716351370313614e-25; /* 0x18a2e037074000.0p-133 */
--
- static const long double
- invpio2 = 6.36619772367581343076e-01L, /* 0xa2f9836e4e44152a.0p-64 */
- pio2_1t = -1.07463465549719416346e-12L, /* -0x973dcb3b399d747f.0p-103 */
- pio2_2t = 6.36831716351095013979e-25L, /* 0xc51701b839a25205.0p-144 */
- pio2_3t = -2.75299651904407171810e-37L; /* -0xbb5bf6c7ddd660ce.0p-185 */
-+#elif LDBL_MANT_DIG == 113
-+/* u ~< 0x1p45*pi/2 */
-+#define SMALL(u) (((u.i.se & 0x7fffU)<<16 | u.i.top) < ((0x3fff + 45)<<16 | 0x921f))
-+#define TOINT 0x1.8p112
-+#define QUOBITS(x) ((uint32_t)(int64_t)x & 0x7fffffff)
-+#define ROUND1 51
-+#define ROUND2 119
-+#define NX 5
-+#define NY 3
-+static const long double
-+invpio2 = 6.3661977236758134307553505349005747e-01L, /* 0x145f306dc9c882a53f84eafa3ea6a.0p-113 */
-+pio2_1 = 1.5707963267948966192292994253909555e+00L, /* 0x1921fb54442d18469800000000000.0p-112 */
-+pio2_1t = 2.0222662487959507323996846200947577e-21L, /* 0x13198a2e03707344a4093822299f3.0p-181 */
-+pio2_2 = 2.0222662487959507323994779168837751e-21L, /* 0x13198a2e03707344a400000000000.0p-181 */
-+pio2_2t = 2.0670321098263988236496903051604844e-43L, /* 0x127044533e63a0105df531d89cd91.0p-254 */
-+pio2_3 = 2.0670321098263988236499468110329591e-43L, /* 0x127044533e63a0105e00000000000.0p-254 */
-+pio2_3t = -2.5650587247459238361625433492959285e-65L; /* -0x159c4ec64ddaeb5f78671cbfb2210.0p-327 */
-+#endif
-
- int __rem_pio2l(long double x, long double *y)
- {
-- union IEEEl2bits u,u1;
-+ union ldshape u,uz;
- long double z,w,t,r,fn;
-- double tx[3],ty[2];
-- int e0,ex,i,j,nx,n;
-- int16_t expsign;
--
-- u.e = x;
-- expsign = u.xbits.expsign;
-- ex = expsign & 0x7fff;
-- if (ex < BIAS + 25 || (ex == BIAS + 25 && u.bits.manh < 0xc90fdaa2)) {
-- union IEEEl2bits u2;
-- int ex1;
-+ double tx[NX],ty[NY];
-+ int ex,ey,n,i;
-
-- /* |x| ~< 2^25*(pi/2), medium size */
-- /* Use a specialized rint() to get fn. Assume round-to-nearest. */
-- fn = x*invpio2 + 0x1.8p63;
-- fn = fn - 0x1.8p63;
--// FIXME
--//#ifdef HAVE_EFFICIENT_IRINT
--// n = irint(fn);
--//#else
-- n = fn;
--//#endif
-+ u.f = x;
-+ ex = u.i.se & 0x7fff;
-+ if (SMALL(u)) {
-+ /* rint(x/(pi/2)), Assume round-to-nearest. */
-+ fn = x*invpio2 + TOINT - TOINT;
-+ n = QUOBITS(fn);
- r = x-fn*pio2_1;
-- w = fn*pio2_1t; /* 1st round good to 102 bit */
-- j = ex;
-+ w = fn*pio2_1t; /* 1st round good to 102/180 bits (ld80/ld128) */
- y[0] = r-w;
-- u2.e = y[0];
-- ex1 = u2.xbits.expsign & 0x7fff;
-- i = j-ex1;
-- if (i > 22) { /* 2nd iteration needed, good to 141 */
-+ u.f = y[0];
-+ ey = u.i.se & 0x7fff;
-+ if (ex - ey > ROUND1) { /* 2nd iteration needed, good to 141/248 (ld80/ld128) */
- t = r;
- w = fn*pio2_2;
- r = t-w;
- w = fn*pio2_2t-((t-r)-w);
- y[0] = r-w;
-- u2.e = y[0];
-- ex1 = u2.xbits.expsign & 0x7fff;
-- i = j-ex1;
-- if (i > 61) { /* 3rd iteration need, 180 bits acc */
-- t = r; /* will cover all possible cases */
-+ u.f = y[0];
-+ ey = u.i.se & 0x7fff;
-+ if (ex - ey > ROUND2) { /* 3rd iteration, good to 180/316 bits */
-+ t = r; /* will cover all possible cases (not verified for ld128) */
- w = fn*pio2_3;
- r = t-w;
- w = fn*pio2_3t-((t-r)-w);
-@@ -102,23 +110,26 @@
- y[0] = y[1] = x - x;
- return 0;
- }
-- /* set z = scalbn(|x|,ilogb(x)-23) */
-- u1.e = x;
-- e0 = ex - BIAS - 23; /* e0 = ilogb(|x|)-23; */
-- u1.xbits.expsign = ex - e0;
-- z = u1.e;
-- for (i=0; i<2; i++) {
-+ /* set z = scalbn(|x|,-ilogb(x)+23) */
-+ uz.f = x;
-+ uz.i.se = 0x3fff + 23;
-+ z = uz.f;
-+ for (i=0; i < NX - 1; i++) {
- tx[i] = (double)(int32_t)z;
-- z = (z-tx[i])*two24;
-+ z = (z-tx[i])*0x1p24;
- }
-- tx[2] = z;
-- nx = 3;
-- while (tx[nx-1] == 0.0)
-- nx--; /* skip zero term */
-- n = __rem_pio2_large(tx,ty,e0,nx,2);
-- r = (long double)ty[0] + ty[1];
-- w = ty[1] - (r - ty[0]);
-- if (expsign < 0) {
-+ tx[i] = z;
-+ while (tx[i] == 0)
-+ i--;
-+ n = __rem_pio2_large(tx, ty, ex-0x3fff-23, i+1, NY);
-+ w = ty[1];
-+ if (NY == 3)
-+ w += ty[2];
-+ r = ty[0] + w;
-+ /* TODO: for ld128 this does not follow the recommendation of the
-+ comments of __rem_pio2_large which seem wrong if |ty[0]| > |ty[1]+ty[2]| */
-+ w -= r - ty[0];
-+ if (u.i.se >> 15) {
- y[0] = -r;
- y[1] = -w;
- return -n;
-diff -Nur musl-0.9.13/src/math/__signbitl.c musl-git/src/math/__signbitl.c
---- musl-0.9.13/src/math/__signbitl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/__signbitl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,11 +1,9 @@
- #include "libm.h"
-
--// FIXME: should be a macro
- #if (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
- int __signbitl(long double x)
- {
- union ldshape u = {x};
--
-- return u.bits.sign;
-+ return u.i.se >> 15;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/__sinl.c musl-git/src/math/__sinl.c
---- musl-0.9.13/src/math/__sinl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/__sinl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,4 +1,5 @@
- /* origin: FreeBSD /usr/src/lib/msun/ld80/k_sinl.c */
-+/* origin: FreeBSD /usr/src/lib/msun/ld128/k_sinl.c */
- /*
- * ====================================================
- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-@@ -13,7 +14,8 @@
-
- #include "libm.h"
-
--#if LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
-+#if (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
-+#if LDBL_MANT_DIG == 64
- /*
- * ld80 version of __sin.c. See __sin.c for most comments.
- */
-@@ -23,10 +25,8 @@
- *
- * See __cosl.c for more details about the polynomial.
- */
--
- static const long double
- S1 = -0.166666666666666666671L; /* -0xaaaaaaaaaaaaaaab.0p-66 */
--
- static const double
- S2 = 0.0083333333333333332, /* 0x11111111111111.0p-59 */
- S3 = -0.00019841269841269427, /* -0x1a01a01a019f81.0p-65 */
-@@ -35,6 +35,34 @@
- S6 = 1.6059006598854211e-10, /* 0x161242b90243b5.0p-85 */
- S7 = -7.6429779983024564e-13, /* -0x1ae42ebd1b2e00.0p-93 */
- S8 = 2.6174587166648325e-15; /* 0x179372ea0b3f64.0p-101 */
-+#define POLY(z) (S2+z*(S3+z*(S4+z*(S5+z*(S6+z*(S7+z*S8))))))
-+#elif LDBL_MANT_DIG == 113
-+/*
-+ * ld128 version of __sin.c. See __sin.c for most comments.
-+ */
-+/*
-+ * Domain [-0.7854, 0.7854], range ~[-1.53e-37, 1.659e-37]
-+ * |sin(x)/x - s(x)| < 2**-122.1
-+ *
-+ * See __cosl.c for more details about the polynomial.
-+ */
-+static const long double
-+S1 = -0.16666666666666666666666666666666666606732416116558L,
-+S2 = 0.0083333333333333333333333333333331135404851288270047L,
-+S3 = -0.00019841269841269841269841269839935785325638310428717L,
-+S4 = 0.27557319223985890652557316053039946268333231205686e-5L,
-+S5 = -0.25052108385441718775048214826384312253862930064745e-7L,
-+S6 = 0.16059043836821614596571832194524392581082444805729e-9L,
-+S7 = -0.76471637318198151807063387954939213287488216303768e-12L,
-+S8 = 0.28114572543451292625024967174638477283187397621303e-14L;
-+static const double
-+S9 = -0.82206352458348947812512122163446202498005154296863e-17,
-+S10 = 0.19572940011906109418080609928334380560135358385256e-19,
-+S11 = -0.38680813379701966970673724299207480965452616911420e-22,
-+S12 = 0.64038150078671872796678569586315881020659912139412e-25;
-+#define POLY(z) (S2+z*(S3+z*(S4+z*(S5+z*(S6+z*(S7+z*(S8+ \
-+ z*(S9+z*(S10+z*(S11+z*S12))))))))))
-+#endif
-
- long double __sinl(long double x, long double y, int iy)
- {
-@@ -42,7 +70,7 @@
-
- z = x*x;
- v = z*x;
-- r = S2+z*(S3+z*(S4+z*(S5+z*(S6+z*(S7+z*S8)))));
-+ r = POLY(z);
- if (iy == 0)
- return x+v*(S1+z*r);
- return x-((z*(0.5*y-v*r)-y)-v*S1);
-diff -Nur musl-0.9.13/src/math/__tanl.c musl-git/src/math/__tanl.c
---- musl-0.9.13/src/math/__tanl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/__tanl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,4 +1,5 @@
- /* origin: FreeBSD /usr/src/lib/msun/ld80/k_tanl.c */
-+/* origin: FreeBSD /usr/src/lib/msun/ld128/k_tanl.c */
- /*
- * ====================================================
- * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
-@@ -12,7 +13,8 @@
-
- #include "libm.h"
-
--#if LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
-+#if (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
-+#if LDBL_MANT_DIG == 64
- /*
- * ld80 version of __tan.c. See __tan.c for most comments.
- */
-@@ -22,14 +24,12 @@
- *
- * See __cosl.c for more details about the polynomial.
- */
--
- static const long double
- T3 = 0.333333333333333333180L, /* 0xaaaaaaaaaaaaaaa5.0p-65 */
- T5 = 0.133333333333333372290L, /* 0x88888888888893c3.0p-66 */
- T7 = 0.0539682539682504975744L, /* 0xdd0dd0dd0dc13ba2.0p-68 */
- pio4 = 0.785398163397448309628L, /* 0xc90fdaa22168c235.0p-64 */
- pio4lo = -1.25413940316708300586e-20L; /* -0xece675d1fc8f8cbb.0p-130 */
--
- static const double
- T9 = 0.021869488536312216, /* 0x1664f4882cc1c2.0p-58 */
- T11 = 0.0088632355256619590, /* 0x1226e355c17612.0p-59 */
-@@ -44,6 +44,59 @@
- T29 = 0.0000078293456938132840, /* 0x106b59141a6cb3.0p-69 */
- T31 = -0.0000032609076735050182, /* -0x1b5abef3ba4b59.0p-71 */
- T33 = 0.0000023261313142559411; /* 0x13835436c0c87f.0p-71 */
-+#define RPOLY(w) (T5 + w * (T9 + w * (T13 + w * (T17 + w * (T21 + \
-+ w * (T25 + w * (T29 + w * T33)))))))
-+#define VPOLY(w) (T7 + w * (T11 + w * (T15 + w * (T19 + w * (T23 + \
-+ w * (T27 + w * T31))))))
-+#elif LDBL_MANT_DIG == 113
-+/*
-+ * ld128 version of __tan.c. See __tan.c for most comments.
-+ */
-+/*
-+ * Domain [-0.67434, 0.67434], range ~[-3.37e-36, 1.982e-37]
-+ * |tan(x)/x - t(x)| < 2**-117.8 (XXX should be ~1e-37)
-+ *
-+ * See __cosl.c for more details about the polynomial.
-+ */
-+static const long double
-+T3 = 0x1.5555555555555555555555555553p-2L,
-+T5 = 0x1.1111111111111111111111111eb5p-3L,
-+T7 = 0x1.ba1ba1ba1ba1ba1ba1ba1b694cd6p-5L,
-+T9 = 0x1.664f4882c10f9f32d6bbe09d8bcdp-6L,
-+T11 = 0x1.226e355e6c23c8f5b4f5762322eep-7L,
-+T13 = 0x1.d6d3d0e157ddfb5fed8e84e27b37p-9L,
-+T15 = 0x1.7da36452b75e2b5fce9ee7c2c92ep-10L,
-+T17 = 0x1.355824803674477dfcf726649efep-11L,
-+T19 = 0x1.f57d7734d1656e0aceb716f614c2p-13L,
-+T21 = 0x1.967e18afcb180ed942dfdc518d6cp-14L,
-+T23 = 0x1.497d8eea21e95bc7e2aa79b9f2cdp-15L,
-+T25 = 0x1.0b132d39f055c81be49eff7afd50p-16L,
-+T27 = 0x1.b0f72d33eff7bfa2fbc1059d90b6p-18L,
-+T29 = 0x1.5ef2daf21d1113df38d0fbc00267p-19L,
-+T31 = 0x1.1c77d6eac0234988cdaa04c96626p-20L,
-+T33 = 0x1.cd2a5a292b180e0bdd701057dfe3p-22L,
-+T35 = 0x1.75c7357d0298c01a31d0a6f7d518p-23L,
-+T37 = 0x1.2f3190f4718a9a520f98f50081fcp-24L,
-+pio4 = 0x1.921fb54442d18469898cc51701b8p-1L,
-+pio4lo = 0x1.cd129024e088a67cc74020bbea60p-116L;
-+static const double
-+T39 = 0.000000028443389121318352, /* 0x1e8a7592977938.0p-78 */
-+T41 = 0.000000011981013102001973, /* 0x19baa1b1223219.0p-79 */
-+T43 = 0.0000000038303578044958070, /* 0x107385dfb24529.0p-80 */
-+T45 = 0.0000000034664378216909893, /* 0x1dc6c702a05262.0p-81 */
-+T47 = -0.0000000015090641701997785, /* -0x19ecef3569ebb6.0p-82 */
-+T49 = 0.0000000029449552300483952, /* 0x194c0668da786a.0p-81 */
-+T51 = -0.0000000022006995706097711, /* -0x12e763b8845268.0p-81 */
-+T53 = 0.0000000015468200913196612, /* 0x1a92fc98c29554.0p-82 */
-+T55 = -0.00000000061311613386849674, /* -0x151106cbc779a9.0p-83 */
-+T57 = 1.4912469681508012e-10; /* 0x147edbdba6f43a.0p-85 */
-+#define RPOLY(w) (T5 + w * (T9 + w * (T13 + w * (T17 + w * (T21 + \
-+ w * (T25 + w * (T29 + w * (T33 + w * (T37 + w * (T41 + \
-+ w * (T45 + w * (T49 + w * (T53 + w * T57)))))))))))))
-+#define VPOLY(w) (T7 + w * (T11 + w * (T15 + w * (T19 + w * (T23 + \
-+ w * (T27 + w * (T31 + w * (T35 + w * (T39 + w * (T43 + \
-+ w * (T47 + w * (T51 + w * T55))))))))))))
-+#endif
-
- long double __tanl(long double x, long double y, int odd) {
- long double z, r, v, w, s, a, t;
-@@ -62,10 +115,8 @@
- }
- z = x * x;
- w = z * z;
-- r = T5 + w * (T9 + w * (T13 + w * (T17 + w * (T21 +
-- w * (T25 + w * (T29 + w * T33))))));
-- v = z * (T7 + w * (T11 + w * (T15 + w * (T19 + w * (T23 +
-- w * (T27 + w * T31))))));
-+ r = RPOLY(w);
-+ v = z * VPOLY(w);
- s = z * x;
- r = y + z * (s * (r + v) + y) + T3 * s;
- w = x + r;
-@@ -76,7 +127,6 @@
- }
- if (!odd)
- return w;
--
- /*
- * if allow error up to 2 ulp, simply return
- * -1.0 / (x+r) here
-diff -Nur musl-0.9.13/src/math/acoshf.c musl-git/src/math/acoshf.c
---- musl-0.9.13/src/math/acoshf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/acoshf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -3,14 +3,15 @@
- /* acosh(x) = log(x + sqrt(x*x-1)) */
- float acoshf(float x)
- {
-- union {float f; int32_t i;} u = {.f = x};
-+ union {float f; uint32_t i;} u = {x};
-+ uint32_t a = u.i & 0x7fffffff;
-
-- if (u.i < 0x3f800000+(1<<23))
-- /* x < 2, invalid if x < 1 or nan */
-+ if (a < 0x3f800000+(1<<23))
-+ /* |x| < 2, invalid if x < 1 or nan */
- /* up to 2ulp error in [1,1.125] */
- return log1pf(x-1 + sqrtf((x-1)*(x-1)+2*(x-1)));
-- if (u.i < 0x3f800000+(12<<23))
-- /* x < 0x1p12 */
-+ if (a < 0x3f800000+(12<<23))
-+ /* |x| < 0x1p12 */
- return logf(2*x - 1/(x+sqrtf(x*x-1)));
- /* x >= 0x1p12 */
- return logf(x) + 0.693147180559945309417232121458176568f;
-diff -Nur musl-0.9.13/src/math/acoshl.c musl-git/src/math/acoshl.c
---- musl-0.9.13/src/math/acoshl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/acoshl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -9,16 +9,14 @@
- /* acosh(x) = log(x + sqrt(x*x-1)) */
- long double acoshl(long double x)
- {
-- union {
-- long double f;
-- struct{uint64_t m; int16_t se; uint16_t pad;} i;
-- } u = {.f = x};
-+ union ldshape u = {x};
-+ int e = u.i.se & 0x7fff;
-
-- if (u.i.se < 0x3fff + 1)
-- /* x < 2, invalid if x < 1 or nan */
-+ if (e < 0x3fff + 1)
-+ /* |x| < 2, invalid if x < 1 or nan */
- return log1pl(x-1 + sqrtl((x-1)*(x-1)+2*(x-1)));
-- if (u.i.se < 0x3fff + 32)
-- /* x < 0x1p32 */
-+ if (e < 0x3fff + 32)
-+ /* |x| < 0x1p32 */
- return logl(2*x - 1/(x+sqrtl(x*x-1)));
- return logl(x) + 0.693147180559945309417232121458176568L;
- }
-diff -Nur musl-0.9.13/src/math/acosl.c musl-git/src/math/acosl.c
---- musl-0.9.13/src/math/acosl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/acosl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -23,46 +23,45 @@
- }
- #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
- #include "__invtrigl.h"
-+#if LDBL_MANT_DIG == 64
-+#define CLEARBOTTOM(u) (u.i.m &= -1ULL << 32)
-+#elif LDBL_MANT_DIG == 113
-+#define CLEARBOTTOM(u) (u.i.lo = 0)
-+#endif
-
- long double acosl(long double x)
- {
-- union IEEEl2bits u;
-- long double z, w, s, c, df;
-- int16_t expsign, expt;
-- u.e = x;
-- expsign = u.xbits.expsign;
-- expt = expsign & 0x7fff;
-+ union ldshape u = {x};
-+ long double z, s, c, f;
-+ uint16_t e = u.i.se & 0x7fff;
-+
- /* |x| >= 1 or nan */
-- if (expt >= 0x3fff) {
-- if (expt == 0x3fff &&
-- ((u.bits.manh & ~LDBL_NBIT) | u.bits.manl) == 0) {
-- if (expsign > 0)
-- return 0; /* acos(1) = 0 */
-- return 2*pio2_hi + 0x1p-120f; /* acos(-1)= pi */
-- }
-- return 0/(x-x); /* acos(|x|>1) is NaN */
-+ if (e >= 0x3fff) {
-+ if (x == 1)
-+ return 0;
-+ if (x == -1)
-+ return 2*pio2_hi + 0x1p-120f;
-+ return 0/(x-x);
- }
- /* |x| < 0.5 */
-- if (expt < 0x3fff - 1) {
-- if (expt < 0x3fff - 65)
-- return pio2_hi + 0x1p-120f; /* x < 0x1p-65: acosl(x)=pi/2 */
-- return pio2_hi - (x - (pio2_lo - x * __invtrigl_R(x*x)));
-+ if (e < 0x3fff - 1) {
-+ if (e < 0x3fff - LDBL_MANT_DIG - 1)
-+ return pio2_hi + 0x1p-120f;
-+ return pio2_hi - (__invtrigl_R(x*x)*x - pio2_lo + x);
- }
- /* x < -0.5 */
-- if (expsign < 0) {
-- z = (1.0 + x) * 0.5;
-+ if (u.i.se >> 15) {
-+ z = (1 + x)*0.5;
- s = sqrtl(z);
-- w = __invtrigl_R(z) * s - pio2_lo;
-- return 2*(pio2_hi - (s + w));
-+ return 2*(pio2_hi - (__invtrigl_R(z)*s - pio2_lo + s));
- }
- /* x > 0.5 */
-- z = (1.0 - x) * 0.5;
-+ z = (1 - x)*0.5;
- s = sqrtl(z);
-- u.e = s;
-- u.bits.manl = 0;
-- df = u.e;
-- c = (z - df * df) / (s + df);
-- w = __invtrigl_R(z) * s + c;
-- return 2*(df + w);
-+ u.f = s;
-+ CLEARBOTTOM(u);
-+ f = u.f;
-+ c = (z - f*f)/(s + f);
-+ return 2*(__invtrigl_R(z)*s + c + f);
- }
- #endif
-diff -Nur musl-0.9.13/src/math/asinhl.c musl-git/src/math/asinhl.c
---- musl-0.9.13/src/math/asinhl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/asinhl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -9,10 +9,7 @@
- /* asinh(x) = sign(x)*log(|x|+sqrt(x*x+1)) ~= x - x^3/6 + o(x^5) */
- long double asinhl(long double x)
- {
-- union {
-- long double f;
-- struct{uint64_t m; uint16_t se; uint16_t pad;} i;
-- } u = {.f = x};
-+ union ldshape u = {x};
- unsigned e = u.i.se & 0x7fff;
- unsigned s = u.i.se >> 15;
-
-diff -Nur musl-0.9.13/src/math/asinl.c musl-git/src/math/asinl.c
---- musl-0.9.13/src/math/asinl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/asinl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -23,27 +23,29 @@
- }
- #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
- #include "__invtrigl.h"
--/* 0.95 */
--#define THRESH ((0xe666666666666666ULL>>(64-(LDBL_MANH_SIZE-1)))|LDBL_NBIT)
-+#if LDBL_MANT_DIG == 64
-+#define CLOSETO1(u) (u.i.m>>56 >= 0xf7)
-+#define CLEARBOTTOM(u) (u.i.m &= -1ULL << 32)
-+#elif LDBL_MANT_DIG == 113
-+#define CLOSETO1(u) (u.i.top >= 0xee00)
-+#define CLEARBOTTOM(u) (u.i.lo = 0)
-+#endif
-
- long double asinl(long double x)
- {
-- union IEEEl2bits u;
-- long double z,r,s;
-- uint16_t expsign, expt;
-+ union ldshape u = {x};
-+ long double z, r, s;
-+ uint16_t e = u.i.se & 0x7fff;
-+ int sign = u.i.se >> 15;
-
-- u.e = x;
-- expsign = u.xbits.expsign;
-- expt = expsign & 0x7fff;
-- if (expt >= 0x3fff) { /* |x| >= 1 or nan */
-- if (expt == 0x3fff &&
-- ((u.bits.manh&~LDBL_NBIT)|u.bits.manl) == 0)
-- /* asin(+-1)=+-pi/2 with inexact */
-+ if (e >= 0x3fff) { /* |x| >= 1 or nan */
-+ /* asin(+-1)=+-pi/2 with inexact */
-+ if (x == 1 || x == -1)
- return x*pio2_hi + 0x1p-120f;
- return 0/(x-x);
- }
-- if (expt < 0x3fff - 1) { /* |x| < 0.5 */
-- if (expt < 0x3fff - 32) { /* |x|<0x1p-32, asinl(x)=x */
-+ if (e < 0x3fff - 1) { /* |x| < 0.5 */
-+ if (e < 0x3fff - (LDBL_MANT_DIG+1)/2) {
- /* return x with inexact if x!=0 */
- FORCE_EVAL(x + 0x1p120f);
- return x;
-@@ -54,18 +56,16 @@
- z = (1.0 - fabsl(x))*0.5;
- s = sqrtl(z);
- r = __invtrigl_R(z);
-- if (u.bits.manh >= THRESH) { /* if |x| is close to 1 */
-+ if (CLOSETO1(u)) {
- x = pio2_hi - (2*(s+s*r)-pio2_lo);
- } else {
- long double f, c;
-- u.e = s;
-- u.bits.manl = 0;
-- f = u.e;
-- c = (z-f*f)/(s+f);
-+ u.f = s;
-+ CLEARBOTTOM(u);
-+ f = u.f;
-+ c = (z - f*f)/(s + f);
- x = 0.5*pio2_hi-(2*s*r - (pio2_lo-2*c) - (0.5*pio2_hi-2*f));
- }
-- if (expsign>>15)
-- return -x;
-- return x;
-+ return sign ? -x : x;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/atan2l.c musl-git/src/math/atan2l.c
---- musl-0.9.13/src/math/atan2l.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/atan2l.c 2013-09-16 20:31:39.000000000 +0200
-@@ -27,56 +27,50 @@
-
- long double atan2l(long double y, long double x)
- {
-- union IEEEl2bits ux, uy;
-+ union ldshape ux, uy;
- long double z;
-- int m;
-- uint16_t exptx, expsignx, expty, expsigny;
-+ int m, ex, ey;
-
- if (isnan(x) || isnan(y))
- return x+y;
- if (x == 1)
- return atanl(y);
-- uy.e = y;
-- expsigny = uy.xbits.expsign;
-- expty = expsigny & 0x7fff;
-- ux.e = x;
-- expsignx = ux.xbits.expsign;
-- exptx = expsignx & 0x7fff;
-- m = ((expsigny>>15)&1) | ((expsignx>>14)&2); /* 2*sign(x)+sign(y) */
--
-+ ux.f = x;
-+ uy.f = y;
-+ ex = ux.i.se & 0x7fff;
-+ ey = uy.i.se & 0x7fff;
-+ m = 2*(ux.i.se>>15) | uy.i.se>>15;
- if (y == 0) {
- switch(m) {
- case 0:
- case 1: return y; /* atan(+-0,+anything)=+-0 */
-- case 2: return 2*pio2_hi+0x1p-120f; /* atan(+0,-anything) = pi */
-- case 3: return -2*pio2_hi-0x1p-120f; /* atan(-0,-anything) =-pi */
-+ case 2: return 2*pio2_hi; /* atan(+0,-anything) = pi */
-+ case 3: return -2*pio2_hi; /* atan(-0,-anything) =-pi */
- }
- }
- if (x == 0)
-- return m&1 ? -pio2_hi-0x1p-120f : pio2_hi+0x1p-120f;
-- /* when x is INF */
-- if (exptx == 0x7fff) {
-- if (expty == 0x7fff) {
-+ return m&1 ? -pio2_hi : pio2_hi;
-+ if (ex == 0x7fff) {
-+ if (ey == 0x7fff) {
- switch(m) {
-- case 0: return pio2_hi*0.5+0x1p-120f; /* atan(+INF,+INF) */
-- case 1: return -pio2_hi*0.5-0x1p-120f; /* atan(-INF,+INF) */
-- case 2: return 1.5*pio2_hi+0x1p-120f; /* atan(+INF,-INF) */
-- case 3: return -1.5*pio2_hi-0x1p-120f; /* atan(-INF,-INF) */
-+ case 0: return pio2_hi/2; /* atan(+INF,+INF) */
-+ case 1: return -pio2_hi/2; /* atan(-INF,+INF) */
-+ case 2: return 1.5*pio2_hi; /* atan(+INF,-INF) */
-+ case 3: return -1.5*pio2_hi; /* atan(-INF,-INF) */
- }
- } else {
- switch(m) {
- case 0: return 0.0; /* atan(+...,+INF) */
- case 1: return -0.0; /* atan(-...,+INF) */
-- case 2: return 2*pio2_hi+0x1p-120f; /* atan(+...,-INF) */
-- case 3: return -2*pio2_hi-0x1p-120f; /* atan(-...,-INF) */
-+ case 2: return 2*pio2_hi; /* atan(+...,-INF) */
-+ case 3: return -2*pio2_hi; /* atan(-...,-INF) */
- }
- }
- }
-- /* when y is INF */
-- if (exptx+120 < expty || expty == 0x7fff)
-- return m&1 ? -pio2_hi-0x1p-120f : pio2_hi+0x1p-120f;
--
-- if ((m&2) && expty+120 < exptx) /* |y/x| tiny, x<0 */
-+ if (ex+120 < ey || ey == 0x7fff)
-+ return m&1 ? -pio2_hi : pio2_hi;
-+ /* z = atan(|y/x|) without spurious underflow */
-+ if ((m&2) && ey+120 < ex) /* |y/x| < 0x1p-120, x<0 */
- z = 0.0;
- else
- z = atanl(fabsl(y/x));
-diff -Nur musl-0.9.13/src/math/atanh.c musl-git/src/math/atanh.c
---- musl-0.9.13/src/math/atanh.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/atanh.c 2013-09-16 20:31:39.000000000 +0200
-@@ -6,16 +6,24 @@
- union {double f; uint64_t i;} u = {.f = x};
- unsigned e = u.i >> 52 & 0x7ff;
- unsigned s = u.i >> 63;
-+ double_t y;
-
- /* |x| */
- u.i &= (uint64_t)-1/2;
-- x = u.f;
-+ y = u.f;
-
- if (e < 0x3ff - 1) {
-- /* |x| < 0.5, up to 1.7ulp error */
-- x = 0.5*log1p(2*x + 2*x*x/(1-x));
-+ if (e < 0x3ff - 32) {
-+ /* handle underflow */
-+ if (e == 0)
-+ FORCE_EVAL((float)y);
-+ } else {
-+ /* |x| < 0.5, up to 1.7ulp error */
-+ y = 0.5*log1p(2*y + 2*y*y/(1-y));
-+ }
- } else {
-- x = 0.5*log1p(2*x/(1-x));
-+ /* avoid overflow */
-+ y = 0.5*log1p(2*(y/(1-y)));
- }
-- return s ? -x : x;
-+ return s ? -y : y;
- }
-diff -Nur musl-0.9.13/src/math/atanhf.c musl-git/src/math/atanhf.c
---- musl-0.9.13/src/math/atanhf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/atanhf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -5,16 +5,24 @@
- {
- union {float f; uint32_t i;} u = {.f = x};
- unsigned s = u.i >> 31;
-+ float_t y;
-
- /* |x| */
- u.i &= 0x7fffffff;
-- x = u.f;
-+ y = u.f;
-
- if (u.i < 0x3f800000 - (1<<23)) {
-- /* |x| < 0.5, up to 1.7ulp error */
-- x = 0.5f*log1pf(2*x + 2*x*x/(1-x));
-+ if (u.i < 0x3f800000 - (32<<23)) {
-+ /* handle underflow */
-+ if (u.i < (1<<23))
-+ FORCE_EVAL((float)(y*y));
-+ } else {
-+ /* |x| < 0.5, up to 1.7ulp error */
-+ y = 0.5f*log1pf(2*y + 2*y*y/(1-y));
-+ }
- } else {
-- x = 0.5f*log1pf(2*x/(1-x));
-+ /* avoid overflow */
-+ y = 0.5f*log1pf(2*(y/(1-y)));
- }
-- return s ? -x : x;
-+ return s ? -y : y;
- }
-diff -Nur musl-0.9.13/src/math/atanhl.c musl-git/src/math/atanhl.c
---- musl-0.9.13/src/math/atanhl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/atanhl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -9,10 +9,7 @@
- /* atanh(x) = log((1+x)/(1-x))/2 = log1p(2x/(1-x))/2 ~= x + x^3/3 + o(x^5) */
- long double atanhl(long double x)
- {
-- union {
-- long double f;
-- struct{uint64_t m; uint16_t se; uint16_t pad;} i;
-- } u = {.f = x};
-+ union ldshape u = {x};
- unsigned e = u.i.se & 0x7fff;
- unsigned s = u.i.se >> 15;
-
-@@ -20,11 +17,18 @@
- u.i.se = e;
- x = u.f;
-
-- if (e < 0x3fff - 1) {
-- /* |x| < 0.5, up to 1.7ulp error */
-- x = 0.5*log1pl(2*x + 2*x*x/(1-x));
-+ if (e < 0x3ff - 1) {
-+ if (e < 0x3ff - LDBL_MANT_DIG/2) {
-+ /* handle underflow */
-+ if (e == 0)
-+ FORCE_EVAL((float)x);
-+ } else {
-+ /* |x| < 0.5, up to 1.7ulp error */
-+ x = 0.5*log1pl(2*x + 2*x*x/(1-x));
-+ }
- } else {
-- x = 0.5*log1pl(2*x/(1-x));
-+ /* avoid overflow */
-+ x = 0.5*log1pl(2*(x/(1-x)));
- }
- return s ? -x : x;
- }
-diff -Nur musl-0.9.13/src/math/atanl.c musl-git/src/math/atanl.c
---- musl-0.9.13/src/math/atanl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/atanl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -23,6 +23,9 @@
- }
- #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
-
-+#if LDBL_MANT_DIG == 64
-+#define EXPMAN(u) ((u.i.se & 0x7fff)<<8 | (u.i.m>>55 & 0xff))
-+
- static const long double atanhi[] = {
- 4.63647609000806116202e-01L,
- 7.85398163397448309628e-01L,
-@@ -64,32 +67,85 @@
- return aT[1] + x * (aT[3] + x * (aT[5] + x * (aT[7] +
- x * (aT[9] + x * aT[11]))));
- }
-+#elif LDBL_MANT_DIG == 113
-+#define EXPMAN(u) ((u.i.se & 0x7fff)<<8 | u.i.top>>8)
-+
-+const long double atanhi[] = {
-+ 4.63647609000806116214256231461214397e-01L,
-+ 7.85398163397448309615660845819875699e-01L,
-+ 9.82793723247329067985710611014666038e-01L,
-+ 1.57079632679489661923132169163975140e+00L,
-+};
-+
-+const long double atanlo[] = {
-+ 4.89509642257333492668618435220297706e-36L,
-+ 2.16795253253094525619926100651083806e-35L,
-+ -2.31288434538183565909319952098066272e-35L,
-+ 4.33590506506189051239852201302167613e-35L,
-+};
-+
-+const long double aT[] = {
-+ 3.33333333333333333333333333333333125e-01L,
-+ -1.99999999999999999999999999999180430e-01L,
-+ 1.42857142857142857142857142125269827e-01L,
-+ -1.11111111111111111111110834490810169e-01L,
-+ 9.09090909090909090908522355708623681e-02L,
-+ -7.69230769230769230696553844935357021e-02L,
-+ 6.66666666666666660390096773046256096e-02L,
-+ -5.88235294117646671706582985209643694e-02L,
-+ 5.26315789473666478515847092020327506e-02L,
-+ -4.76190476189855517021024424991436144e-02L,
-+ 4.34782608678695085948531993458097026e-02L,
-+ -3.99999999632663469330634215991142368e-02L,
-+ 3.70370363987423702891250829918659723e-02L,
-+ -3.44827496515048090726669907612335954e-02L,
-+ 3.22579620681420149871973710852268528e-02L,
-+ -3.03020767654269261041647570626778067e-02L,
-+ 2.85641979882534783223403715930946138e-02L,
-+ -2.69824879726738568189929461383741323e-02L,
-+ 2.54194698498808542954187110873675769e-02L,
-+ -2.35083879708189059926183138130183215e-02L,
-+ 2.04832358998165364349957325067131428e-02L,
-+ -1.54489555488544397858507248612362957e-02L,
-+ 8.64492360989278761493037861575248038e-03L,
-+ -2.58521121597609872727919154569765469e-03L,
-+};
-+
-+static long double T_even(long double x)
-+{
-+ return (aT[0] + x * (aT[2] + x * (aT[4] + x * (aT[6] + x * (aT[8] +
-+ x * (aT[10] + x * (aT[12] + x * (aT[14] + x * (aT[16] +
-+ x * (aT[18] + x * (aT[20] + x * aT[22])))))))))));
-+}
-+
-+static long double T_odd(long double x)
-+{
-+ return (aT[1] + x * (aT[3] + x * (aT[5] + x * (aT[7] + x * (aT[9] +
-+ x * (aT[11] + x * (aT[13] + x * (aT[15] + x * (aT[17] +
-+ x * (aT[19] + x * (aT[21] + x * aT[23])))))))))));
-+}
-+#endif
-
- long double atanl(long double x)
- {
-- union IEEEl2bits u;
-- long double w,s1,s2,z;
-+ union ldshape u = {x};
-+ long double w, s1, s2, z;
- int id;
-- uint16_t expsign, expt;
-- uint32_t expman;
-+ unsigned e = u.i.se & 0x7fff;
-+ unsigned sign = u.i.se >> 15;
-+ unsigned expman;
-
-- u.e = x;
-- expsign = u.xbits.expsign;
-- expt = expsign & 0x7fff;
-- if (expt >= 0x3fff + 65) { /* if |x| is large, atan(x)~=pi/2 */
-- if (expt == 0x7fff &&
-- ((u.bits.manh&~LDBL_NBIT)|u.bits.manl)!=0) /* NaN */
-- return x+x;
-- z = atanhi[3] + 0x1p-120f;
-- return expsign>>15 ? -z : z;
-+ if (e >= 0x3fff + LDBL_MANT_DIG + 1) { /* if |x| is large, atan(x)~=pi/2 */
-+ if (isnan(x))
-+ return x;
-+ return sign ? -atanhi[3] : atanhi[3];
- }
- /* Extract the exponent and the first few bits of the mantissa. */
-- /* XXX There should be a more convenient way to do this. */
-- expman = (expt << 8) | ((u.bits.manh >> (LDBL_MANH_SIZE - 9)) & 0xff);
-+ expman = EXPMAN(u);
- if (expman < ((0x3fff - 2) << 8) + 0xc0) { /* |x| < 0.4375 */
-- if (expt < 0x3fff - 32) { /* if |x| is small, atanl(x)~=x */
-+ if (e < 0x3fff - (LDBL_MANT_DIG+1)/2) { /* if |x| is small, atanl(x)~=x */
- /* raise underflow if subnormal */
-- if (expt == 0)
-+ if (e == 0)
- FORCE_EVAL((float)x);
- return x;
- }
-@@ -108,7 +164,7 @@
- if (expman < ((0x3fff + 1) << 8) + 0x38) { /* |x| < 2.4375 */
- id = 2;
- x = (x-1.5)/(1.0+1.5*x);
-- } else { /* 2.4375 <= |x| < 2^ATAN_CONST */
-+ } else { /* 2.4375 <= |x| */
- id = 3;
- x = -1.0/x;
- }
-@@ -123,6 +179,6 @@
- if (id < 0)
- return x - x*(s1+s2);
- z = atanhi[id] - ((x*(s1+s2) - atanlo[id]) - x);
-- return expsign>>15 ? -z : z;
-+ return sign ? -z : z;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/cbrt.c musl-git/src/math/cbrt.c
---- musl-0.9.13/src/math/cbrt.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/cbrt.c 2013-09-16 20:31:39.000000000 +0200
-@@ -15,7 +15,8 @@
- * Return cube root of x
- */
-
--#include "libm.h"
-+#include <math.h>
-+#include <stdint.h>
-
- static const uint32_t
- B1 = 715094163, /* B1 = (1023-1023/3-0.03306235651)*2**20 */
-@@ -31,15 +32,10 @@
-
- double cbrt(double x)
- {
-- int32_t hx;
-- union dshape u;
-- double r,s,t=0.0,w;
-- uint32_t sign;
-- uint32_t high,low;
--
-- EXTRACT_WORDS(hx, low, x);
-- sign = hx & 0x80000000;
-- hx ^= sign;
-+ union {double f; uint64_t i;} u = {x};
-+ double_t r,s,t,w;
-+ uint32_t hx = u.i>>32 & 0x7fffffff;
-+
- if (hx >= 0x7ff00000) /* cbrt(NaN,INF) is itself */
- return x+x;
-
-@@ -59,14 +55,16 @@
- * division rounds towards minus infinity; this is also efficient.
- */
- if (hx < 0x00100000) { /* zero or subnormal? */
-- if ((hx|low) == 0)
-+ u.f = x*0x1p54;
-+ hx = u.i>>32 & 0x7fffffff;
-+ if (hx == 0)
- return x; /* cbrt(0) is itself */
-- SET_HIGH_WORD(t, 0x43500000); /* set t = 2**54 */
-- t *= x;
-- GET_HIGH_WORD(high, t);
-- INSERT_WORDS(t, sign|((high&0x7fffffff)/3+B2), 0);
-+ hx = hx/3 + B2;
- } else
-- INSERT_WORDS(t, sign|(hx/3+B1), 0);
-+ hx = hx/3 + B1;
-+ u.i &= 1ULL<<63;
-+ u.i |= (uint64_t)hx << 32;
-+ t = u.f;
-
- /*
- * New cbrt to 23 bits:
-@@ -76,7 +74,7 @@
- * has produced t such than |t/cbrt(x) - 1| ~< 1/32, and cubing this
- * gives us bounds for r = t**3/x.
- *
-- * Try to optimize for parallel evaluation as in k_tanf.c.
-+ * Try to optimize for parallel evaluation as in __tanf.c.
- */
- r = (t*t)*(t/x);
- t = t*((P0+r*(P1+r*P2))+((r*r)*r)*(P3+r*P4));
-@@ -91,9 +89,9 @@
- * 0.667; the error in the rounded t can be up to about 3 23-bit ulps
- * before the final error is larger than 0.667 ulps.
- */
-- u.value = t;
-- u.bits = (u.bits + 0x80000000) & 0xffffffffc0000000ULL;
-- t = u.value;
-+ u.f = t;
-+ u.i = (u.i + 0x80000000) & 0xffffffffc0000000ULL;
-+ t = u.f;
-
- /* one step Newton iteration to 53 bits with error < 0.667 ulps */
- s = t*t; /* t*t is exact */
-diff -Nur musl-0.9.13/src/math/cbrtf.c musl-git/src/math/cbrtf.c
---- musl-0.9.13/src/math/cbrtf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/cbrtf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -17,7 +17,8 @@
- * Return cube root of x
- */
-
--#include "libm.h"
-+#include <math.h>
-+#include <stdint.h>
-
- static const unsigned
- B1 = 709958130, /* B1 = (127-127.0/3-0.03306235651)*2**23 */
-@@ -25,15 +26,10 @@
-
- float cbrtf(float x)
- {
-- double r,T;
-- float t;
-- int32_t hx;
-- uint32_t sign;
-- uint32_t high;
--
-- GET_FLOAT_WORD(hx, x);
-- sign = hx & 0x80000000;
-- hx ^= sign;
-+ double_t r,T;
-+ union {float f; uint32_t i;} u = {x};
-+ uint32_t hx = u.i & 0x7fffffff;
-+
- if (hx >= 0x7f800000) /* cbrt(NaN,INF) is itself */
- return x + x;
-
-@@ -41,28 +37,29 @@
- if (hx < 0x00800000) { /* zero or subnormal? */
- if (hx == 0)
- return x; /* cbrt(+-0) is itself */
-- SET_FLOAT_WORD(t, 0x4b800000); /* set t = 2**24 */
-- t *= x;
-- GET_FLOAT_WORD(high, t);
-- SET_FLOAT_WORD(t, sign|((high&0x7fffffff)/3+B2));
-+ u.f = x*0x1p24f;
-+ hx = u.i & 0x7fffffff;
-+ hx = hx/3 + B2;
- } else
-- SET_FLOAT_WORD(t, sign|(hx/3+B1));
-+ hx = hx/3 + B1;
-+ u.i &= 0x80000000;
-+ u.i |= hx;
-
- /*
- * First step Newton iteration (solving t*t-x/t == 0) to 16 bits. In
- * double precision so that its terms can be arranged for efficiency
- * without causing overflow or underflow.
- */
-- T = t;
-+ T = u.f;
- r = T*T*T;
-- T = T*((double)x+x+r)/(x+r+r);
-+ T = T*((double_t)x+x+r)/(x+r+r);
-
- /*
- * Second step Newton iteration to 47 bits. In double precision for
- * efficiency and accuracy.
- */
- r = T*T*T;
-- T = T*((double)x+x+r)/(x+r+r);
-+ T = T*((double_t)x+x+r)/(x+r+r);
-
- /* rounding to 24 bits is perfect in round-to-nearest mode */
- return T;
-diff -Nur musl-0.9.13/src/math/cbrtl.c musl-git/src/math/cbrtl.c
---- musl-0.9.13/src/math/cbrtl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/cbrtl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -23,58 +23,50 @@
- return cbrt(x);
- }
- #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
--
--#define BIAS (LDBL_MAX_EXP - 1)
- static const unsigned B1 = 709958130; /* B1 = (127-127.0/3-0.03306235651)*2**23 */
-
- long double cbrtl(long double x)
- {
-- union IEEEl2bits u, v;
-+ union ldshape u = {x}, v;
-+ union {float f; uint32_t i;} uft;
- long double r, s, t, w;
-- double dr, dt, dx;
-- float ft, fx;
-- uint32_t hx;
-- uint16_t expsign;
-- int k;
--
-- u.e = x;
-- expsign = u.xbits.expsign;
-- k = expsign & 0x7fff;
-+ double_t dr, dt, dx;
-+ float_t ft;
-+ int e = u.i.se & 0x7fff;
-+ int sign = u.i.se & 0x8000;
-
- /*
- * If x = +-Inf, then cbrt(x) = +-Inf.
- * If x = NaN, then cbrt(x) = NaN.
- */
-- if (k == BIAS + LDBL_MAX_EXP)
-+ if (e == 0x7fff)
- return x + x;
--
-- if (k == 0) {
-+ if (e == 0) {
-+ /* Adjust subnormal numbers. */
-+ u.f *= 0x1p120;
-+ e = u.i.se & 0x7fff;
- /* If x = +-0, then cbrt(x) = +-0. */
-- if ((u.bits.manh | u.bits.manl) == 0)
-+ if (e == 0)
- return x;
-- /* Adjust subnormal numbers. */
-- u.e *= 0x1.0p514;
-- k = u.bits.exp;
-- k -= BIAS + 514;
-- } else
-- k -= BIAS;
-- u.xbits.expsign = BIAS;
-- v.e = 1;
--
-- x = u.e;
-- switch (k % 3) {
-+ e -= 120;
-+ }
-+ e -= 0x3fff;
-+ u.i.se = 0x3fff;
-+ x = u.f;
-+ switch (e % 3) {
- case 1:
- case -2:
-- x = 2*x;
-- k--;
-+ x *= 2;
-+ e--;
- break;
- case 2:
- case -1:
-- x = 4*x;
-- k -= 2;
-+ x *= 4;
-+ e -= 2;
- break;
- }
-- v.xbits.expsign = (expsign & 0x8000) | (BIAS + k / 3);
-+ v.f = 1.0;
-+ v.i.se = sign | (0x3fff + e/3);
-
- /*
- * The following is the guts of s_cbrtf, with the handling of
-@@ -83,9 +75,9 @@
- */
-
- /* ~5-bit estimate: */
-- fx = x;
-- GET_FLOAT_WORD(hx, fx);
-- SET_FLOAT_WORD(ft, ((hx & 0x7fffffff) / 3 + B1));
-+ uft.f = x;
-+ uft.i = (uft.i & 0x7fffffff)/3 + B1;
-+ ft = uft.f;
-
- /* ~16-bit estimate: */
- dx = x;
-@@ -126,7 +118,7 @@
- r = (r-t)/(w+r); /* r-t is exact; w+r ~= 3*t */
- t = t+t*r; /* error <= 0.5 + 0.5/3 + epsilon */
-
-- t *= v.e;
-+ t *= v.f;
- return t;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/ceil.c musl-git/src/math/ceil.c
---- musl-0.9.13/src/math/ceil.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/ceil.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,82 +1,24 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_ceil.c */
--/*
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunPro, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--/*
-- * ceil(x)
-- * Return x rounded toward -inf to integral value
-- * Method:
-- * Bit twiddling.
-- * Exception:
-- * Inexact flag raised if x not equal to ceil(x).
-- */
--
- #include "libm.h"
-
--static const double huge = 1.0e300;
--
- double ceil(double x)
- {
-- int32_t i0,i1,j0;
-- uint32_t i,j;
-+ union {double f; uint64_t i;} u = {x};
-+ int e = u.i >> 52 & 0x7ff;
-+ double_t y;
-
-- EXTRACT_WORDS(i0, i1, x);
-- // FIXME signed shift
-- j0 = ((i0>>20)&0x7ff) - 0x3ff;
-- if (j0 < 20) {
-- if (j0 < 0) {
-- /* raise inexact if x != 0 */
-- if (huge+x > 0.0) {
-- if (i0 < 0) {
-- i0 = 0x80000000;
-- i1=0;
-- } else if ((i0|i1) != 0) {
-- i0=0x3ff00000;
-- i1=0;
-- }
-- }
-- } else {
-- i = 0x000fffff>>j0;
-- if (((i0&i)|i1) == 0) /* x is integral */
-- return x;
-- /* raise inexact flag */
-- if (huge+x > 0.0) {
-- if (i0 > 0)
-- i0 += 0x00100000>>j0;
-- i0 &= ~i;
-- i1 = 0;
-- }
-- }
-- } else if (j0 > 51) {
-- if (j0 == 0x400) /* inf or NaN */
-- return x+x;
-- return x; /* x is integral */
-- } else {
-- i = (uint32_t)0xffffffff>>(j0-20);
-- if ((i1&i) == 0)
-- return x; /* x is integral */
-- /* raise inexact flag */
-- if (huge+x > 0.0) {
-- if (i0 > 0) {
-- if (j0 == 20)
-- i0 += 1;
-- else {
-- j = i1 + (1<<(52-j0));
-- if (j < i1) /* got a carry */
-- i0 += 1;
-- i1 = j;
-- }
-- }
-- i1 &= ~i;
-- }
-+ if (e >= 0x3ff+52 || x == 0)
-+ return x;
-+ /* y = int(x) - x, where int(x) is an integer neighbor of x */
-+ if (u.i >> 63)
-+ y = (double)(x - 0x1p52) + 0x1p52 - x;
-+ else
-+ y = (double)(x + 0x1p52) - 0x1p52 - x;
-+ /* special case because of non-nearest rounding modes */
-+ if (e <= 0x3ff-1) {
-+ FORCE_EVAL(y);
-+ return u.i >> 63 ? -0.0 : 1;
- }
-- INSERT_WORDS(x, i0, i1);
-- return x;
-+ if (y < 0)
-+ return x + y + 1;
-+ return x + y;
- }
-diff -Nur musl-0.9.13/src/math/ceilf.c musl-git/src/math/ceilf.c
---- musl-0.9.13/src/math/ceilf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/ceilf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,54 +1,27 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_ceilf.c */
--/*
-- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
-- */
--/*
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunPro, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--
- #include "libm.h"
-
--static const float huge = 1.0e30;
--
- float ceilf(float x)
- {
-- int32_t i0,j0;
-- uint32_t i;
-+ union {float f; uint32_t i;} u = {x};
-+ int e = (int)(u.i >> 23 & 0xff) - 0x7f;
-+ uint32_t m;
-
-- GET_FLOAT_WORD(i0, x);
-- j0 = ((i0>>23)&0xff) - 0x7f;
-- if (j0 < 23) {
-- if (j0 < 0) {
-- /* raise inexact if x != 0 */
-- if (huge+x > 0.0f) {
-- if (i0 < 0)
-- i0 = 0x80000000;
-- else if(i0 != 0)
-- i0 = 0x3f800000;
-- }
-- } else {
-- i = 0x007fffff>>j0;
-- if ((i0&i) == 0)
-- return x; /* x is integral */
-- /* raise inexact flag */
-- if (huge+x > 0.0f) {
-- if (i0 > 0)
-- i0 += 0x00800000>>j0;
-- i0 &= ~i;
-- }
-- }
-+ if (e >= 23)
-+ return x;
-+ if (e >= 0) {
-+ m = 0x007fffff >> e;
-+ if ((u.i & m) == 0)
-+ return x;
-+ FORCE_EVAL(x + 0x1p120f);
-+ if (u.i >> 31 == 0)
-+ u.i += m;
-+ u.i &= ~m;
- } else {
-- if (j0 == 0x80) /* inf or NaN */
-- return x+x;
-- return x; /* x is integral */
-+ FORCE_EVAL(x + 0x1p120f);
-+ if (u.i >> 31)
-+ u.f = -0.0;
-+ else if (u.i << 1)
-+ u.f = 1.0;
- }
-- SET_FLOAT_WORD(x, i0);
-- return x;
-+ return u.f;
- }
-diff -Nur musl-0.9.13/src/math/ceill.c musl-git/src/math/ceill.c
---- musl-0.9.13/src/math/ceill.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/ceill.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,23 +1,3 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_ceill.c */
--/*
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunPro, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--/*
-- * ceill(x)
-- * Return x rounded toward -inf to integral value
-- * Method:
-- * Bit twiddling.
-- * Exception:
-- * Inexact flag raised if x not equal to ceill(x).
-- */
--
- #include "libm.h"
-
- #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-@@ -26,77 +6,31 @@
- return ceil(x);
- }
- #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
--
--#ifdef LDBL_IMPLICIT_NBIT
--#define MANH_SIZE (LDBL_MANH_SIZE + 1)
--#define INC_MANH(u, c) do { \
-- uint64_t o = u.bits.manh; \
-- u.bits.manh += (c); \
-- if (u.bits.manh < o) \
-- u.bits.exp++; \
--} while (0)
--#else
--#define MANH_SIZE LDBL_MANH_SIZE
--#define INC_MANH(u, c) do { \
-- uint64_t o = u.bits.manh; \
-- u.bits.manh += (c); \
-- if (u.bits.manh < o) { \
-- u.bits.exp++; \
-- u.bits.manh |= 1llu << (LDBL_MANH_SIZE - 1); \
-- } \
--} while (0)
-+#if LDBL_MANT_DIG == 64
-+#define TOINT 0x1p63
-+#elif LDBL_MANT_DIG == 113
-+#define TOINT 0x1p112
- #endif
--
--static const long double huge = 1.0e300;
--
- long double ceill(long double x)
- {
-- union IEEEl2bits u = { .e = x };
-- int e = u.bits.exp - LDBL_MAX_EXP + 1;
--
-- if (e < MANH_SIZE - 1) {
-- if (e < 0) {
-- /* raise inexact if x != 0 */
-- if (huge + x > 0.0)
-- if (u.bits.exp > 0 ||
-- (u.bits.manh | u.bits.manl) != 0)
-- u.e = u.bits.sign ? -0.0 : 1.0;
-- } else {
-- uint64_t m = ((1llu << MANH_SIZE) - 1) >> (e + 1);
-- if (((u.bits.manh & m) | u.bits.manl) == 0)
-- return x; /* x is integral */
-- if (!u.bits.sign) {
--#ifdef LDBL_IMPLICIT_NBIT
-- if (e == 0)
-- u.bits.exp++;
-- else
--#endif
-- INC_MANH(u, 1llu << (MANH_SIZE - e - 1));
-- }
-- /* raise inexact flag */
-- if (huge + x > 0.0) {
-- u.bits.manh &= ~m;
-- u.bits.manl = 0;
-- }
-- }
-- } else if (e < LDBL_MANT_DIG - 1) {
-- uint64_t m = (uint64_t)-1 >> (64 - LDBL_MANT_DIG + e + 1);
-- if ((u.bits.manl & m) == 0)
-- return x; /* x is integral */
-- if (!u.bits.sign) {
-- if (e == MANH_SIZE - 1)
-- INC_MANH(u, 1);
-- else {
-- uint64_t o = u.bits.manl;
-- u.bits.manl += 1llu << (LDBL_MANT_DIG - e - 1);
-- if (u.bits.manl < o) /* got a carry */
-- INC_MANH(u, 1);
-- }
-- }
-- /* raise inexact flag */
-- if (huge + x > 0.0)
-- u.bits.manl &= ~m;
-+ union ldshape u = {x};
-+ int e = u.i.se & 0x7fff;
-+ long double y;
-+
-+ if (e >= 0x3fff+LDBL_MANT_DIG-1 || x == 0)
-+ return x;
-+ /* y = int(x) - x, where int(x) is an integer neighbor of x */
-+ if (u.i.se >> 15)
-+ y = x - TOINT + TOINT - x;
-+ else
-+ y = x + TOINT - TOINT - x;
-+ /* special case because of non-nearest rounding modes */
-+ if (e <= 0x3fff-1) {
-+ FORCE_EVAL(y);
-+ return u.i.se >> 15 ? -0.0 : 1;
- }
-- return u.e;
-+ if (y < 0)
-+ return x + y + 1;
-+ return x + y;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/copysign.c musl-git/src/math/copysign.c
---- musl-0.9.13/src/math/copysign.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/copysign.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,11 +1,8 @@
- #include "libm.h"
-
- double copysign(double x, double y) {
-- union dshape ux, uy;
--
-- ux.value = x;
-- uy.value = y;
-- ux.bits &= (uint64_t)-1>>1;
-- ux.bits |= uy.bits & (uint64_t)1<<63;
-- return ux.value;
-+ union {double f; uint64_t i;} ux={x}, uy={y};
-+ ux.i &= -1ULL/2;
-+ ux.i |= uy.i & 1ULL<<63;
-+ return ux.f;
- }
-diff -Nur musl-0.9.13/src/math/copysignf.c musl-git/src/math/copysignf.c
---- musl-0.9.13/src/math/copysignf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/copysignf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,11 +1,10 @@
--#include "libm.h"
-+#include <math.h>
-+#include <stdint.h>
-
--float copysignf(float x, float y) {
-- union fshape ux, uy;
--
-- ux.value = x;
-- uy.value = y;
-- ux.bits &= (uint32_t)-1>>1;
-- ux.bits |= uy.bits & (uint32_t)1<<31;
-- return ux.value;
-+float copysignf(float x, float y)
-+{
-+ union {float f; uint32_t i;} ux={x}, uy={y};
-+ ux.i &= 0x7fffffff;
-+ ux.i |= uy.i & 0x80000000;
-+ return ux.f;
- }
-diff -Nur musl-0.9.13/src/math/copysignl.c musl-git/src/math/copysignl.c
---- musl-0.9.13/src/math/copysignl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/copysignl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -9,8 +9,8 @@
- long double copysignl(long double x, long double y)
- {
- union ldshape ux = {x}, uy = {y};
--
-- ux.bits.sign = uy.bits.sign;
-- return ux.value;
-+ ux.i.se &= 0x7fff;
-+ ux.i.se |= uy.i.se & 0x8000;
-+ return ux.f;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/coshl.c musl-git/src/math/coshl.c
---- musl-0.9.13/src/math/coshl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/coshl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -8,10 +8,7 @@
- #elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
- long double coshl(long double x)
- {
-- union {
-- long double f;
-- struct{uint64_t m; uint16_t se; uint16_t pad;} i;
-- } u = {.f = x};
-+ union ldshape u = {x};
- unsigned ex = u.i.se & 0x7fff;
- uint32_t w;
- long double t;
-diff -Nur musl-0.9.13/src/math/cosl.c musl-git/src/math/cosl.c
---- musl-0.9.13/src/math/cosl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/cosl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,34 +1,3 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_cosl.c */
--/*-
-- * Copyright (c) 2007 Steven G. Kargl
-- * All rights reserved.
-- *
-- * Redistribution and use in source and binary forms, with or without
-- * modification, are permitted provided that the following conditions
-- * are met:
-- * 1. Redistributions of source code must retain the above copyright
-- * notice unmodified, this list of conditions, and the following
-- * disclaimer.
-- * 2. Redistributions in binary form must reproduce the above copyright
-- * notice, this list of conditions and the following disclaimer in the
-- * documentation and/or other materials provided with the distribution.
-- *
-- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- */
--/*
-- * Limited testing on pseudorandom numbers drawn within [-2e8:4e8] shows
-- * an accuracy of <= 0.7412 ULP.
-- */
--
- #include "libm.h"
-
- #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-@@ -38,44 +7,33 @@
- #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
- long double cosl(long double x)
- {
-- union IEEEl2bits z;
-+ union ldshape u = {x};
- unsigned n;
-- long double y[2];
-- long double hi, lo;
--
-- z.e = x;
-- z.bits.sign = 0;
-+ long double y[2], hi, lo;
-
-- /* If x = NaN or Inf, then cos(x) = NaN. */
-- if (z.bits.exp == 0x7fff)
-- return (x - x) / (x - x);
--
-- /* |x| < (double)pi/4 */
-- if (z.e < M_PI_4) {
-- /* |x| < 0x1p-64 */
-- if (z.bits.exp < 0x3fff - 64)
-+ u.i.se &= 0x7fff;
-+ if (u.i.se == 0x7fff)
-+ return x - x;
-+ x = u.f;
-+ if (x < M_PI_4) {
-+ if (u.i.se < 0x3fff - LDBL_MANT_DIG)
- /* raise inexact if x!=0 */
- return 1.0 + x;
-- return __cosl(z.e, 0);
-+ return __cosl(x, 0);
- }
--
- n = __rem_pio2l(x, y);
- hi = y[0];
- lo = y[1];
- switch (n & 3) {
- case 0:
-- hi = __cosl(hi, lo);
-- break;
-+ return __cosl(hi, lo);
- case 1:
-- hi = -__sinl(hi, lo, 1);
-- break;
-+ return -__sinl(hi, lo, 1);
- case 2:
-- hi = -__cosl(hi, lo);
-- break;
-+ return -__cosl(hi, lo);
- case 3:
-- hi = __sinl(hi, lo, 1);
-- break;
-+ default:
-+ return __sinl(hi, lo, 1);
- }
-- return hi;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/erfl.c musl-git/src/math/erfl.c
---- musl-0.9.13/src/math/erfl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/erfl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -253,8 +253,8 @@
-
- static long double erfc2(uint32_t ix, long double x)
- {
-+ union ldshape u;
- long double s,z,R,S;
-- uint32_t i0,i1;
-
- if (ix < 0x3fffa000) /* 0.84375 <= |x| < 1.25 */
- return erfc1(x);
-@@ -288,28 +288,22 @@
- S = sc[0] + s * (sc[1] + s * (sc[2] + s * (sc[3] +
- s * (sc[4] + s))));
- }
-- z = x;
-- GET_LDOUBLE_WORDS(ix, i0, i1, z);
-- i1 = 0;
-- i0 &= 0xffffff00;
-- SET_LDOUBLE_WORDS(z, ix, i0, i1);
-+ u.f = x;
-+ u.i.m &= -1ULL << 40;
-+ z = u.f;
- return expl(-z*z - 0.5625) * expl((z - x) * (z + x) + R / S) / x;
- }
-
- long double erfl(long double x)
- {
- long double r, s, z, y;
-- uint32_t i0, i1, ix;
-- int sign;
-+ union ldshape u = {x};
-+ uint32_t ix = (u.i.se & 0x7fffU)<<16 | u.i.m>>48;
-+ int sign = u.i.se >> 15;
-
-- GET_LDOUBLE_WORDS(ix, i0, i1, x);
-- sign = ix >> 15;
-- ix &= 0x7fff;
-- if (ix == 0x7fff) {
-+ if (ix >= 0x7fff0000)
- /* erf(nan)=nan, erf(+-inf)=+-1 */
- return 1 - 2*sign + 1/x;
-- }
-- ix = (ix << 16) | (i0 >> 16);
- if (ix < 0x3ffed800) { /* |x| < 0.84375 */
- if (ix < 0x3fde8000) { /* |x| < 2**-33 */
- return 0.125 * (8 * x + efx8 * x); /* avoid underflow */
-@@ -332,17 +326,13 @@
- long double erfcl(long double x)
- {
- long double r, s, z, y;
-- uint32_t i0, i1, ix;
-- int sign;
-+ union ldshape u = {x};
-+ uint32_t ix = (u.i.se & 0x7fffU)<<16 | u.i.m>>48;
-+ int sign = u.i.se >> 15;
-
-- GET_LDOUBLE_WORDS(ix, i0, i1, x);
-- sign = ix>>15;
-- ix &= 0x7fff;
-- if (ix == 0x7fff)
-+ if (ix >= 0x7fff0000)
- /* erfc(nan) = nan, erfc(+-inf) = 0,2 */
- return 2*sign + 1/x;
--
-- ix = (ix << 16) | (i0 >> 16);
- if (ix < 0x3ffed800) { /* |x| < 0.84375 */
- if (ix < 0x3fbe0000) /* |x| < 2**-65 */
- return 1.0 - x;
-@@ -358,6 +348,7 @@
- }
- if (ix < 0x4005d600) /* |x| < 107 */
- return sign ? 2 - erfc2(ix,x) : erfc2(ix,x);
-- return sign ? 2 - 0x1p-16382L : 0x1p-16382L*0x1p-16382L;
-+ y = 0x1p-16382L;
-+ return sign ? 2 - y : y*y;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/exp.c musl-git/src/math/exp.c
---- musl-0.9.13/src/math/exp.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/exp.c 2013-09-16 20:31:39.000000000 +0200
-@@ -80,7 +80,7 @@
-
- double exp(double x)
- {
-- double hi, lo, c, xx;
-+ double_t hi, lo, c, xx, y;
- int k, sign;
- uint32_t hx;
-
-@@ -89,20 +89,19 @@
- hx &= 0x7fffffff; /* high word of |x| */
-
- /* special cases */
-- if (hx >= 0x40862e42) { /* if |x| >= 709.78... */
-+ if (hx >= 0x4086232b) { /* if |x| >= 708.39... */
- if (isnan(x))
- return x;
-- if (hx == 0x7ff00000 && sign) /* -inf */
-- return 0;
- if (x > 709.782712893383973096) {
- /* overflow if x!=inf */
-- STRICT_ASSIGN(double, x, 0x1p1023 * x);
-+ x *= 0x1p1023;
- return x;
- }
-- if (x < -745.13321910194110842) {
-- /* underflow */
-- STRICT_ASSIGN(double, x, 0x1p-1000 * 0x1p-1000);
-- return x;
-+ if (x < -708.39641853226410622) {
-+ /* underflow if x!=-inf */
-+ FORCE_EVAL((float)(-0x1p-149/x));
-+ if (x < -745.13321910194110842)
-+ return 0;
- }
- }
-
-@@ -114,7 +113,7 @@
- k = 1 - sign - sign;
- hi = x - k*ln2hi; /* k*ln2hi is exact here */
- lo = k*ln2lo;
-- STRICT_ASSIGN(double, x, hi - lo);
-+ x = hi - lo;
- } else if (hx > 0x3e300000) { /* if |x| > 2**-28 */
- k = 0;
- hi = x;
-@@ -128,8 +127,8 @@
- /* x is now in primary range */
- xx = x*x;
- c = x - xx*(P1+xx*(P2+xx*(P3+xx*(P4+xx*P5))));
-- x = 1 + (x*c/(2-c) - lo + hi);
-+ y = 1 + (x*c/(2-c) - lo + hi);
- if (k == 0)
-- return x;
-- return scalbn(x, k);
-+ return y;
-+ return scalbn(y, k);
- }
-diff -Nur musl-0.9.13/src/math/exp2.c musl-git/src/math/exp2.c
---- musl-0.9.13/src/math/exp2.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/exp2.c 2013-09-16 20:31:39.000000000 +0200
-@@ -305,7 +305,7 @@
- * Method: (accurate tables)
- *
- * Reduce x:
-- * x = 2**k + y, for integer k and |y| <= 1/2.
-+ * x = k + y, for integer k and |y| <= 1/2.
- * Thus we have exp2(x) = 2**k * exp2(y).
- *
- * Reduce y:
-@@ -330,41 +330,41 @@
- */
- double exp2(double x)
- {
-- double r, t, z;
-- uint32_t hx, ix, i0;
-+ double_t r, t, z;
-+ uint32_t ix, i0;
-+ union {double f; uint64_t i;} u = {x};
- union {uint32_t u; int32_t i;} k;
-
- /* Filter out exceptional cases. */
-- GET_HIGH_WORD(hx, x);
-- ix = hx & 0x7fffffff;
-- if (ix >= 0x40900000) { /* |x| >= 1024 */
-- if (ix >= 0x7ff00000) {
-- GET_LOW_WORD(ix, x);
-- if (hx == 0xfff00000 && ix == 0) /* -inf */
-- return 0;
-- return x;
-- }
-- if (x >= 1024) {
-- STRICT_ASSIGN(double, x, x * 0x1p1023);
-+ ix = u.i>>32 & 0x7fffffff;
-+ if (ix >= 0x408ff000) { /* |x| >= 1022 or nan */
-+ if (ix >= 0x40900000 && u.i>>63 == 0) { /* x >= 1024 or nan */
-+ /* overflow */
-+ x *= 0x1p1023;
- return x;
- }
-- if (x <= -1075) {
-- STRICT_ASSIGN(double, x, 0x1p-1000*0x1p-1000);
-- return x;
-+ if (ix >= 0x7ff00000) /* -inf or -nan */
-+ return -1/x;
-+ if (u.i>>63) { /* x <= -1022 */
-+ /* underflow */
-+ if (x <= -1075 || x - 0x1p52 + 0x1p52 != x)
-+ FORCE_EVAL((float)(-0x1p-149/x));
-+ if (x <= -1075)
-+ return 0;
- }
- } else if (ix < 0x3c900000) { /* |x| < 0x1p-54 */
- return 1.0 + x;
- }
-
- /* Reduce x, computing z, i0, and k. */
-- STRICT_ASSIGN(double, t, x + redux);
-- GET_LOW_WORD(i0, t);
-+ u.f = x + redux;
-+ i0 = u.i;
- i0 += TBLSIZE / 2;
- k.u = i0 / TBLSIZE * TBLSIZE;
- k.i /= TBLSIZE;
- i0 %= TBLSIZE;
-- t -= redux;
-- z = x - t;
-+ u.f -= redux;
-+ z = x - u.f;
-
- /* Compute r = exp2(y) = exp2t[i0] * p(z - eps[i]). */
- t = tbl[2*i0]; /* exp2t[i0] */
-diff -Nur musl-0.9.13/src/math/exp2f.c musl-git/src/math/exp2f.c
---- musl-0.9.13/src/math/exp2f.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/exp2f.c 2013-09-16 20:31:39.000000000 +0200
-@@ -63,7 +63,7 @@
- * Method: (equally-spaced tables)
- *
- * Reduce x:
-- * x = 2**k + y, for integer k and |y| <= 1/2.
-+ * x = k + y, for integer k and |y| <= 1/2.
- * Thus we have exp2f(x) = 2**k * exp2(y).
- *
- * Reduce y:
-@@ -83,46 +83,42 @@
- */
- float exp2f(float x)
- {
-- double tv, twopk, u, z;
-- float t;
-- uint32_t hx, ix, i0, k;
-+ double_t t, r, z;
-+ union {float f; uint32_t i;} u = {x};
-+ union {double f; uint64_t i;} uk;
-+ uint32_t ix, i0, k;
-
- /* Filter out exceptional cases. */
-- GET_FLOAT_WORD(hx, x);
-- ix = hx & 0x7fffffff;
-- if (ix >= 0x43000000) { /* |x| >= 128 */
-- if (ix >= 0x7f800000) {
-- if (hx == 0xff800000) /* -inf */
-- return 0;
-- return x;
-- }
-- if (x >= 128) {
-- STRICT_ASSIGN(float, x, x * 0x1p127f);
-+ ix = u.i & 0x7fffffff;
-+ if (ix > 0x42fc0000) { /* |x| > 126 */
-+ if (u.i >= 0x43000000 && u.i < 0x80000000) { /* x >= 128 */
-+ x *= 0x1p127f;
- return x;
- }
-- if (x <= -150) {
-- STRICT_ASSIGN(float, x, 0x1p-100f*0x1p-100f);
-- return x;
-+ if (u.i >= 0x80000000) { /* x < -126 */
-+ if (u.i >= 0xc3160000 || (u.i & 0x0000ffff))
-+ FORCE_EVAL(-0x1p-149f/x);
-+ if (u.i >= 0xc3160000) /* x <= -150 */
-+ return 0;
- }
- } else if (ix <= 0x33000000) { /* |x| <= 0x1p-25 */
- return 1.0f + x;
- }
-
- /* Reduce x, computing z, i0, and k. */
-- STRICT_ASSIGN(float, t, x + redux);
-- GET_FLOAT_WORD(i0, t);
-+ u.f = x + redux;
-+ i0 = u.i;
- i0 += TBLSIZE / 2;
-- k = (i0 / TBLSIZE) << 20;
-+ k = i0 / TBLSIZE;
-+ uk.i = (uint64_t)(0x3ff + k)<<52;
- i0 &= TBLSIZE - 1;
-- t -= redux;
-- z = x - t;
-- INSERT_WORDS(twopk, 0x3ff00000 + k, 0);
--
-+ u.f -= redux;
-+ z = x - u.f;
- /* Compute r = exp2(y) = exp2ft[i0] * p(z). */
-- tv = exp2ft[i0];
-- u = tv * z;
-- tv = tv + u * (P1 + z * P2) + u * (z * z) * (P3 + z * P4);
-+ r = exp2ft[i0];
-+ t = r * z;
-+ r = r + t * (P1 + z * P2) + t * (z * z) * (P3 + z * P4);
-
-- /* Scale by 2**(k>>20). */
-- return tv * twopk;
-+ /* Scale by 2**k */
-+ return r * uk.f;
- }
-diff -Nur musl-0.9.13/src/math/exp2l.c musl-git/src/math/exp2l.c
---- musl-0.9.13/src/math/exp2l.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/exp2l.c 2013-09-16 20:31:39.000000000 +0200
-@@ -33,13 +33,9 @@
- return exp2(x);
- }
- #elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
--
- #define TBLBITS 7
- #define TBLSIZE (1 << TBLBITS)
-
--#define BIAS (LDBL_MAX_EXP - 1)
--#define EXPMASK (BIAS + LDBL_MAX_EXP)
--
- static const double
- redux = 0x1.8p63 / TBLSIZE,
- P1 = 0x1.62e42fefa39efp-1,
-@@ -203,29 +199,29 @@
- */
- long double exp2l(long double x)
- {
-- union IEEEl2bits u, v;
-+ union ldshape u = {x};
-+ int e = u.i.se & 0x7fff;
- long double r, z;
-- uint32_t hx, ix, i0;
-+ uint32_t i0;
- union {uint32_t u; int32_t i;} k;
-
- /* Filter out exceptional cases. */
-- u.e = x;
-- hx = u.xbits.expsign;
-- ix = hx & EXPMASK;
-- if (ix >= BIAS + 14) { /* |x| >= 16384 or x is NaN */
-- if (ix == EXPMASK) {
-- if (u.xbits.man == 1ULL << 63 && hx == 0xffff) /* -inf */
-+ if (e >= 0x3fff + 13) { /* |x| >= 8192 or x is NaN */
-+ if (u.i.se >= 0x3fff + 14 && u.i.se >> 15 == 0)
-+ /* overflow */
-+ return x * 0x1p16383L;
-+ if (e == 0x7fff) /* -inf or -nan */
-+ return -1/x;
-+ if (x < -16382) {
-+ if (x <= -16446 || x - 0x1p63 + 0x1p63 != x)
-+ /* underflow */
-+ FORCE_EVAL((float)(-0x1p-149/x));
-+ if (x <= -16446)
- return 0;
-- return x;
-- }
-- if (x >= 16384) {
-- x *= 0x1p16383L;
-- return x;
- }
-- if (x <= -16446)
-- return 0x1p-10000L*0x1p-10000L;
-- } else if (ix < BIAS - 64) /* |x| < 0x1p-64 */
-+ } else if (e < 0x3fff - 64) {
- return 1 + x;
-+ }
-
- /*
- * Reduce x, computing z, i0, and k. The low bits of x + redux
-@@ -238,13 +234,13 @@
- * We split this into k = 0xabc and i0 = 0x12 (adjusted to
- * index into the table), then we compute z = 0x0.003456p0.
- */
-- u.e = x + redux;
-- i0 = u.bits.manl + TBLSIZE / 2;
-+ u.f = x + redux;
-+ i0 = u.i.m + TBLSIZE / 2;
- k.u = i0 / TBLSIZE * TBLSIZE;
- k.i /= TBLSIZE;
- i0 %= TBLSIZE;
-- u.e -= redux;
-- z = x - u.e;
-+ u.f -= redux;
-+ z = x - u.f;
-
- /* Compute r = exp2l(y) = exp2lt[i0] * p(z). */
- long double t_hi = tbl[2*i0];
-diff -Nur musl-0.9.13/src/math/expf.c musl-git/src/math/expf.c
---- musl-0.9.13/src/math/expf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/expf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -29,7 +29,7 @@
-
- float expf(float x)
- {
-- float hi, lo, c, xx;
-+ float_t hi, lo, c, xx, y;
- int k, sign;
- uint32_t hx;
-
-@@ -38,20 +38,17 @@
- hx &= 0x7fffffff; /* high word of |x| */
-
- /* special cases */
-- if (hx >= 0x42b17218) { /* if |x| >= 88.722839f or NaN */
-- if (hx > 0x7f800000) /* NaN */
-- return x;
-- if (!sign) {
-- /* overflow if x!=inf */
-- STRICT_ASSIGN(float, x, x * 0x1p127f);
-+ if (hx >= 0x42aeac50) { /* if |x| >= -87.33655f or NaN */
-+ if (hx >= 0x42b17218 && !sign) { /* x >= 88.722839f */
-+ /* overflow */
-+ x *= 0x1p127f;
- return x;
- }
-- if (hx == 0x7f800000) /* -inf */
-- return 0;
-- if (hx >= 0x42cff1b5) { /* x <= -103.972084f */
-+ if (sign) {
- /* underflow */
-- STRICT_ASSIGN(float, x, 0x1p-100f*0x1p-100f);
-- return x;
-+ FORCE_EVAL(-0x1p-149f/x);
-+ if (hx >= 0x42cff1b5) /* x <= -103.972084f */
-+ return 0;
- }
- }
-
-@@ -63,7 +60,7 @@
- k = 1 - sign - sign;
- hi = x - k*ln2hi; /* k*ln2hi is exact here */
- lo = k*ln2lo;
-- STRICT_ASSIGN(float, x, hi - lo);
-+ x = hi - lo;
- } else if (hx > 0x39000000) { /* |x| > 2**-14 */
- k = 0;
- hi = x;
-@@ -77,8 +74,8 @@
- /* x is now in primary range */
- xx = x*x;
- c = x - xx*(P1+xx*P2);
-- x = 1 + (x*c/(2-c) - lo + hi);
-+ y = 1 + (x*c/(2-c) - lo + hi);
- if (k == 0)
-- return x;
-- return scalbnf(x, k);
-+ return y;
-+ return scalbnf(y, k);
- }
-diff -Nur musl-0.9.13/src/math/expl.c musl-git/src/math/expl.c
---- musl-0.9.13/src/math/expl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/expl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -100,7 +100,7 @@
- if (x > 11356.5234062941439488L) /* x > ln(2^16384 - 0.5) */
- return x * 0x1p16383L;
- if (x < -11399.4985314888605581L) /* x < ln(2^-16446) */
-- return 0x1p-10000L * 0x1p-10000L;
-+ return -0x1p-16445L/x;
-
- /* Express e**x = e**f 2**k
- * = e**(f + k ln(2))
-diff -Nur musl-0.9.13/src/math/expm1.c musl-git/src/math/expm1.c
---- musl-0.9.13/src/math/expm1.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/expm1.c 2013-09-16 20:31:39.000000000 +0200
-@@ -31,7 +31,7 @@
- * R1(r**2) = 6/r *((exp(r)+1)/(exp(r)-1) - 2/r)
- * = 6/r * ( 1 + 2.0*(1/(exp(r)-1) - 1/r))
- * = 1 - r^2/60 + r^4/2520 - r^6/100800 + ...
-- * We use a special Reme algorithm on [0,0.347] to generate
-+ * We use a special Remez algorithm on [0,0.347] to generate
- * a polynomial of degree 5 in r*r to approximate R1. The
- * maximum error of this polynomial approximation is bounded
- * by 2**-61. In other words,
-@@ -107,8 +107,6 @@
- #include "libm.h"
-
- static const double
--huge = 1.0e+300,
--tiny = 1.0e-300,
- o_threshold = 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */
- ln2_hi = 6.93147180369123816490e-01, /* 0x3fe62e42, 0xfee00000 */
- ln2_lo = 1.90821492927058770002e-10, /* 0x3dea39ef, 0x35793c76 */
-@@ -122,39 +120,27 @@
-
- double expm1(double x)
- {
-- double y,hi,lo,c,t,e,hxs,hfx,r1,twopk;
-- int32_t k,xsb;
-- uint32_t hx;
--
-- GET_HIGH_WORD(hx, x);
-- xsb = hx&0x80000000; /* sign bit of x */
-- hx &= 0x7fffffff; /* high word of |x| */
-+ double_t y,hi,lo,c,t,e,hxs,hfx,r1,twopk;
-+ union {double f; uint64_t i;} u = {x};
-+ uint32_t hx = u.i>>32 & 0x7fffffff;
-+ int k, sign = u.i>>63;
-
- /* filter out huge and non-finite argument */
- if (hx >= 0x4043687A) { /* if |x|>=56*ln2 */
-- if (hx >= 0x40862E42) { /* if |x|>=709.78... */
-- if (hx >= 0x7ff00000) {
-- uint32_t low;
--
-- GET_LOW_WORD(low, x);
-- if (((hx&0xfffff)|low) != 0) /* NaN */
-- return x+x;
-- return xsb==0 ? x : -1.0; /* exp(+-inf)={inf,-1} */
-- }
-- if(x > o_threshold)
-- return huge*huge; /* overflow */
-- }
-- if (xsb != 0) { /* x < -56*ln2, return -1.0 with inexact */
-- /* raise inexact */
-- if(x+tiny<0.0)
-- return tiny-1.0; /* return -1 */
-+ if (isnan(x))
-+ return x;
-+ if (sign)
-+ return -1;
-+ if (x > o_threshold) {
-+ x *= 0x1p1023;
-+ return x;
- }
- }
-
- /* argument reduction */
- if (hx > 0x3fd62e42) { /* if |x| > 0.5 ln2 */
- if (hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */
-- if (xsb == 0) {
-+ if (!sign) {
- hi = x - ln2_hi;
- lo = ln2_lo;
- k = 1;
-@@ -164,17 +150,17 @@
- k = -1;
- }
- } else {
-- k = invln2*x + (xsb==0 ? 0.5 : -0.5);
-+ k = invln2*x + (sign ? -0.5 : 0.5);
- t = k;
- hi = x - t*ln2_hi; /* t*ln2_hi is exact here */
- lo = t*ln2_lo;
- }
-- STRICT_ASSIGN(double, x, hi - lo);
-+ x = hi-lo;
- c = (hi-x)-lo;
- } else if (hx < 0x3c900000) { /* |x| < 2**-54, return x */
-- /* raise inexact flags when x != 0 */
-- t = huge+x;
-- return x - (t-(huge+x));
-+ if (hx < 0x00100000)
-+ FORCE_EVAL((float)x);
-+ return x;
- } else
- k = 0;
-
-@@ -186,9 +172,9 @@
- e = hxs*((r1-t)/(6.0 - x*t));
- if (k == 0) /* c is 0 */
- return x - (x*e-hxs);
-- INSERT_WORDS(twopk, 0x3ff00000+(k<<20), 0); /* 2^k */
- e = x*(e-c) - c;
- e -= hxs;
-+ /* exp(x) ~ 2^k (x_reduced - e + 1) */
- if (k == -1)
- return 0.5*(x-e) - 0.5;
- if (k == 1) {
-@@ -196,24 +182,20 @@
- return -2.0*(e-(x+0.5));
- return 1.0+2.0*(x-e);
- }
-- if (k <= -2 || k > 56) { /* suffice to return exp(x)-1 */
-- y = 1.0 - (e-x);
-+ u.i = (uint64_t)(0x3ff + k)<<52; /* 2^k */
-+ twopk = u.f;
-+ if (k < 0 || k > 56) { /* suffice to return exp(x)-1 */
-+ y = x - e + 1.0;
- if (k == 1024)
- y = y*2.0*0x1p1023;
- else
- y = y*twopk;
- return y - 1.0;
- }
-- t = 1.0;
-- if (k < 20) {
-- SET_HIGH_WORD(t, 0x3ff00000 - (0x200000>>k)); /* t=1-2^-k */
-- y = t-(e-x);
-- y = y*twopk;
-- } else {
-- SET_HIGH_WORD(t, ((0x3ff-k)<<20)); /* 2^-k */
-- y = x-(e+t);
-- y += 1.0;
-- y = y*twopk;
-- }
-+ u.i = (uint64_t)(0x3ff - k)<<52; /* 2^-k */
-+ if (k < 20)
-+ y = (x-e+(1-u.f))*twopk;
-+ else
-+ y = (x-(e+u.f)+1)*twopk;
- return y;
- }
-diff -Nur musl-0.9.13/src/math/expm1f.c musl-git/src/math/expm1f.c
---- musl-0.9.13/src/math/expm1f.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/expm1f.c 2013-09-16 20:31:39.000000000 +0200
-@@ -16,8 +16,6 @@
- #include "libm.h"
-
- static const float
--huge = 1.0e+30,
--tiny = 1.0e-30,
- o_threshold = 8.8721679688e+01, /* 0x42b17180 */
- ln2_hi = 6.9313812256e-01, /* 0x3f317180 */
- ln2_lo = 9.0580006145e-06, /* 0x3717f7d1 */
-@@ -32,35 +30,27 @@
-
- float expm1f(float x)
- {
-- float y,hi,lo,c,t,e,hxs,hfx,r1,twopk;
-- int32_t k,xsb;
-- uint32_t hx;
--
-- GET_FLOAT_WORD(hx, x);
-- xsb = hx&0x80000000; /* sign bit of x */
-- hx &= 0x7fffffff; /* high word of |x| */
-+ float_t y,hi,lo,c,t,e,hxs,hfx,r1,twopk;
-+ union {float f; uint32_t i;} u = {x};
-+ uint32_t hx = u.i & 0x7fffffff;
-+ int k, sign = u.i >> 31;
-
- /* filter out huge and non-finite argument */
- if (hx >= 0x4195b844) { /* if |x|>=27*ln2 */
-- if (hx >= 0x42b17218) { /* if |x|>=88.721... */
-- if (hx > 0x7f800000) /* NaN */
-- return x+x;
-- if (hx == 0x7f800000) /* exp(+-inf)={inf,-1} */
-- return xsb==0 ? x : -1.0;
-- if (x > o_threshold)
-- return huge*huge; /* overflow */
-- }
-- if (xsb != 0) { /* x < -27*ln2 */
-- /* raise inexact */
-- if (x+tiny < 0.0f)
-- return tiny-1.0f; /* return -1 */
-+ if (hx > 0x7f800000) /* NaN */
-+ return x;
-+ if (sign)
-+ return -1;
-+ if (x > o_threshold) {
-+ x *= 0x1p127f;
-+ return x;
- }
- }
-
- /* argument reduction */
- if (hx > 0x3eb17218) { /* if |x| > 0.5 ln2 */
- if (hx < 0x3F851592) { /* and |x| < 1.5 ln2 */
-- if (xsb == 0) {
-+ if (!sign) {
- hi = x - ln2_hi;
- lo = ln2_lo;
- k = 1;
-@@ -70,16 +60,17 @@
- k = -1;
- }
- } else {
-- k = invln2*x + (xsb==0 ? 0.5f : -0.5f);
-+ k = invln2*x + (sign ? -0.5f : 0.5f);
- t = k;
- hi = x - t*ln2_hi; /* t*ln2_hi is exact here */
- lo = t*ln2_lo;
- }
-- STRICT_ASSIGN(float, x, hi - lo);
-+ x = hi-lo;
- c = (hi-x)-lo;
- } else if (hx < 0x33000000) { /* when |x|<2**-25, return x */
-- t = huge+x; /* return x with inexact flags when x!=0 */
-- return x - (t-(huge+x));
-+ if (hx < 0x00800000)
-+ FORCE_EVAL(x*x);
-+ return x;
- } else
- k = 0;
-
-@@ -91,9 +82,9 @@
- e = hxs*((r1-t)/(6.0f - x*t));
- if (k == 0) /* c is 0 */
- return x - (x*e-hxs);
-- SET_FLOAT_WORD(twopk, 0x3f800000+(k<<23)); /* 2^k */
- e = x*(e-c) - c;
- e -= hxs;
-+ /* exp(x) ~ 2^k (x_reduced - e + 1) */
- if (k == -1)
- return 0.5f*(x-e) - 0.5f;
- if (k == 1) {
-@@ -101,24 +92,20 @@
- return -2.0f*(e-(x+0.5f));
- return 1.0f + 2.0f*(x-e);
- }
-- if (k <= -2 || k > 56) { /* suffice to return exp(x)-1 */
-- y = 1.0f - (e - x);
-+ u.i = (0x7f+k)<<23; /* 2^k */
-+ twopk = u.f;
-+ if (k < 0 || k > 56) { /* suffice to return exp(x)-1 */
-+ y = x - e + 1.0f;
- if (k == 128)
- y = y*2.0f*0x1p127f;
- else
- y = y*twopk;
- return y - 1.0f;
- }
-- t = 1.0f;
-- if (k < 23) {
-- SET_FLOAT_WORD(t, 0x3f800000 - (0x1000000>>k)); /* t=1-2^-k */
-- y = t - (e - x);
-- y = y*twopk;
-- } else {
-- SET_FLOAT_WORD(t, (0x7f-k)<<23); /* 2^-k */
-- y = x - (e + t);
-- y += 1.0f;
-- y = y*twopk;
-- }
-+ u.i = (0x7f-k)<<23; /* 2^-k */
-+ if (k < 23)
-+ y = (x-e+(1-u.f))*twopk;
-+ else
-+ y = (x-(e+u.f)+1)*twopk;
- return y;
- }
-diff -Nur musl-0.9.13/src/math/fabs.c musl-git/src/math/fabs.c
---- musl-0.9.13/src/math/fabs.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/fabs.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,10 +1,9 @@
--#include "libm.h"
-+#include <math.h>
-+#include <stdint.h>
-
- double fabs(double x)
- {
-- union dshape u;
--
-- u.value = x;
-- u.bits &= (uint64_t)-1 / 2;
-- return u.value;
-+ union {double f; uint64_t i;} u = {x};
-+ u.i &= -1ULL/2;
-+ return u.f;
- }
-diff -Nur musl-0.9.13/src/math/fabsf.c musl-git/src/math/fabsf.c
---- musl-0.9.13/src/math/fabsf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/fabsf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,10 +1,9 @@
--#include "libm.h"
-+#include <math.h>
-+#include <stdint.h>
-
- float fabsf(float x)
- {
-- union fshape u;
--
-- u.value = x;
-- u.bits &= (uint32_t)-1 / 2;
-- return u.value;
-+ union {float f; uint32_t i;} u = {x};
-+ u.i &= 0x7fffffff;
-+ return u.f;
- }
-diff -Nur musl-0.9.13/src/math/fabsl.c musl-git/src/math/fabsl.c
---- musl-0.9.13/src/math/fabsl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/fabsl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -9,7 +9,7 @@
- {
- union ldshape u = {x};
-
-- u.bits.sign = 0;
-- return u.value;
-+ u.i.se &= 0x7fff;
-+ return u.f;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/floor.c musl-git/src/math/floor.c
---- musl-0.9.13/src/math/floor.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/floor.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,82 +1,24 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_floor.c */
--/*
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunPro, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--/*
-- * floor(x)
-- * Return x rounded toward -inf to integral value
-- * Method:
-- * Bit twiddling.
-- * Exception:
-- * Inexact flag raised if x not equal to floor(x).
-- */
--
- #include "libm.h"
-
--static const double huge = 1.0e300;
--
- double floor(double x)
- {
-- int32_t i0,i1,j0;
-- uint32_t i,j;
-+ union {double f; uint64_t i;} u = {x};
-+ int e = u.i >> 52 & 0x7ff;
-+ double_t y;
-
-- EXTRACT_WORDS(i0, i1, x);
-- // FIXME: signed shift
-- j0 = ((i0>>20)&0x7ff) - 0x3ff;
-- if (j0 < 20) {
-- if (j0 < 0) { /* |x| < 1 */
-- /* raise inexact if x != 0 */
-- if (huge+x > 0.0) {
-- if (i0 >= 0) { /* x >= 0 */
-- i0 = i1 = 0;
-- } else if (((i0&0x7fffffff)|i1) != 0) {
-- i0 = 0xbff00000;
-- i1 = 0;
-- }
-- }
-- } else {
-- i = 0x000fffff>>j0;
-- if (((i0&i)|i1) == 0)
-- return x; /* x is integral */
-- /* raise inexact flag */
-- if (huge+x > 0.0) {
-- if (i0 < 0)
-- i0 += 0x00100000>>j0;
-- i0 &= ~i;
-- i1 = 0;
-- }
-- }
-- } else if (j0 > 51) {
-- if (j0 == 0x400)
-- return x+x; /* inf or NaN */
-- else
-- return x; /* x is integral */
-- } else {
-- i = (uint32_t)0xffffffff>>(j0-20);
-- if ((i1&i) == 0)
-- return x; /* x is integral */
-- /* raise inexact flag */
-- if (huge+x > 0.0) {
-- if (i0 < 0) {
-- if (j0 == 20)
-- i0++;
-- else {
-- j = i1+(1<<(52-j0));
-- if (j < i1)
-- i0++; /* got a carry */
-- i1 = j;
-- }
-- }
-- i1 &= ~i;
-- }
-+ if (e >= 0x3ff+52 || x == 0)
-+ return x;
-+ /* y = int(x) - x, where int(x) is an integer neighbor of x */
-+ if (u.i >> 63)
-+ y = (double)(x - 0x1p52) + 0x1p52 - x;
-+ else
-+ y = (double)(x + 0x1p52) - 0x1p52 - x;
-+ /* special case because of non-nearest rounding modes */
-+ if (e <= 0x3ff-1) {
-+ FORCE_EVAL(y);
-+ return u.i >> 63 ? -1 : 0;
- }
-- INSERT_WORDS(x, i0, i1);
-- return x;
-+ if (y > 0)
-+ return x + y - 1;
-+ return x + y;
- }
-diff -Nur musl-0.9.13/src/math/floorf.c musl-git/src/math/floorf.c
---- musl-0.9.13/src/math/floorf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/floorf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,64 +1,27 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_floorf.c */
--/*
-- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
-- */
--/*
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunPro, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--/*
-- * floorf(x)
-- * Return x rounded toward -inf to integral value
-- * Method:
-- * Bit twiddling.
-- * Exception:
-- * Inexact flag raised if x not equal to floorf(x).
-- */
--
- #include "libm.h"
-
--static const float huge = 1.0e30;
--
- float floorf(float x)
- {
-- int32_t i0,j0;
-- uint32_t i;
-+ union {float f; uint32_t i;} u = {x};
-+ int e = (int)(u.i >> 23 & 0xff) - 0x7f;
-+ uint32_t m;
-
-- GET_FLOAT_WORD(i0, x);
-- // FIXME: signed shift
-- j0 = ((i0>>23)&0xff) - 0x7f;
-- if (j0 < 23) {
-- if (j0 < 0) { /* |x| < 1 */
-- /* raise inexact if x != 0 */
-- if (huge+x > 0.0f) {
-- if (i0 >= 0) /* x >= 0 */
-- i0 = 0;
-- else if ((i0&0x7fffffff) != 0)
-- i0 = 0xbf800000;
-- }
-- } else {
-- i = 0x007fffff>>j0;
-- if ((i0&i) == 0)
-- return x; /* x is integral */
-- /* raise inexact flag */
-- if (huge+x > 0.0f) {
-- if (i0 < 0)
-- i0 += 0x00800000>>j0;
-- i0 &= ~i;
-- }
-- }
-+ if (e >= 23)
-+ return x;
-+ if (e >= 0) {
-+ m = 0x007fffff >> e;
-+ if ((u.i & m) == 0)
-+ return x;
-+ FORCE_EVAL(x + 0x1p120f);
-+ if (u.i >> 31)
-+ u.i += m;
-+ u.i &= ~m;
- } else {
-- if (j0 == 0x80) /* inf or NaN */
-- return x+x;
-- else
-- return x; /* x is integral */
-+ FORCE_EVAL(x + 0x1p120f);
-+ if (u.i >> 31 == 0)
-+ u.i = 0;
-+ else if (u.i << 1)
-+ u.f = -1.0;
- }
-- SET_FLOAT_WORD(x, i0);
-- return x;
-+ return u.f;
- }
-diff -Nur musl-0.9.13/src/math/floorl.c musl-git/src/math/floorl.c
---- musl-0.9.13/src/math/floorl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/floorl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,23 +1,3 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_floorl.c */
--/*
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunPro, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--/*
-- * floorl(x)
-- * Return x rounded toward -inf to integral value
-- * Method:
-- * Bit twiddling.
-- * Exception:
-- * Inexact flag raised if x not equal to floorl(x).
-- */
--
- #include "libm.h"
-
- #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-@@ -26,77 +6,31 @@
- return floor(x);
- }
- #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
--
--#ifdef LDBL_IMPLICIT_NBIT
--#define MANH_SIZE (LDBL_MANH_SIZE + 1)
--#define INC_MANH(u, c) do { \
-- uint64_t o = u.bits.manh; \
-- u.bits.manh += (c); \
-- if (u.bits.manh < o) \
-- u.bits.exp++; \
--} while (0)
--#else
--#define MANH_SIZE LDBL_MANH_SIZE
--#define INC_MANH(u, c) do { \
-- uint64_t o = u.bits.manh; \
-- u.bits.manh += (c); \
-- if (u.bits.manh < o) { \
-- u.bits.exp++; \
-- u.bits.manh |= 1llu << (LDBL_MANH_SIZE - 1); \
-- } \
--} while (0)
-+#if LDBL_MANT_DIG == 64
-+#define TOINT 0x1p63
-+#elif LDBL_MANT_DIG == 113
-+#define TOINT 0x1p112
- #endif
--
--static const long double huge = 1.0e300;
--
- long double floorl(long double x)
- {
-- union IEEEl2bits u = { .e = x };
-- int e = u.bits.exp - LDBL_MAX_EXP + 1;
--
-- if (e < MANH_SIZE - 1) {
-- if (e < 0) {
-- /* raise inexact if x != 0 */
-- if (huge + x > 0.0)
-- if (u.bits.exp > 0 ||
-- (u.bits.manh | u.bits.manl) != 0)
-- u.e = u.bits.sign ? -1.0 : 0.0;
-- } else {
-- uint64_t m = ((1llu << MANH_SIZE) - 1) >> (e + 1);
-- if (((u.bits.manh & m) | u.bits.manl) == 0)
-- return x; /* x is integral */
-- if (u.bits.sign) {
--#ifdef LDBL_IMPLICIT_NBIT
-- if (e == 0)
-- u.bits.exp++;
-- else
--#endif
-- INC_MANH(u, 1llu << (MANH_SIZE - e - 1));
-- }
-- /* raise inexact flag */
-- if (huge + x > 0.0) {
-- u.bits.manh &= ~m;
-- u.bits.manl = 0;
-- }
-- }
-- } else if (e < LDBL_MANT_DIG - 1) {
-- uint64_t m = (uint64_t)-1 >> (64 - LDBL_MANT_DIG + e + 1);
-- if ((u.bits.manl & m) == 0)
-- return x; /* x is integral */
-- if (u.bits.sign) {
-- if (e == MANH_SIZE - 1)
-- INC_MANH(u, 1);
-- else {
-- uint64_t o = u.bits.manl;
-- u.bits.manl += 1llu << (LDBL_MANT_DIG - e - 1);
-- if (u.bits.manl < o) /* got a carry */
-- INC_MANH(u, 1);
-- }
-- }
-- /* raise inexact flag */
-- if (huge + x > 0.0)
-- u.bits.manl &= ~m;
-+ union ldshape u = {x};
-+ int e = u.i.se & 0x7fff;
-+ long double y;
-+
-+ if (e >= 0x3fff+LDBL_MANT_DIG-1 || x == 0)
-+ return x;
-+ /* y = int(x) - x, where int(x) is an integer neighbor of x */
-+ if (u.i.se >> 15)
-+ y = x - TOINT + TOINT - x;
-+ else
-+ y = x + TOINT - TOINT - x;
-+ /* special case because of non-nearest rounding modes */
-+ if (e <= 0x3fff-1) {
-+ FORCE_EVAL(y);
-+ return u.i.se >> 15 ? -1 : 0;
- }
-- return u.e;
-+ if (y > 0)
-+ return x + y - 1;
-+ return x + y;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/fma.c musl-git/src/math/fma.c
---- musl-0.9.13/src/math/fma.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/fma.c 2013-09-16 20:31:39.000000000 +0200
-@@ -2,16 +2,6 @@
- #include "libm.h"
-
- #if LDBL_MANT_DIG==64 && LDBL_MAX_EXP==16384
--union ld80 {
-- long double x;
-- struct {
-- uint64_t m;
-- uint16_t e : 15;
-- uint16_t s : 1;
-- uint16_t pad;
-- } bits;
--};
--
- /* exact add, assumes exponent_x >= exponent_y */
- static void add(long double *hi, long double *lo, long double x, long double y)
- {
-@@ -45,25 +35,25 @@
- */
- static long double adjust(long double hi, long double lo)
- {
-- union ld80 uhi, ulo;
-+ union ldshape uhi, ulo;
-
- if (lo == 0)
- return hi;
-- uhi.x = hi;
-- if (uhi.bits.m & 0x3ff)
-+ uhi.f = hi;
-+ if (uhi.i.m & 0x3ff)
- return hi;
-- ulo.x = lo;
-- if (uhi.bits.s == ulo.bits.s)
-- uhi.bits.m++;
-+ ulo.f = lo;
-+ if ((uhi.i.se & 0x8000) == (ulo.i.se & 0x8000))
-+ uhi.i.m++;
- else {
-- uhi.bits.m--;
- /* handle underflow and take care of ld80 implicit msb */
-- if (uhi.bits.m == (uint64_t)-1/2) {
-- uhi.bits.m *= 2;
-- uhi.bits.e--;
-+ if (uhi.i.m << 1 == 0) {
-+ uhi.i.m = 0;
-+ uhi.i.se--;
- }
-+ uhi.i.m--;
- }
-- return uhi.x;
-+ return uhi.f;
- }
-
- /* adjusted add so the result is correct when rounded to double (or less) precision */
-@@ -82,9 +72,9 @@
-
- static int getexp(long double x)
- {
-- union ld80 u;
-- u.x = x;
-- return u.bits.e;
-+ union ldshape u;
-+ u.f = x;
-+ return u.i.se & 0x7fff;
- }
-
- double fma(double x, double y, double z)
-@@ -242,16 +232,16 @@
- static inline double add_adjusted(double a, double b)
- {
- struct dd sum;
-- uint64_t hibits, lobits;
-+ union {double f; uint64_t i;} uhi, ulo;
-
- sum = dd_add(a, b);
- if (sum.lo != 0) {
-- EXTRACT_WORD64(hibits, sum.hi);
-- if ((hibits & 1) == 0) {
-+ uhi.f = sum.hi;
-+ if ((uhi.i & 1) == 0) {
- /* hibits += (int)copysign(1.0, sum.hi * sum.lo) */
-- EXTRACT_WORD64(lobits, sum.lo);
-- hibits += 1 - ((hibits ^ lobits) >> 62);
-- INSERT_WORD64(sum.hi, hibits);
-+ ulo.f = sum.lo;
-+ uhi.i += 1 - ((uhi.i ^ ulo.i) >> 62);
-+ sum.hi = uhi.f;
- }
- }
- return (sum.hi);
-@@ -265,7 +255,7 @@
- static inline double add_and_denormalize(double a, double b, int scale)
- {
- struct dd sum;
-- uint64_t hibits, lobits;
-+ union {double f; uint64_t i;} uhi, ulo;
- int bits_lost;
-
- sum = dd_add(a, b);
-@@ -281,13 +271,13 @@
- * break the ties manually.
- */
- if (sum.lo != 0) {
-- EXTRACT_WORD64(hibits, sum.hi);
-- bits_lost = -((int)(hibits >> 52) & 0x7ff) - scale + 1;
-- if (bits_lost != 1 ^ (int)(hibits & 1)) {
-+ uhi.f = sum.hi;
-+ bits_lost = -((int)(uhi.i >> 52) & 0x7ff) - scale + 1;
-+ if (bits_lost != 1 ^ (int)(uhi.i & 1)) {
- /* hibits += (int)copysign(1.0, sum.hi * sum.lo) */
-- EXTRACT_WORD64(lobits, sum.lo);
-- hibits += 1 - (((hibits ^ lobits) >> 62) & 2);
-- INSERT_WORD64(sum.hi, hibits);
-+ ulo.f = sum.lo;
-+ uhi.i += 1 - (((uhi.i ^ ulo.i) >> 62) & 2);
-+ sum.hi = uhi.f;
- }
- }
- return scalbn(sum.hi, scale);
-diff -Nur musl-0.9.13/src/math/fmal.c musl-git/src/math/fmal.c
---- musl-0.9.13/src/math/fmal.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/fmal.c 2013-09-16 20:31:39.000000000 +0200
-@@ -34,6 +34,13 @@
- }
- #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
- #include <fenv.h>
-+#if LDBL_MANT_DIG == 64
-+#define LASTBIT(u) (u.i.m & 1)
-+#define SPLIT (0x1p32L + 1)
-+#elif LDBL_MANT_DIG == 113
-+#define LASTBIT(u) (u.i.lo & 1)
-+#define SPLIT (0x1p57L + 1)
-+#endif
-
- /*
- * A struct dd represents a floating-point number with twice the precision
-@@ -75,12 +82,12 @@
- static inline long double add_adjusted(long double a, long double b)
- {
- struct dd sum;
-- union IEEEl2bits u;
-+ union ldshape u;
-
- sum = dd_add(a, b);
- if (sum.lo != 0) {
-- u.e = sum.hi;
-- if ((u.bits.manl & 1) == 0)
-+ u.f = sum.hi;
-+ if (!LASTBIT(u))
- sum.hi = nextafterl(sum.hi, INFINITY * sum.lo);
- }
- return (sum.hi);
-@@ -95,7 +102,7 @@
- {
- struct dd sum;
- int bits_lost;
-- union IEEEl2bits u;
-+ union ldshape u;
-
- sum = dd_add(a, b);
-
-@@ -110,9 +117,9 @@
- * break the ties manually.
- */
- if (sum.lo != 0) {
-- u.e = sum.hi;
-- bits_lost = -u.bits.exp - scale + 1;
-- if (bits_lost != 1 ^ (int)(u.bits.manl & 1))
-+ u.f = sum.hi;
-+ bits_lost = -u.i.se - scale + 1;
-+ if ((bits_lost != 1) ^ LASTBIT(u))
- sum.hi = nextafterl(sum.hi, INFINITY * sum.lo);
- }
- return scalbnl(sum.hi, scale);
-@@ -125,20 +132,15 @@
- */
- static inline struct dd dd_mul(long double a, long double b)
- {
--#if LDBL_MANT_DIG == 64
-- static const long double split = 0x1p32L + 1.0;
--#elif LDBL_MANT_DIG == 113
-- static const long double split = 0x1p57L + 1.0;
--#endif
- struct dd ret;
- long double ha, hb, la, lb, p, q;
-
-- p = a * split;
-+ p = a * SPLIT;
- ha = a - p;
- ha += p;
- la = a - ha;
-
-- p = b * split;
-+ p = b * SPLIT;
- hb = b - p;
- hb += p;
- lb = b - hb;
-diff -Nur musl-0.9.13/src/math/fmod.c musl-git/src/math/fmod.c
---- musl-0.9.13/src/math/fmod.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/fmod.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,145 +1,68 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/e_fmod.c */
--/*
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunSoft, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--/*
-- * fmod(x,y)
-- * Return x mod y in exact arithmetic
-- * Method: shift and subtract
-- */
--
--#include "libm.h"
--
--static const double Zero[] = {0.0, -0.0,};
-+#include <math.h>
-+#include <stdint.h>
-
- double fmod(double x, double y)
- {
-- int32_t n,hx,hy,hz,ix,iy,sx,i;
-- uint32_t lx,ly,lz;
-+ union {double f; uint64_t i;} ux = {x}, uy = {y};
-+ int ex = ux.i>>52 & 0x7ff;
-+ int ey = uy.i>>52 & 0x7ff;
-+ int sx = ux.i>>63;
-+ uint64_t i;
-+
-+ /* in the followings uxi should be ux.i, but then gcc wrongly adds */
-+ /* float load/store to inner loops ruining performance and code size */
-+ uint64_t uxi = ux.i;
-
-- EXTRACT_WORDS(hx, lx, x);
-- EXTRACT_WORDS(hy, ly, y);
-- sx = hx & 0x80000000; /* sign of x */
-- hx ^= sx; /* |x| */
-- hy &= 0x7fffffff; /* |y| */
--
-- /* purge off exception values */
-- if ((hy|ly) == 0 || hx >= 0x7ff00000 || /* y=0,or x not finite */
-- (hy|((ly|-ly)>>31)) > 0x7ff00000) /* or y is NaN */
-+ if (uy.i<<1 == 0 || isnan(y) || ex == 0x7ff)
- return (x*y)/(x*y);
-- if (hx <= hy) {
-- if (hx < hy || lx < ly) /* |x| < |y| */
-- return x;
-- if (lx == ly) /* |x| = |y|, return x*0 */
-- return Zero[(uint32_t)sx>>31];
-- }
--
-- /* determine ix = ilogb(x) */
-- if (hx < 0x00100000) { /* subnormal x */
-- if (hx == 0) {
-- for (ix = -1043, i = lx; i > 0; i <<= 1)
-- ix -= 1;
-- } else {
-- for (ix = -1022, i = hx<<11; i > 0; i <<= 1)
-- ix -= 1;
-- }
-- } else
-- ix = (hx>>20) - 1023;
--
-- /* determine iy = ilogb(y) */
-- if (hy < 0x00100000) { /* subnormal y */
-- if (hy == 0) {
-- for (iy = -1043, i = ly; i > 0; i <<= 1)
-- iy -= 1;
-- } else {
-- for (iy = -1022, i = hy<<11; i > 0; i <<= 1)
-- iy -= 1;
-- }
-- } else
-- iy = (hy>>20) - 1023;
--
-- /* set up {hx,lx}, {hy,ly} and align y to x */
-- if (ix >= -1022)
-- hx = 0x00100000|(0x000fffff&hx);
-- else { /* subnormal x, shift x to normal */
-- n = -1022-ix;
-- if (n <= 31) {
-- hx = (hx<<n)|(lx>>(32-n));
-- lx <<= n;
-- } else {
-- hx = lx<<(n-32);
-- lx = 0;
-- }
-- }
-- if(iy >= -1022)
-- hy = 0x00100000|(0x000fffff&hy);
-- else { /* subnormal y, shift y to normal */
-- n = -1022-iy;
-- if (n <= 31) {
-- hy = (hy<<n)|(ly>>(32-n));
-- ly <<= n;
-- } else {
-- hy = ly<<(n-32);
-- ly = 0;
-- }
-- }
--
-- /* fix point fmod */
-- n = ix - iy;
-- while (n--) {
-- hz = hx-hy;
-- lz = lx-ly;
-- if (lx < ly)
-- hz -= 1;
-- if (hz < 0) {
-- hx = hx+hx+(lx>>31);
-- lx = lx+lx;
-- } else {
-- if ((hz|lz) == 0) /* return sign(x)*0 */
-- return Zero[(uint32_t)sx>>31];
-- hx = hz+hz+(lz>>31);
-- lx = lz+lz;
-- }
-- }
-- hz = hx-hy;
-- lz = lx-ly;
-- if (lx < ly)
-- hz -= 1;
-- if (hz >= 0) {
-- hx = hz;
-- lx = lz;
-- }
--
-- /* convert back to floating value and restore the sign */
-- if ((hx|lx) == 0) /* return sign(x)*0 */
-- return Zero[(uint32_t)sx>>31];
-- while (hx < 0x00100000) { /* normalize x */
-- hx = hx+hx+(lx>>31);
-- lx = lx+lx;
-- iy -= 1;
-- }
-- if (iy >= -1022) { /* normalize output */
-- hx = ((hx-0x00100000)|((iy+1023)<<20));
-- INSERT_WORDS(x, hx|sx, lx);
-- } else { /* subnormal output */
-- n = -1022 - iy;
-- if (n <= 20) {
-- lx = (lx>>n)|((uint32_t)hx<<(32-n));
-- hx >>= n;
-- } else if (n <= 31) {
-- lx = (hx<<(32-n))|(lx>>n);
-- hx = sx;
-- } else {
-- lx = hx>>(n-32); hx = sx;
-- }
-- INSERT_WORDS(x, hx|sx, lx);
-- }
-- return x; /* exact output */
-+ if (uxi<<1 <= uy.i<<1) {
-+ if (uxi<<1 == uy.i<<1)
-+ return 0*x;
-+ return x;
-+ }
-+
-+ /* normalize x and y */
-+ if (!ex) {
-+ for (i = uxi<<12; i>>63 == 0; ex--, i <<= 1);
-+ uxi <<= -ex + 1;
-+ } else {
-+ uxi &= -1ULL >> 12;
-+ uxi |= 1ULL << 52;
-+ }
-+ if (!ey) {
-+ for (i = uy.i<<12; i>>63 == 0; ey--, i <<= 1);
-+ uy.i <<= -ey + 1;
-+ } else {
-+ uy.i &= -1ULL >> 12;
-+ uy.i |= 1ULL << 52;
-+ }
-+
-+ /* x mod y */
-+ for (; ex > ey; ex--) {
-+ i = uxi - uy.i;
-+ if (i >> 63 == 0) {
-+ if (i == 0)
-+ return 0*x;
-+ uxi = i;
-+ }
-+ uxi <<= 1;
-+ }
-+ i = uxi - uy.i;
-+ if (i >> 63 == 0) {
-+ if (i == 0)
-+ return 0*x;
-+ uxi = i;
-+ }
-+ for (; uxi>>52 == 0; uxi <<= 1, ex--);
-+
-+ /* scale result */
-+ if (ex > 0) {
-+ uxi -= 1ULL << 52;
-+ uxi |= (uint64_t)ex << 52;
-+ } else {
-+ uxi >>= -ex + 1;
-+ }
-+ uxi |= (uint64_t)sx << 63;
-+ ux.i = uxi;
-+ return ux.f;
- }
-diff -Nur musl-0.9.13/src/math/fmodf.c musl-git/src/math/fmodf.c
---- musl-0.9.13/src/math/fmodf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/fmodf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,104 +1,65 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/e_fmodf.c */
--/*
-- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
-- */
--/*
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunPro, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--/*
-- * fmodf(x,y)
-- * Return x mod y in exact arithmetic
-- * Method: shift and subtract
-- */
--
--#include "libm.h"
--
--static const float Zero[] = {0.0, -0.0,};
-+#include <math.h>
-+#include <stdint.h>
-
- float fmodf(float x, float y)
- {
-- int32_t n,hx,hy,hz,ix,iy,sx,i;
-+ union {float f; uint32_t i;} ux = {x}, uy = {y};
-+ int ex = ux.i>>23 & 0xff;
-+ int ey = uy.i>>23 & 0xff;
-+ uint32_t sx = ux.i & 0x80000000;
-+ uint32_t i;
-+ uint32_t uxi = ux.i;
-
-- GET_FLOAT_WORD(hx, x);
-- GET_FLOAT_WORD(hy, y);
-- sx = hx & 0x80000000; /* sign of x */
-- hx ^= sx; /* |x| */
-- hy &= 0x7fffffff; /* |y| */
--
-- /* purge off exception values */
-- if (hy == 0 || hx >= 0x7f800000 || /* y=0,or x not finite */
-- hy > 0x7f800000) /* or y is NaN */
-+ if (uy.i<<1 == 0 || isnan(y) || ex == 0xff)
- return (x*y)/(x*y);
-- if (hx < hy) /* |x| < |y| */
-+ if (uxi<<1 <= uy.i<<1) {
-+ if (uxi<<1 == uy.i<<1)
-+ return 0*x;
- return x;
-- if (hx == hy) /* |x| = |y|, return x*0 */
-- return Zero[(uint32_t)sx>>31];
--
-- /* determine ix = ilogb(x) */
-- if (hx < 0x00800000) { /* subnormal x */
-- for (ix = -126, i = hx<<8; i > 0; i <<= 1)
-- ix -= 1;
-- } else
-- ix = (hx>>23) - 127;
--
-- /* determine iy = ilogb(y) */
-- if (hy < 0x00800000) { /* subnormal y */
-- for (iy = -126, i = hy<<8; i >= 0; i <<= 1)
-- iy -= 1;
-- } else
-- iy = (hy>>23) - 127;
-+ }
-
-- /* set up {hx,lx}, {hy,ly} and align y to x */
-- if (ix >= -126)
-- hx = 0x00800000|(0x007fffff&hx);
-- else { /* subnormal x, shift x to normal */
-- n = -126-ix;
-- hx = hx<<n;
-- }
-- if (iy >= -126)
-- hy = 0x00800000|(0x007fffff&hy);
-- else { /* subnormal y, shift y to normal */
-- n = -126-iy;
-- hy = hy<<n;
-+ /* normalize x and y */
-+ if (!ex) {
-+ for (i = uxi<<9; i>>31 == 0; ex--, i <<= 1);
-+ uxi <<= -ex + 1;
-+ } else {
-+ uxi &= -1U >> 9;
-+ uxi |= 1U << 23;
-+ }
-+ if (!ey) {
-+ for (i = uy.i<<9; i>>31 == 0; ey--, i <<= 1);
-+ uy.i <<= -ey + 1;
-+ } else {
-+ uy.i &= -1U >> 9;
-+ uy.i |= 1U << 23;
- }
-
-- /* fix point fmod */
-- n = ix - iy;
-- while (n--) {
-- hz = hx-hy;
-- if (hz<0)
-- hx = hx+hx;
-- else {
-- if(hz == 0) /* return sign(x)*0 */
-- return Zero[(uint32_t)sx>>31];
-- hx = hz+hz;
-+ /* x mod y */
-+ for (; ex > ey; ex--) {
-+ i = uxi - uy.i;
-+ if (i >> 31 == 0) {
-+ if (i == 0)
-+ return 0*x;
-+ uxi = i;
- }
-+ uxi <<= 1;
-+ }
-+ i = uxi - uy.i;
-+ if (i >> 31 == 0) {
-+ if (i == 0)
-+ return 0*x;
-+ uxi = i;
- }
-- hz = hx-hy;
-- if (hz >= 0)
-- hx = hz;
-+ for (; uxi>>23 == 0; uxi <<= 1, ex--);
-
-- /* convert back to floating value and restore the sign */
-- if (hx == 0) /* return sign(x)*0 */
-- return Zero[(uint32_t)sx>>31];
-- while (hx < 0x00800000) { /* normalize x */
-- hx = hx+hx;
-- iy -= 1;
-- }
-- if (iy >= -126) { /* normalize output */
-- hx = ((hx-0x00800000)|((iy+127)<<23));
-- SET_FLOAT_WORD(x, hx|sx);
-- } else { /* subnormal output */
-- n = -126 - iy;
-- hx >>= n;
-- SET_FLOAT_WORD(x, hx|sx);
-+ /* scale result up */
-+ if (ex > 0) {
-+ uxi -= 1U << 23;
-+ uxi |= (uint32_t)ex << 23;
-+ } else {
-+ uxi >>= -ex + 1;
- }
-- return x; /* exact output */
-+ uxi |= sx;
-+ ux.i = uxi;
-+ return ux.f;
- }
-diff -Nur musl-0.9.13/src/math/fmodl.c musl-git/src/math/fmodl.c
---- musl-0.9.13/src/math/fmodl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/fmodl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,15 +1,3 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/e_fmodl.c */
--/*-
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunSoft, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--
- #include "libm.h"
-
- #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-@@ -18,141 +6,100 @@
- return fmod(x, y);
- }
- #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
--
--#define BIAS (LDBL_MAX_EXP - 1)
--
--#if LDBL_MANL_SIZE > 32
--typedef uint64_t manl_t;
--#else
--typedef uint32_t manl_t;
--#endif
--
--#if LDBL_MANH_SIZE > 32
--typedef uint64_t manh_t;
--#else
--typedef uint32_t manh_t;
--#endif
--
--/*
-- * These macros add and remove an explicit integer bit in front of the
-- * fractional mantissa, if the architecture doesn't have such a bit by
-- * default already.
-- */
--#ifdef LDBL_IMPLICIT_NBIT
--#define SET_NBIT(hx) ((hx) | (1ULL << LDBL_MANH_SIZE))
--#define HFRAC_BITS LDBL_MANH_SIZE
--#else
--#define SET_NBIT(hx) (hx)
--#define HFRAC_BITS (LDBL_MANH_SIZE - 1)
--#endif
--
--#define MANL_SHIFT (LDBL_MANL_SIZE - 1)
--
--static const long double Zero[] = {0.0, -0.0,};
--
--/*
-- * fmodl(x,y)
-- * Return x mod y in exact arithmetic
-- * Method: shift and subtract
-- *
-- * Assumptions:
-- * - The low part of the mantissa fits in a manl_t exactly.
-- * - The high part of the mantissa fits in an int64_t with enough room
-- * for an explicit integer bit in front of the fractional bits.
-- */
- long double fmodl(long double x, long double y)
- {
-- union IEEEl2bits ux, uy;
-- int64_t hx,hz; /* We need a carry bit even if LDBL_MANH_SIZE is 32. */
-- manh_t hy;
-- manl_t lx,ly,lz;
-- int ix,iy,n,sx;
--
-- ux.e = x;
-- uy.e = y;
-- sx = ux.bits.sign;
-+ union ldshape ux = {x}, uy = {y};
-+ int ex = ux.i.se & 0x7fff;
-+ int ey = uy.i.se & 0x7fff;
-+ int sx = ux.i.se & 0x8000;
-
-- /* purge off exception values */
-- if ((uy.bits.exp|uy.bits.manh|uy.bits.manl) == 0 || /* y=0 */
-- ux.bits.exp == BIAS + LDBL_MAX_EXP || /* or x not finite */
-- (uy.bits.exp == BIAS + LDBL_MAX_EXP &&
-- ((uy.bits.manh&~LDBL_NBIT)|uy.bits.manl) != 0)) /* or y is NaN */
-+ if (y == 0 || isnan(y) || ex == 0x7fff)
- return (x*y)/(x*y);
-- if (ux.bits.exp <= uy.bits.exp) {
-- if (ux.bits.exp < uy.bits.exp ||
-- (ux.bits.manh<=uy.bits.manh &&
-- (ux.bits.manh<uy.bits.manh ||
-- ux.bits.manl<uy.bits.manl))) /* |x|<|y| return x or x-y */
-- return x;
-- if (ux.bits.manh==uy.bits.manh && ux.bits.manl==uy.bits.manl)
-- return Zero[sx]; /* |x| = |y| return x*0 */
-- }
--
-- /* determine ix = ilogb(x) */
-- if (ux.bits.exp == 0) { /* subnormal x */
-- ux.e *= 0x1.0p512;
-- ix = ux.bits.exp - (BIAS + 512);
-- } else {
-- ix = ux.bits.exp - BIAS;
-- }
--
-- /* determine iy = ilogb(y) */
-- if (uy.bits.exp == 0) { /* subnormal y */
-- uy.e *= 0x1.0p512;
-- iy = uy.bits.exp - (BIAS + 512);
-- } else {
-- iy = uy.bits.exp - BIAS;
-- }
--
-- /* set up {hx,lx}, {hy,ly} and align y to x */
-- hx = SET_NBIT(ux.bits.manh);
-- hy = SET_NBIT(uy.bits.manh);
-- lx = ux.bits.manl;
-- ly = uy.bits.manl;
--
-- /* fix point fmod */
-- n = ix - iy;
--
-- while (n--) {
-- hz = hx-hy;
-- lz = lx-ly;
-- if (lx < ly)
-- hz -= 1;
-- if (hz < 0) {
-- hx = hx+hx+(lx>>MANL_SHIFT);
-- lx = lx+lx;
-+ ux.i.se = ex;
-+ uy.i.se = ey;
-+ if (ux.f <= uy.f) {
-+ if (ux.f == uy.f)
-+ return 0*x;
-+ return x;
-+ }
-+
-+ /* normalize x and y */
-+ if (!ex) {
-+ ux.f *= 0x1p120f;
-+ ex = ux.i.se - 120;
-+ }
-+ if (!ey) {
-+ uy.f *= 0x1p120f;
-+ ey = uy.i.se - 120;
-+ }
-+
-+ /* x mod y */
-+#if LDBL_MANT_DIG == 64
-+ uint64_t i, mx, my;
-+ mx = ux.i.m;
-+ my = uy.i.m;
-+ for (; ex > ey; ex--) {
-+ i = mx - my;
-+ if (mx >= my) {
-+ if (i == 0)
-+ return 0*x;
-+ mx = 2*i;
-+ } else if (2*mx < mx) {
-+ mx = 2*mx - my;
- } else {
-- if ((hz|lz)==0) /* return sign(x)*0 */
-- return Zero[sx];
-- hx = hz+hz+(lz>>MANL_SHIFT);
-- lx = lz+lz;
-+ mx = 2*mx;
- }
- }
-- hz = hx-hy;
-- lz = lx-ly;
-- if (lx < ly)
-- hz -= 1;
-- if (hz >= 0) {
-- hx = hz;
-- lx = lz;
-+ i = mx - my;
-+ if (mx >= my) {
-+ if (i == 0)
-+ return 0*x;
-+ mx = i;
-+ }
-+ for (; mx >> 63 == 0; mx *= 2, ex--);
-+ ux.i.m = mx;
-+#elif LDBL_MANT_DIG == 113
-+ uint64_t hi, lo, xhi, xlo, yhi, ylo;
-+ xhi = (ux.i2.hi & -1ULL>>16) | 1ULL<<48;
-+ yhi = (uy.i2.hi & -1ULL>>16) | 1ULL<<48;
-+ xlo = ux.i2.lo;
-+ ylo = ux.i2.lo;
-+ for (; ex > ey; ex--) {
-+ hi = xhi - yhi;
-+ lo = xlo - ylo;
-+ if (xlo < ylo)
-+ hi -= 1;
-+ if (hi >> 63 == 0) {
-+ if ((hi|lo) == 0)
-+ return 0*x;
-+ xhi = 2*hi + (lo>>63);
-+ xlo = 2*lo;
-+ } else {
-+ xhi = 2*xhi + (xlo>>63);
-+ xlo = 2*xlo;
-+ }
- }
-+ hi = xhi - yhi;
-+ lo = xlo - ylo;
-+ if (xlo < ylo)
-+ hi -= 1;
-+ if (hi >> 63 == 0) {
-+ if ((hi|lo) == 0)
-+ return 0*x;
-+ xhi = hi;
-+ xlo = lo;
-+ }
-+ for (; xhi >> 48 == 0; xhi = 2*xhi + (xlo>>63), xlo = 2*xlo, ex--);
-+ ux.i2.hi = xhi;
-+ ux.i2.lo = xlo;
-+#endif
-
-- /* convert back to floating value and restore the sign */
-- if ((hx|lx) == 0) /* return sign(x)*0 */
-- return Zero[sx];
-- while (hx < (1ULL<<HFRAC_BITS)) { /* normalize x */
-- hx = hx+hx+(lx>>MANL_SHIFT);
-- lx = lx+lx;
-- iy -= 1;
-- }
-- ux.bits.manh = hx; /* The mantissa is truncated here if needed. */
-- ux.bits.manl = lx;
-- if (iy < LDBL_MIN_EXP) {
-- ux.bits.exp = iy + (BIAS + 512);
-- ux.e *= 0x1p-512;
-- } else {
-- ux.bits.exp = iy + BIAS;
-- }
-- return ux.e; /* exact output */
-+ /* scale result */
-+ if (ex <= 0) {
-+ ux.i.se = (ex+120)|sx;
-+ ux.f *= 0x1p-120f;
-+ } else
-+ ux.i.se = ex|sx;
-+ return ux.f;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/frexpl.c musl-git/src/math/frexpl.c
---- musl-0.9.13/src/math/frexpl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/frexpl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,20 +1,20 @@
--#include <math.h>
--#include <stdint.h>
--#include <float.h>
--
--#if LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
--
--/* This version is for 80-bit little endian long double */
-+#include "libm.h"
-
-+#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
- long double frexpl(long double x, int *e)
- {
-- union { long double ld; uint16_t hw[5]; } y = { x };
-- int ee = y.hw[4]&0x7fff;
-+ return frexp(x, e);
-+}
-+#elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
-+long double frexpl(long double x, int *e)
-+{
-+ union ldshape u = {x};
-+ int ee = u.i.se & 0x7fff;
-
- if (!ee) {
- if (x) {
-- x = frexpl(x*0x1p64, e);
-- *e -= 64;
-+ x = frexpl(x*0x1p120, e);
-+ *e -= 120;
- } else *e = 0;
- return x;
- } else if (ee == 0x7fff) {
-@@ -22,16 +22,8 @@
- }
-
- *e = ee - 0x3ffe;
-- y.hw[4] &= 0x8000;
-- y.hw[4] |= 0x3ffe;
-- return y.ld;
-+ u.i.se &= 0x8000;
-+ u.i.se |= 0x3ffe;
-+ return u.f;
- }
--
--#else
--
--long double frexpl(long double x, int *e)
--{
-- return frexp(x, e);
--}
--
- #endif
-diff -Nur musl-0.9.13/src/math/hypot.c musl-git/src/math/hypot.c
---- musl-0.9.13/src/math/hypot.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/hypot.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,123 +1,67 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/e_hypot.c */
--/*
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunSoft, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--/* hypot(x,y)
-- *
-- * Method :
-- * If (assume round-to-nearest) z=x*x+y*y
-- * has error less than sqrt(2)/2 ulp, then
-- * sqrt(z) has error less than 1 ulp (exercise).
-- *
-- * So, compute sqrt(x*x+y*y) with some care as
-- * follows to get the error below 1 ulp:
-- *
-- * Assume x>y>0;
-- * (if possible, set rounding to round-to-nearest)
-- * 1. if x > 2y use
-- * x1*x1+(y*y+(x2*(x+x1))) for x*x+y*y
-- * where x1 = x with lower 32 bits cleared, x2 = x-x1; else
-- * 2. if x <= 2y use
-- * t1*y1+((x-y)*(x-y)+(t1*y2+t2*y))
-- * where t1 = 2x with lower 32 bits cleared, t2 = 2x-t1,
-- * y1= y with lower 32 bits chopped, y2 = y-y1.
-- *
-- * NOTE: scaling may be necessary if some argument is too
-- * large or too tiny
-- *
-- * Special cases:
-- * hypot(x,y) is INF if x or y is +INF or -INF; else
-- * hypot(x,y) is NAN if x or y is NAN.
-- *
-- * Accuracy:
-- * hypot(x,y) returns sqrt(x^2+y^2) with error less
-- * than 1 ulps (units in the last place)
-- */
-+#include <math.h>
-+#include <stdint.h>
-+#include <float.h>
-
--#include "libm.h"
-+#if FLT_EVAL_METHOD > 1U && LDBL_MANT_DIG == 64
-+#define SPLIT (0x1p32 + 1)
-+#else
-+#define SPLIT (0x1p27 + 1)
-+#endif
-+
-+static void sq(double_t *hi, double_t *lo, double x)
-+{
-+ double_t xh, xl, xc;
-+
-+ xc = x*SPLIT;
-+ xh = x - xc + xc;
-+ xl = x - xh;
-+ *hi = x*x;
-+ *lo = xh*xh - *hi + 2*xh*xl + xl*xl;
-+}
-
- double hypot(double x, double y)
- {
-- double a,b,t1,t2,y1,y2,w;
-- int32_t j,k,ha,hb;
-+ union {double f; uint64_t i;} ux = {x}, uy = {y}, ut;
-+ int ex, ey;
-+ double_t hx, lx, hy, ly, z;
-
-- GET_HIGH_WORD(ha, x);
-- ha &= 0x7fffffff;
-- GET_HIGH_WORD(hb, y);
-- hb &= 0x7fffffff;
-- if (hb > ha) {
-- a = y;
-- b = x;
-- j=ha; ha=hb; hb=j;
-- } else {
-- a = x;
-- b = y;
-+ /* arrange |x| >= |y| */
-+ ux.i &= -1ULL>>1;
-+ uy.i &= -1ULL>>1;
-+ if (ux.i < uy.i) {
-+ ut = ux;
-+ ux = uy;
-+ uy = ut;
- }
-- a = fabs(a);
-- b = fabs(b);
-- if (ha - hb > 0x3c00000) /* x/y > 2**60 */
-- return a+b;
-- k = 0;
-- if (ha > 0x5f300000) { /* a > 2**500 */
-- if(ha >= 0x7ff00000) { /* Inf or NaN */
-- uint32_t low;
-- /* Use original arg order iff result is NaN; quieten sNaNs. */
-- w = fabs(x+0.0) - fabs(y+0.0);
-- GET_LOW_WORD(low, a);
-- if (((ha&0xfffff)|low) == 0) w = a;
-- GET_LOW_WORD(low, b);
-- if (((hb^0x7ff00000)|low) == 0) w = b;
-- return w;
-- }
-- /* scale a and b by 2**-600 */
-- ha -= 0x25800000; hb -= 0x25800000; k += 600;
-- SET_HIGH_WORD(a, ha);
-- SET_HIGH_WORD(b, hb);
-- }
-- if (hb < 0x20b00000) { /* b < 2**-500 */
-- if (hb <= 0x000fffff) { /* subnormal b or 0 */
-- uint32_t low;
-- GET_LOW_WORD(low, b);
-- if ((hb|low) == 0)
-- return a;
-- t1 = 0;
-- SET_HIGH_WORD(t1, 0x7fd00000); /* t1 = 2^1022 */
-- b *= t1;
-- a *= t1;
-- k -= 1022;
-- } else { /* scale a and b by 2^600 */
-- ha += 0x25800000; /* a *= 2^600 */
-- hb += 0x25800000; /* b *= 2^600 */
-- k -= 600;
-- SET_HIGH_WORD(a, ha);
-- SET_HIGH_WORD(b, hb);
-- }
-- }
-- /* medium size a and b */
-- w = a - b;
-- if (w > b) {
-- t1 = 0;
-- SET_HIGH_WORD(t1, ha);
-- t2 = a-t1;
-- w = sqrt(t1*t1-(b*(-b)-t2*(a+t1)));
-- } else {
-- a = a + a;
-- y1 = 0;
-- SET_HIGH_WORD(y1, hb);
-- y2 = b - y1;
-- t1 = 0;
-- SET_HIGH_WORD(t1, ha+0x00100000);
-- t2 = a - t1;
-- w = sqrt(t1*y1-(w*(-w)-(t1*y2+t2*b)));
-+
-+ /* special cases */
-+ ex = ux.i>>52;
-+ ey = uy.i>>52;
-+ x = ux.f;
-+ y = uy.f;
-+ /* note: hypot(inf,nan) == inf */
-+ if (ey == 0x7ff)
-+ return y;
-+ if (ex == 0x7ff || uy.i == 0)
-+ return x;
-+ /* note: hypot(x,y) ~= x + y*y/x/2 with inexact for small y/x */
-+ /* 64 difference is enough for ld80 double_t */
-+ if (ex - ey > 64)
-+ return x + y;
-+
-+ /* precise sqrt argument in nearest rounding mode without overflow */
-+ /* xh*xh must not overflow and xl*xl must not underflow in sq */
-+ z = 1;
-+ if (ex > 0x3ff+510) {
-+ z = 0x1p700;
-+ x *= 0x1p-700;
-+ y *= 0x1p-700;
-+ } else if (ey < 0x3ff-450) {
-+ z = 0x1p-700;
-+ x *= 0x1p700;
-+ y *= 0x1p700;
- }
-- if (k)
-- w = scalbn(w, k);
-- return w;
-+ sq(&hx, &lx, x);
-+ sq(&hy, &ly, y);
-+ return z*sqrt(ly+lx+hy+hx);
- }
-diff -Nur musl-0.9.13/src/math/hypotf.c musl-git/src/math/hypotf.c
---- musl-0.9.13/src/math/hypotf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/hypotf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,86 +1,35 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/e_hypotf.c */
--/*
-- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
-- */
--/*
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunPro, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--
--#include "libm.h"
-+#include <math.h>
-+#include <stdint.h>
-
- float hypotf(float x, float y)
- {
-- float a,b,t1,t2,y1,y2,w;
-- int32_t j,k,ha,hb;
-+ union {float f; uint32_t i;} ux = {x}, uy = {y}, ut;
-+ float_t z;
-
-- GET_FLOAT_WORD(ha,x);
-- ha &= 0x7fffffff;
-- GET_FLOAT_WORD(hb,y);
-- hb &= 0x7fffffff;
-- if (hb > ha) {
-- a = y;
-- b = x;
-- j=ha; ha=hb; hb=j;
-- } else {
-- a = x;
-- b = y;
-- }
-- a = fabsf(a);
-- b = fabsf(b);
-- if (ha - hb > 0xf000000) /* x/y > 2**30 */
-- return a+b;
-- k = 0;
-- if (ha > 0x58800000) { /* a > 2**50 */
-- if(ha >= 0x7f800000) { /* Inf or NaN */
-- /* Use original arg order iff result is NaN; quieten sNaNs. */
-- w = fabsf(x+0.0f) - fabsf(y+0.0f);
-- if (ha == 0x7f800000) w = a;
-- if (hb == 0x7f800000) w = b;
-- return w;
-- }
-- /* scale a and b by 2**-68 */
-- ha -= 0x22000000; hb -= 0x22000000; k += 68;
-- SET_FLOAT_WORD(a, ha);
-- SET_FLOAT_WORD(b, hb);
-- }
-- if (hb < 0x26800000) { /* b < 2**-50 */
-- if (hb <= 0x007fffff) { /* subnormal b or 0 */
-- if (hb == 0)
-- return a;
-- SET_FLOAT_WORD(t1, 0x7e800000); /* t1 = 2^126 */
-- b *= t1;
-- a *= t1;
-- k -= 126;
-- } else { /* scale a and b by 2^68 */
-- ha += 0x22000000; /* a *= 2^68 */
-- hb += 0x22000000; /* b *= 2^68 */
-- k -= 68;
-- SET_FLOAT_WORD(a, ha);
-- SET_FLOAT_WORD(b, hb);
-- }
-+ ux.i &= -1U>>1;
-+ uy.i &= -1U>>1;
-+ if (ux.i < uy.i) {
-+ ut = ux;
-+ ux = uy;
-+ uy = ut;
- }
-- /* medium size a and b */
-- w = a - b;
-- if (w > b) {
-- SET_FLOAT_WORD(t1, ha&0xfffff000);
-- t2 = a - t1;
-- w = sqrtf(t1*t1-(b*(-b)-t2*(a+t1)));
-- } else {
-- a = a + a;
-- SET_FLOAT_WORD(y1, hb&0xfffff000);
-- y2 = b - y1;
-- SET_FLOAT_WORD(t1,(ha+0x00800000)&0xfffff000);
-- t2 = a - t1;
-- w = sqrtf(t1*y1-(w*(-w)-(t1*y2+t2*b)));
-+
-+ x = ux.f;
-+ y = uy.f;
-+ if (uy.i == 0xff<<23)
-+ return y;
-+ if (ux.i >= 0xff<<23 || uy.i == 0 || ux.i - uy.i >= 25<<23)
-+ return x + y;
-+
-+ z = 1;
-+ if (ux.i >= (0x7f+60)<<23) {
-+ z = 0x1p90f;
-+ x *= 0x1p-90f;
-+ y *= 0x1p-90f;
-+ } else if (uy.i < (0x7f-60)<<23) {
-+ z = 0x1p-90f;
-+ x *= 0x1p90f;
-+ y *= 0x1p90f;
- }
-- if (k)
-- w = scalbnf(w, k);
-- return w;
-+ return z*sqrtf((double)x*x + (double)y*y);
- }
-diff -Nur musl-0.9.13/src/math/hypotl.c musl-git/src/math/hypotl.c
---- musl-0.9.13/src/math/hypotl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/hypotl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,16 +1,3 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/e_hypotl.c */
--/*
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunSoft, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--/* long double version of hypot(). See comments in hypot.c. */
--
- #include "libm.h"
-
- #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-@@ -19,130 +6,61 @@
- return hypot(x, y);
- }
- #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
--
--#define GET_LDBL_EXPSIGN(i, v) do { \
-- union IEEEl2bits uv; \
-- \
-- uv.e = v; \
-- i = uv.xbits.expsign; \
--} while (0)
--
--#define GET_LDBL_MAN(h, l, v) do { \
-- union IEEEl2bits uv; \
-- \
-- uv.e = v; \
-- h = uv.bits.manh; \
-- l = uv.bits.manl; \
--} while (0)
--
--#define SET_LDBL_EXPSIGN(v, i) do { \
-- union IEEEl2bits uv; \
-- \
-- uv.e = v; \
-- uv.xbits.expsign = i; \
-- v = uv.e; \
--} while (0)
--
--#undef GET_HIGH_WORD
--#define GET_HIGH_WORD(i, v) GET_LDBL_EXPSIGN(i, v)
--#undef SET_HIGH_WORD
--#define SET_HIGH_WORD(v, i) SET_LDBL_EXPSIGN(v, i)
--
--#define DESW(exp) (exp) /* delta expsign word */
--#define ESW(exp) (MAX_EXP - 1 + (exp)) /* expsign word */
--#define MANT_DIG LDBL_MANT_DIG
--#define MAX_EXP LDBL_MAX_EXP
--
--#if LDBL_MANL_SIZE > 32
--typedef uint64_t man_t;
--#else
--typedef uint32_t man_t;
-+#if LDBL_MANT_DIG == 64
-+#define SPLIT (0x1p32L+1)
-+#elif LDBL_MANT_DIG == 113
-+#define SPLIT (0x1p57L+1)
- #endif
-
--long double hypotl(long double x, long double y)
-+static void sq(long double *hi, long double *lo, long double x)
- {
-- long double a=x,b=y,t1,t2,y1,y2,w;
-- int32_t j,k,ha,hb;
-+ long double xh, xl, xc;
-+ xc = x*SPLIT;
-+ xh = x - xc + xc;
-+ xl = x - xh;
-+ *hi = x*x;
-+ *lo = xh*xh - *hi + 2*xh*xl + xl*xl;
-+}
-
-- GET_HIGH_WORD(ha, x);
-- ha &= 0x7fff;
-- GET_HIGH_WORD(hb, y);
-- hb &= 0x7fff;
-- if (hb > ha) {
-- a = y;
-- b = x;
-- j=ha; ha=hb; hb=j;
-- } else {
-- a = x;
-- b = y;
-- }
-- a = fabsl(a);
-- b = fabsl(b);
-- if (ha - hb > DESW(MANT_DIG+7)) /* x/y > 2**(MANT_DIG+7) */
-- return a+b;
-- k = 0;
-- if (ha > ESW(MAX_EXP/2-12)) { /* a>2**(MAX_EXP/2-12) */
-- if (ha >= ESW(MAX_EXP)) { /* Inf or NaN */
-- man_t manh, manl;
-- /* Use original arg order iff result is NaN; quieten sNaNs. */
-- w = fabsl(x+0.0)-fabsl(y+0.0);
-- GET_LDBL_MAN(manh,manl,a);
-- if (manh == LDBL_NBIT && manl == 0) w = a;
-- GET_LDBL_MAN(manh,manl,b);
-- if (hb >= ESW(MAX_EXP) && manh == LDBL_NBIT && manl == 0) w = b;
-- return w;
-- }
-- /* scale a and b by 2**-(MAX_EXP/2+88) */
-- ha -= DESW(MAX_EXP/2+88); hb -= DESW(MAX_EXP/2+88);
-- k += MAX_EXP/2+88;
-- SET_HIGH_WORD(a, ha);
-- SET_HIGH_WORD(b, hb);
-- }
-- if (hb < ESW(-(MAX_EXP/2-12))) { /* b < 2**-(MAX_EXP/2-12) */
-- if (hb <= 0) { /* subnormal b or 0 */
-- man_t manh, manl;
-- GET_LDBL_MAN(manh,manl,b);
-- if ((manh|manl) == 0)
-- return a;
-- t1 = 0;
-- SET_HIGH_WORD(t1, ESW(MAX_EXP-2)); /* t1 = 2^(MAX_EXP-2) */
-- b *= t1;
-- a *= t1;
-- k -= MAX_EXP-2;
-- } else { /* scale a and b by 2^(MAX_EXP/2+88) */
-- ha += DESW(MAX_EXP/2+88);
-- hb += DESW(MAX_EXP/2+88);
-- k -= MAX_EXP/2+88;
-- SET_HIGH_WORD(a, ha);
-- SET_HIGH_WORD(b, hb);
-- }
-- }
-- /* medium size a and b */
-- w = a - b;
-- if (w > b) {
-- t1 = a;
-- union IEEEl2bits uv;
-- uv.e = t1; uv.bits.manl = 0; t1 = uv.e;
-- t2 = a-t1;
-- w = sqrtl(t1*t1-(b*(-b)-t2*(a+t1)));
-+long double hypotl(long double x, long double y)
-+{
-+ union ldshape ux = {x}, uy = {y};
-+ int ex, ey;
-+ long double hx, lx, hy, ly, z;
-+
-+ ux.i.se &= 0x7fff;
-+ uy.i.se &= 0x7fff;
-+ if (ux.i.se < uy.i.se) {
-+ ex = uy.i.se;
-+ ey = ux.i.se;
-+ x = uy.f;
-+ y = ux.f;
- } else {
-- a = a+a;
-- y1 = b;
-- union IEEEl2bits uv;
-- uv.e = y1; uv.bits.manl = 0; y1 = uv.e;
-- y2 = b - y1;
-- t1 = a;
-- uv.e = t1; uv.bits.manl = 0; t1 = uv.e;
-- t2 = a - t1;
-- w = sqrtl(t1*y1-(w*(-w)-(t1*y2+t2*b)));
-+ ex = ux.i.se;
-+ ey = uy.i.se;
-+ x = ux.f;
-+ y = uy.f;
- }
-- if(k!=0) {
-- uint32_t high;
-- t1 = 1.0;
-- GET_HIGH_WORD(high, t1);
-- SET_HIGH_WORD(t1, high+DESW(k));
-- return t1*w;
-+
-+ if (ex == 0x7fff && isinf(y))
-+ return y;
-+ if (ex == 0x7fff || y == 0)
-+ return x;
-+ if (ex - ey > LDBL_MANT_DIG)
-+ return x + y;
-+
-+ z = 1;
-+ if (ex > 0x3fff+8000) {
-+ z = 0x1p10000L;
-+ x *= 0x1p-10000L;
-+ y *= 0x1p-10000L;
-+ } else if (ey < 0x3fff-8000) {
-+ z = 0x1p-10000L;
-+ x *= 0x1p10000L;
-+ y *= 0x1p10000L;
- }
-- return w;
-+ sq(&hx, &lx, x);
-+ sq(&hy, &ly, y);
-+ return z*sqrtl(ly+lx+hy+hx);
- }
- #endif
-diff -Nur musl-0.9.13/src/math/i386/exp.s musl-git/src/math/i386/exp.s
---- musl-0.9.13/src/math/i386/exp.s 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/i386/exp.s 2013-09-16 20:31:39.000000000 +0200
-@@ -95,42 +95,32 @@
- .type exp2,@function
- exp2:
- fldl 4(%esp)
--1: pushl $0x467ff000
-- flds (%esp) # 16380
-- xorl %eax,%eax
-- pushl $0x80000000
-- push %eax
-- fld %st(1)
-- fabs
-- fucomp %st(1)
-- fnstsw
-- fstp %st(0)
-- sahf
-- ja 3f # |x| > 16380
-- jp 2f # x is nan (avoid invalid except in fistp)
-+1: sub $12,%esp
- fld %st(0)
-- fistpl 8(%esp)
-- fildl 8(%esp)
-- fxch %st(1)
-- fsub %st(1)
-- mov $0x3fff,%eax
-- add %eax,8(%esp)
-- f2xm1
-- fld1
-- faddp # 2^(x-rint(x))
-- fldt (%esp) # 2^rint(x)
-- fmulp
-- fstp %st(1)
--2: add $12,%esp
-- ret
--
--3: fld %st(0)
- fstpt (%esp)
-- fld1
- mov 8(%esp),%ax
- and $0x7fff,%ax
-- cmp $0x7fff,%ax
-- je 1f # x = +-inf
-+ 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)
-@@ -141,3 +131,19 @@
- fstp %st(1)
- add $12,%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 $12,%esp
-+ ret
-diff -Nur musl-0.9.13/src/math/ilogb.c musl-git/src/math/ilogb.c
---- musl-0.9.13/src/math/ilogb.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/ilogb.c 2013-09-16 20:31:39.000000000 +0200
-@@ -3,22 +3,24 @@
-
- int ilogb(double x)
- {
-- union dshape u = {x};
-- int e = u.bits>>52 & 0x7ff;
-+ #pragma STDC FENV_ACCESS ON
-+ union {double f; uint64_t i;} u = {x};
-+ uint64_t i = u.i;
-+ int e = i>>52 & 0x7ff;
-
- if (!e) {
-- u.bits <<= 12;
-- if (u.bits == 0) {
-+ i <<= 12;
-+ if (i == 0) {
- FORCE_EVAL(0/0.0f);
- return FP_ILOGB0;
- }
- /* subnormal x */
-- for (e = -0x3ff; u.bits < (uint64_t)1<<63; e--, u.bits<<=1);
-+ for (e = -0x3ff; i>>63 == 0; e--, i<<=1);
- return e;
- }
- if (e == 0x7ff) {
- FORCE_EVAL(0/0.0f);
-- return u.bits<<12 ? FP_ILOGBNAN : INT_MAX;
-+ return i<<12 ? FP_ILOGBNAN : INT_MAX;
- }
- return e - 0x3ff;
- }
-diff -Nur musl-0.9.13/src/math/ilogbf.c musl-git/src/math/ilogbf.c
---- musl-0.9.13/src/math/ilogbf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/ilogbf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -3,22 +3,24 @@
-
- int ilogbf(float x)
- {
-- union fshape u = {x};
-- int e = u.bits>>23 & 0xff;
-+ #pragma STDC FENV_ACCESS ON
-+ union {float f; uint32_t i;} u = {x};
-+ uint32_t i = u.i;
-+ int e = i>>23 & 0xff;
-
- if (!e) {
-- u.bits <<= 9;
-- if (u.bits == 0) {
-+ i <<= 9;
-+ if (i == 0) {
- FORCE_EVAL(0/0.0f);
- return FP_ILOGB0;
- }
- /* subnormal x */
-- for (e = -0x7f; u.bits < (uint32_t)1<<31; e--, u.bits<<=1);
-+ for (e = -0x7f; i>>31 == 0; e--, i<<=1);
- return e;
- }
- if (e == 0xff) {
- FORCE_EVAL(0/0.0f);
-- return u.bits<<9 ? FP_ILOGBNAN : INT_MAX;
-+ return i<<9 ? FP_ILOGBNAN : INT_MAX;
- }
- return e - 0x7f;
- }
-diff -Nur musl-0.9.13/src/math/ilogbl.c musl-git/src/math/ilogbl.c
---- musl-0.9.13/src/math/ilogbl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/ilogbl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -9,9 +9,10 @@
- #elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
- int ilogbl(long double x)
- {
-+ #pragma STDC FENV_ACCESS ON
- union ldshape u = {x};
-- uint64_t m = u.bits.m;
-- int e = u.bits.exp;
-+ uint64_t m = u.i.m;
-+ int e = u.i.se & 0x7fff;
-
- if (!e) {
- if (m == 0) {
-@@ -19,13 +20,35 @@
- return FP_ILOGB0;
- }
- /* subnormal x */
-- for (e = -0x3fff+1; m < (uint64_t)1<<63; e--, m<<=1);
-+ for (e = -0x3fff+1; m>>63 == 0; e--, m<<=1);
- return e;
- }
- if (e == 0x7fff) {
- FORCE_EVAL(0/0.0f);
-- /* in ld80 msb is set in inf */
-- return m & (uint64_t)-1>>1 ? FP_ILOGBNAN : INT_MAX;
-+ return m<<1 ? FP_ILOGBNAN : INT_MAX;
-+ }
-+ return e - 0x3fff;
-+}
-+#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384
-+int ilogbl(long double x)
-+{
-+ #pragma STDC FENV_ACCESS ON
-+ union ldshape u = {x};
-+ int e = u.i.se & 0x7fff;
-+
-+ if (!e) {
-+ if (x == 0) {
-+ FORCE_EVAL(0/0.0f);
-+ return FP_ILOGB0;
-+ }
-+ /* subnormal x */
-+ x *= 0x1p120;
-+ return ilogbl(x) - 120;
-+ }
-+ if (e == 0x7fff) {
-+ FORCE_EVAL(0/0.0f);
-+ u.i.se = 0;
-+ return u.f ? FP_ILOGBNAN : INT_MAX;
- }
- return e - 0x3fff;
- }
-diff -Nur musl-0.9.13/src/math/lgamma_r.c musl-git/src/math/lgamma_r.c
---- musl-0.9.13/src/math/lgamma_r.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/lgamma_r.c 2013-09-16 20:31:39.000000000 +0200
-@@ -79,6 +79,7 @@
- */
-
- #include "libm.h"
-+#include "libc.h"
-
- static const double
- two52= 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
-diff -Nur musl-0.9.13/src/math/lgammaf_r.c musl-git/src/math/lgammaf_r.c
---- musl-0.9.13/src/math/lgammaf_r.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/lgammaf_r.c 2013-09-16 20:31:39.000000000 +0200
-@@ -14,6 +14,7 @@
- */
-
- #include "libm.h"
-+#include "libc.h"
-
- static const float
- two23= 8.3886080000e+06, /* 0x4b000000 */
-diff -Nur musl-0.9.13/src/math/lgammal.c musl-git/src/math/lgammal.c
---- musl-0.9.13/src/math/lgammal.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/lgammal.c 2013-09-16 20:31:39.000000000 +0200
-@@ -87,6 +87,7 @@
-
- #define _GNU_SOURCE
- #include "libm.h"
-+#include "libc.h"
-
- #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
- double __lgamma_r(double x, int *sg);
-@@ -202,13 +203,11 @@
-
- static long double sin_pi(long double x)
- {
-+ union ldshape u = {x};
-+ uint32_t ix = (u.i.se & 0x7fffU)<<16 | u.i.m>>48;
- long double y, z;
-- int n, ix;
-- uint32_t se, i0, i1;
-+ int n;
-
-- GET_LDOUBLE_WORDS(se, i0, i1, x);
-- ix = se & 0x7fff;
-- ix = (ix << 16) | (i0 >> 16);
- if (ix < 0x3ffd8000) /* 0.25 */
- return sinl(pi * x);
- y = -x; /* x is assume negative */
-@@ -229,8 +228,8 @@
- } else {
- if (ix < 0x403e8000) /* 2^63 */
- z = y + two63; /* exact */
-- GET_LDOUBLE_WORDS(se, i0, i1, z);
-- n = i1 & 1;
-+ u.f = z;
-+ n = u.i.m & 1;
- y = n;
- n <<= 2;
- }
-@@ -261,33 +260,28 @@
-
- long double __lgammal_r(long double x, int *sg) {
- long double t, y, z, nadj, p, p1, p2, q, r, w;
-- int i, ix;
-- uint32_t se, i0, i1;
-+ union ldshape u = {x};
-+ uint32_t ix = (u.i.se & 0x7fffU)<<16 | u.i.m>>48;
-+ int sign = u.i.se >> 15;
-+ int i;
-
- *sg = 1;
-- GET_LDOUBLE_WORDS(se, i0, i1, x);
-- ix = se & 0x7fff;
--
-- if ((ix | i0 | i1) == 0) {
-- if (se & 0x8000)
-- *sg = -1;
-- return 1.0 / fabsl(x);
-- }
--
-- ix = (ix << 16) | (i0 >> 16);
-
- /* purge off +-inf, NaN, +-0, and negative arguments */
- if (ix >= 0x7fff0000)
- return x * x;
--
-+ if (x == 0) {
-+ *sg -= 2*sign;
-+ return 1.0 / fabsl(x);
-+ }
- if (ix < 0x3fc08000) { /* |x|<2**-63, return -log(|x|) */
-- if (se & 0x8000) {
-+ if (sign) {
- *sg = -1;
- return -logl(-x);
- }
- return -logl(x);
- }
-- if (se & 0x8000) {
-+ if (sign) {
- t = sin_pi (x);
- if (t == 0.0)
- return 1.0 / fabsl(t); /* -integer */
-@@ -297,11 +291,7 @@
- x = -x;
- }
-
-- /* purge off 1 and 2 */
-- if ((((ix - 0x3fff8000) | i0 | i1) == 0) ||
-- (((ix - 0x40008000) | i0 | i1) == 0))
-- r = 0;
-- else if (ix < 0x40008000) { /* x < 2.0 */
-+ if (ix < 0x40008000) { /* x < 2.0 */
- if (ix <= 0x3ffee666) { /* 8.99993896484375e-1 */
- /* lgamma(x) = lgamma(x+1) - log(x) */
- r = -logl(x);
-@@ -380,7 +370,7 @@
- r = (x - 0.5) * (t - 1.0) + w;
- } else /* 2**66 <= x <= inf */
- r = x * (logl(x) - 1.0);
-- if (se & 0x8000)
-+ if (sign)
- r = nadj - r;
- return r;
- }
-diff -Nur musl-0.9.13/src/math/log1p.c musl-git/src/math/log1p.c
---- musl-0.9.13/src/math/log1p.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/log1p.c 2013-09-16 20:31:39.000000000 +0200
-@@ -122,7 +122,7 @@
- return x+x;
- if (k != 0) {
- if (hx < 0x43400000) {
-- STRICT_ASSIGN(double, u, 1.0 + x);
-+ u = 1 + x;
- GET_HIGH_WORD(hu, u);
- k = (hu>>20) - 1023;
- c = k > 0 ? 1.0-(u-x) : x-(u-1.0); /* correction term */
-diff -Nur musl-0.9.13/src/math/log1pf.c musl-git/src/math/log1pf.c
---- musl-0.9.13/src/math/log1pf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/log1pf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -61,7 +61,7 @@
- return x+x;
- if (k != 0) {
- if (hx < 0x5a000000) {
-- STRICT_ASSIGN(float, u, 1.0f + x);
-+ u = 1 + x;
- GET_FLOAT_WORD(hu, u);
- k = (hu>>23) - 127;
- /* correction term */
-diff -Nur musl-0.9.13/src/math/logb.c musl-git/src/math/logb.c
---- musl-0.9.13/src/math/logb.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/logb.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,4 +1,4 @@
--#include "libm.h"
-+#include <math.h>
-
- /*
- special cases:
-@@ -12,6 +12,6 @@
- if (!isfinite(x))
- return x * x;
- if (x == 0)
-- return -1/(x+0);
-+ return -1/(x*x);
- return ilogb(x);
- }
-diff -Nur musl-0.9.13/src/math/logbf.c musl-git/src/math/logbf.c
---- musl-0.9.13/src/math/logbf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/logbf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,10 +1,10 @@
--#include "libm.h"
-+#include <math.h>
-
- float logbf(float x)
- {
- if (!isfinite(x))
- return x * x;
- if (x == 0)
-- return -1/(x+0);
-+ return -1/(x*x);
- return ilogbf(x);
- }
-diff -Nur musl-0.9.13/src/math/logbl.c musl-git/src/math/logbl.c
---- musl-0.9.13/src/math/logbl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/logbl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,4 +1,4 @@
--#include "libm.h"
-+#include <math.h>
- #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
- long double logbl(long double x)
- {
-@@ -10,7 +10,7 @@
- if (!isfinite(x))
- return x * x;
- if (x == 0)
-- return -1/(x+0);
-+ return -1/(x*x);
- return ilogbl(x);
- }
- #endif
-diff -Nur musl-0.9.13/src/math/modf.c musl-git/src/math/modf.c
---- musl-0.9.13/src/math/modf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/modf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -2,36 +2,33 @@
-
- double modf(double x, double *iptr)
- {
-- union {double x; uint64_t n;} u = {x};
-+ union {double f; uint64_t i;} u = {x};
- uint64_t mask;
-- int e;
--
-- e = (int)(u.n>>52 & 0x7ff) - 0x3ff;
-+ int e = (int)(u.i>>52 & 0x7ff) - 0x3ff;
-
- /* no fractional part */
- if (e >= 52) {
- *iptr = x;
-- if (e == 0x400 && u.n<<12 != 0) /* nan */
-+ if (e == 0x400 && u.i<<12 != 0) /* nan */
- return x;
-- u.n &= (uint64_t)1<<63;
-- return u.x;
-+ u.i &= 1ULL<<63;
-+ return u.f;
- }
-
- /* no integral part*/
- if (e < 0) {
-- u.n &= (uint64_t)1<<63;
-- *iptr = u.x;
-+ u.i &= 1ULL<<63;
-+ *iptr = u.f;
- return x;
- }
-
-- mask = (uint64_t)-1>>12 >> e;
-- if ((u.n & mask) == 0) {
-+ mask = -1ULL>>12>>e;
-+ if ((u.i & mask) == 0) {
- *iptr = x;
-- u.n &= (uint64_t)1<<63;
-- return u.x;
-+ u.i &= 1ULL<<63;
-+ return u.f;
- }
-- u.n &= ~mask;
-- *iptr = u.x;
-- STRICT_ASSIGN(double, x, x - *iptr);
-- return x;
-+ u.i &= ~mask;
-+ *iptr = u.f;
-+ return x - u.f;
- }
-diff -Nur musl-0.9.13/src/math/modff.c musl-git/src/math/modff.c
---- musl-0.9.13/src/math/modff.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/modff.c 2013-09-16 20:31:39.000000000 +0200
-@@ -2,36 +2,33 @@
-
- float modff(float x, float *iptr)
- {
-- union {float x; uint32_t n;} u = {x};
-+ union {float f; uint32_t i;} u = {x};
- uint32_t mask;
-- int e;
--
-- e = (int)(u.n>>23 & 0xff) - 0x7f;
-+ int e = (int)(u.i>>23 & 0xff) - 0x7f;
-
- /* no fractional part */
- if (e >= 23) {
- *iptr = x;
-- if (e == 0x80 && u.n<<9 != 0) { /* nan */
-+ if (e == 0x80 && u.i<<9 != 0) { /* nan */
- return x;
- }
-- u.n &= 0x80000000;
-- return u.x;
-+ u.i &= 0x80000000;
-+ return u.f;
- }
- /* no integral part */
- if (e < 0) {
-- u.n &= 0x80000000;
-- *iptr = u.x;
-+ u.i &= 0x80000000;
-+ *iptr = u.f;
- return x;
- }
-
- mask = 0x007fffff>>e;
-- if ((u.n & mask) == 0) {
-+ if ((u.i & mask) == 0) {
- *iptr = x;
-- u.n &= 0x80000000;
-- return u.x;
-+ u.i &= 0x80000000;
-+ return u.f;
- }
-- u.n &= ~mask;
-- *iptr = u.x;
-- STRICT_ASSIGN(float, x, x - *iptr);
-- return x;
-+ u.i &= ~mask;
-+ *iptr = u.f;
-+ return x - u.f;
- }
-diff -Nur musl-0.9.13/src/math/modfl.c musl-git/src/math/modfl.c
---- musl-0.9.13/src/math/modfl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/modfl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,40 +1,3 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_modfl.c */
--/*-
-- * Copyright (c) 2007 David Schultz <das@FreeBSD.ORG>
-- * All rights reserved.
-- *
-- * Redistribution and use in source and binary forms, with or without
-- * modification, are permitted provided that the following conditions
-- * are met:
-- * 1. Redistributions of source code must retain the above copyright
-- * notice, this list of conditions and the following disclaimer.
-- * 2. Redistributions in binary form must reproduce the above copyright
-- * notice, this list of conditions and the following disclaimer in the
-- * documentation and/or other materials provided with the distribution.
-- *
-- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-- * SUCH DAMAGE.
-- *
-- * Derived from s_modf.c, which has the following Copyright:
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunPro, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--
- #include "libm.h"
-
- #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-@@ -43,58 +6,46 @@
- return modf(x, (double *)iptr);
- }
- #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
--
--#if LDBL_MANL_SIZE > 32
--#define MASK ((uint64_t)-1)
--#else
--#define MASK ((uint32_t)-1)
-+#if LDBL_MANT_DIG == 64
-+#define TOINT 0x1p63
-+#elif LDBL_MANT_DIG == 113
-+#define TOINT 0x1p112
- #endif
--/* Return the last n bits of a word, representing the fractional part. */
--#define GETFRAC(bits, n) ((bits) & ~(MASK << (n)))
--/* The number of fraction bits in manh, not counting the integer bit */
--#define HIBITS (LDBL_MANT_DIG - LDBL_MANL_SIZE)
--
--static const long double zero[] = { 0.0, -0.0 };
--
- long double modfl(long double x, long double *iptr)
- {
-- union IEEEl2bits ux;
-- int e;
-+ union ldshape u = {x};
-+ uint64_t mask;
-+ int e = (u.i.se & 0x7fff) - 0x3fff;
-+ int s = u.i.se >> 15;
-+ long double absx;
-+ long double y;
-
-- ux.e = x;
-- e = ux.bits.exp - LDBL_MAX_EXP + 1;
-- if (e < HIBITS) { /* Integer part is in manh. */
-- if (e < 0) { /* |x|<1 */
-- *iptr = zero[ux.bits.sign];
-- return x;
-- }
-- if ((GETFRAC(ux.bits.manh, HIBITS - 1 - e)|ux.bits.manl) == 0) {
-- /* x is an integer. */
-- *iptr = x;
-- return zero[ux.bits.sign];
-- }
-- /* Clear all but the top e+1 bits. */
-- ux.bits.manh >>= HIBITS - 1 - e;
-- ux.bits.manh <<= HIBITS - 1 - e;
-- ux.bits.manl = 0;
-- *iptr = ux.e;
-- return x - ux.e;
-- } else if (e >= LDBL_MANT_DIG - 1) { /* x has no fraction part. */
-+ /* no fractional part */
-+ if (e >= LDBL_MANT_DIG-1) {
- *iptr = x;
-- if (e == LDBL_MAX_EXP && ((ux.bits.manh&~LDBL_NBIT)|ux.bits.manl)) /* nan */
-+ if (isnan(x))
- return x;
-- return zero[ux.bits.sign];
-- } else { /* Fraction part is in manl. */
-- if (GETFRAC(ux.bits.manl, LDBL_MANT_DIG - 1 - e) == 0) {
-- /* x is integral. */
-- *iptr = x;
-- return zero[ux.bits.sign];
-- }
-- /* Clear all but the top e+1 bits. */
-- ux.bits.manl >>= LDBL_MANT_DIG - 1 - e;
-- ux.bits.manl <<= LDBL_MANT_DIG - 1 - e;
-- *iptr = ux.e;
-- return x - ux.e;
-+ return s ? -0.0 : 0.0;
-+ }
-+
-+ /* no integral part*/
-+ if (e < 0) {
-+ *iptr = s ? -0.0 : 0.0;
-+ return x;
-+ }
-+
-+ /* raises spurious inexact */
-+ absx = s ? -x : x;
-+ y = absx + TOINT - TOINT - absx;
-+ if (y == 0) {
-+ *iptr = x;
-+ return s ? -0.0 : 0.0;
- }
-+ if (y > 0)
-+ y -= 1;
-+ if (s)
-+ y = -y;
-+ *iptr = x + y;
-+ return -y;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/nextafter.c musl-git/src/math/nextafter.c
---- musl-0.9.13/src/math/nextafter.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/nextafter.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,35 +1,31 @@
- #include "libm.h"
-
--#define SIGN ((uint64_t)1<<63)
--
- double nextafter(double x, double y)
- {
-- union dshape ux, uy;
-+ union {double f; uint64_t i;} ux={x}, uy={y};
- uint64_t ax, ay;
- int e;
-
- if (isnan(x) || isnan(y))
- return x + y;
-- ux.value = x;
-- uy.value = y;
-- if (ux.bits == uy.bits)
-+ if (ux.i == uy.i)
- return y;
-- ax = ux.bits & ~SIGN;
-- ay = uy.bits & ~SIGN;
-+ ax = ux.i & -1ULL/2;
-+ ay = uy.i & -1ULL/2;
- if (ax == 0) {
- if (ay == 0)
- return y;
-- ux.bits = (uy.bits & SIGN) | 1;
-- } else if (ax > ay || ((ux.bits ^ uy.bits) & SIGN))
-- ux.bits--;
-+ ux.i = (uy.i & 1ULL<<63) | 1;
-+ } else if (ax > ay || ((ux.i ^ uy.i) & 1ULL<<63))
-+ ux.i--;
- else
-- ux.bits++;
-- e = ux.bits >> 52 & 0x7ff;
-- /* raise overflow if ux.value is infinite and x is finite */
-+ ux.i++;
-+ e = ux.i >> 52 & 0x7ff;
-+ /* raise overflow if ux.f is infinite and x is finite */
- if (e == 0x7ff)
- FORCE_EVAL(x+x);
-- /* raise underflow if ux.value is subnormal or zero */
-+ /* raise underflow if ux.f is subnormal or zero */
- if (e == 0)
-- FORCE_EVAL(x*x + ux.value*ux.value);
-- return ux.value;
-+ FORCE_EVAL(x*x + ux.f*ux.f);
-+ return ux.f;
- }
-diff -Nur musl-0.9.13/src/math/nextafterf.c musl-git/src/math/nextafterf.c
---- musl-0.9.13/src/math/nextafterf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/nextafterf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,34 +1,30 @@
- #include "libm.h"
-
--#define SIGN 0x80000000
--
- float nextafterf(float x, float y)
- {
-- union fshape ux, uy;
-+ union {float f; uint32_t i;} ux={x}, uy={y};
- uint32_t ax, ay, e;
-
- if (isnan(x) || isnan(y))
- return x + y;
-- ux.value = x;
-- uy.value = y;
-- if (ux.bits == uy.bits)
-+ if (ux.i == uy.i)
- return y;
-- ax = ux.bits & ~SIGN;
-- ay = uy.bits & ~SIGN;
-+ ax = ux.i & 0x7fffffff;
-+ ay = uy.i & 0x7fffffff;
- if (ax == 0) {
- if (ay == 0)
- return y;
-- ux.bits = (uy.bits & SIGN) | 1;
-- } else if (ax > ay || ((ux.bits ^ uy.bits) & SIGN))
-- ux.bits--;
-+ ux.i = (uy.i & 0x80000000) | 1;
-+ } else if (ax > ay || ((ux.i ^ uy.i) & 0x80000000))
-+ ux.i--;
- else
-- ux.bits++;
-- e = ux.bits & 0x7f800000;
-- /* raise overflow if ux.value is infinite and x is finite */
-+ ux.i++;
-+ e = ux.i & 0x7f800000;
-+ /* raise overflow if ux.f is infinite and x is finite */
- if (e == 0x7f800000)
- FORCE_EVAL(x+x);
-- /* raise underflow if ux.value is subnormal or zero */
-+ /* raise underflow if ux.f is subnormal or zero */
- if (e == 0)
-- FORCE_EVAL(x*x + ux.value*ux.value);
-- return ux.value;
-+ FORCE_EVAL(x*x + ux.f*ux.f);
-+ return ux.f;
- }
-diff -Nur musl-0.9.13/src/math/nextafterl.c musl-git/src/math/nextafterl.c
---- musl-0.9.13/src/math/nextafterl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/nextafterl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -6,7 +6,6 @@
- return nextafter(x, y);
- }
- #elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
--#define MSB ((uint64_t)1<<63)
- long double nextafterl(long double x, long double y)
- {
- union ldshape ux, uy;
-@@ -15,32 +14,32 @@
- return x + y;
- if (x == y)
- return y;
-- ux.value = x;
-+ ux.f = x;
- if (x == 0) {
-- uy.value = y;
-- ux.bits.m = 1;
-- ux.bits.sign = uy.bits.sign;
-- } else if (x < y ^ ux.bits.sign) {
-- ux.bits.m++;
-- if ((ux.bits.m & ~MSB) == 0) {
-- ux.bits.m = MSB;
-- ux.bits.exp++;
-+ uy.f = y;
-+ ux.i.m = 1;
-+ ux.i.se = uy.i.se & 0x8000;
-+ } else if ((x < y) == !(ux.i.se & 0x8000)) {
-+ ux.i.m++;
-+ if (ux.i.m << 1 == 0) {
-+ ux.i.m = 1ULL << 63;
-+ ux.i.se++;
- }
- } else {
-- if ((ux.bits.m & ~MSB) == 0) {
-- ux.bits.exp--;
-- if (ux.bits.exp)
-- ux.bits.m = 0;
-+ if (ux.i.m << 1 == 0) {
-+ ux.i.se--;
-+ if (ux.i.se)
-+ ux.i.m = 0;
- }
-- ux.bits.m--;
-+ ux.i.m--;
- }
-- /* raise overflow if ux.value is infinite and x is finite */
-- if (ux.bits.exp == 0x7fff)
-+ /* raise overflow if ux is infinite and x is finite */
-+ if ((ux.i.se & 0x7fff) == 0x7fff)
- return x + x;
-- /* raise underflow if ux.value is subnormal or zero */
-- if (ux.bits.exp == 0)
-- FORCE_EVAL(x*x + ux.value*ux.value);
-- return ux.value;
-+ /* raise underflow if ux is subnormal or zero */
-+ if ((ux.i.se & 0x7fff) == 0)
-+ FORCE_EVAL(x*x + ux.f*ux.f);
-+ return ux.f;
- }
- #elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384
- long double nextafterl(long double x, long double y)
-@@ -51,32 +50,26 @@
- return x + y;
- if (x == y)
- return y;
-- ux.value = x;
-+ ux.f = x;
- if (x == 0) {
-- uy.value = y;
-- ux.bits.mlo = 1;
-- ux.bits.sign = uy.bits.sign;
-- } else if (x < y ^ ux.bits.sign) {
-- ux.bits.mlo++;
-- if (ux.bits.mlo == 0) {
-- ux.bits.mhi++;
-- if (ux.bits.mhi == 0)
-- ux.bits.exp++;
-- }
-+ uy.f = y;
-+ ux.i.lo = 1;
-+ ux.i.se = uy.i.se & 0x8000;
-+ } else if ((x < y) == !(ux.i.se & 0x8000)) {
-+ ux.i2.lo++;
-+ if (ux.i2.lo == 0)
-+ ux.i2.hi++;
- } else {
-- if (ux.bits.mlo == 0) {
-- if (ux.bits.mhi == 0)
-- ux.bits.exp--;
-- ux.bits.mhi--;
-- }
-- ux.bits.mlo--;
-+ if (ux.i2.lo == 0)
-+ ux.i2.hi--;
-+ ux.i2.lo--;
- }
-- /* raise overflow if ux.value is infinite and x is finite */
-- if (ux.bits.exp == 0x7fff)
-+ /* raise overflow if ux is infinite and x is finite */
-+ if ((ux.i.se & 0x7fff) == 0x7fff)
- return x + x;
-- /* raise underflow if ux.value is subnormal or zero */
-- if (ux.bits.exp == 0)
-- FORCE_EVAL(x*x + ux.value*ux.value);
-- return ux.value;
-+ /* raise underflow if ux is subnormal or zero */
-+ if ((ux.i.se & 0x7fff) == 0)
-+ FORCE_EVAL(x*x + ux.f*ux.f);
-+ return ux.f;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/nexttoward.c musl-git/src/math/nexttoward.c
---- musl-0.9.13/src/math/nexttoward.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/nexttoward.c 2013-09-16 20:31:39.000000000 +0200
-@@ -6,40 +6,37 @@
- return nextafter(x, y);
- }
- #else
--#define SIGN ((uint64_t)1<<63)
--
- double nexttoward(double x, long double y)
- {
-- union dshape ux;
-+ union {double f; uint64_t i;} ux = {x};
- int e;
-
- if (isnan(x) || isnan(y))
- return x + y;
- if (x == y)
- return y;
-- ux.value = x;
- if (x == 0) {
-- ux.bits = 1;
-+ ux.i = 1;
- if (signbit(y))
-- ux.bits |= SIGN;
-+ ux.i |= 1ULL<<63;
- } else if (x < y) {
- if (signbit(x))
-- ux.bits--;
-+ ux.i--;
- else
-- ux.bits++;
-+ ux.i++;
- } else {
- if (signbit(x))
-- ux.bits++;
-+ ux.i++;
- else
-- ux.bits--;
-+ ux.i--;
- }
-- e = ux.bits>>52 & 0x7ff;
-- /* raise overflow if ux.value is infinite and x is finite */
-+ e = ux.i>>52 & 0x7ff;
-+ /* raise overflow if ux.f is infinite and x is finite */
- if (e == 0x7ff)
- FORCE_EVAL(x+x);
-- /* raise underflow if ux.value is subnormal or zero */
-+ /* raise underflow if ux.f is subnormal or zero */
- if (e == 0)
-- FORCE_EVAL(x*x + ux.value*ux.value);
-- return ux.value;
-+ FORCE_EVAL(x*x + ux.f*ux.f);
-+ return ux.f;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/nexttowardf.c musl-git/src/math/nexttowardf.c
---- musl-0.9.13/src/math/nexttowardf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/nexttowardf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -2,35 +2,34 @@
-
- float nexttowardf(float x, long double y)
- {
-- union fshape ux;
-+ union {float f; uint32_t i;} ux = {x};
- uint32_t e;
-
- if (isnan(x) || isnan(y))
- return x + y;
- if (x == y)
- return y;
-- ux.value = x;
- if (x == 0) {
-- ux.bits = 1;
-+ ux.i = 1;
- if (signbit(y))
-- ux.bits |= 0x80000000;
-+ ux.i |= 0x80000000;
- } else if (x < y) {
- if (signbit(x))
-- ux.bits--;
-+ ux.i--;
- else
-- ux.bits++;
-+ ux.i++;
- } else {
- if (signbit(x))
-- ux.bits++;
-+ ux.i++;
- else
-- ux.bits--;
-+ ux.i--;
- }
-- e = ux.bits & 0x7f800000;
-- /* raise overflow if ux.value is infinite and x is finite */
-+ e = ux.i & 0x7f800000;
-+ /* raise overflow if ux.f is infinite and x is finite */
- if (e == 0x7f800000)
- FORCE_EVAL(x+x);
-- /* raise underflow if ux.value is subnormal or zero */
-+ /* raise underflow if ux.f is subnormal or zero */
- if (e == 0)
-- FORCE_EVAL(x*x + ux.value*ux.value);
-- return ux.value;
-+ FORCE_EVAL(x*x + ux.f*ux.f);
-+ return ux.f;
- }
-diff -Nur musl-0.9.13/src/math/remainder.c musl-git/src/math/remainder.c
---- musl-0.9.13/src/math/remainder.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/remainder.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,66 +1,7 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/e_remainder.c */
--/*
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunSoft, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--/* remainder(x,p)
-- * Return :
-- * returns x REM p = x - [x/p]*p as if in infinite
-- * precise arithmetic, where [x/p] is the (infinite bit)
-- * integer nearest x/p (in half way case choose the even one).
-- * Method :
-- * Based on fmod() return x-[x/p]chopped*p exactlp.
-- */
-+#include <math.h>
-
--#include "libm.h"
--
--double remainder(double x, double p)
-+double remainder(double x, double y)
- {
-- int32_t hx,hp;
-- uint32_t sx,lx,lp;
-- double p_half;
--
-- EXTRACT_WORDS(hx, lx, x);
-- EXTRACT_WORDS(hp, lp, p);
-- sx = hx & 0x80000000;
-- hp &= 0x7fffffff;
-- hx &= 0x7fffffff;
--
-- /* purge off exception values */
-- if ((hp|lp) == 0 || /* p = 0 */
-- hx >= 0x7ff00000 || /* x not finite */
-- (hp >= 0x7ff00000 && (hp-0x7ff00000 | lp) != 0)) /* p is NaN */
-- return (x*p)/(x*p);
--
-- if (hp <= 0x7fdfffff)
-- x = fmod(x, p+p); /* now x < 2p */
-- if (((hx-hp)|(lx-lp)) == 0)
-- return 0.0*x;
-- x = fabs(x);
-- p = fabs(p);
-- if (hp < 0x00200000) {
-- if (x + x > p) {
-- x -= p;
-- if (x + x >= p)
-- x -= p;
-- }
-- } else {
-- p_half = 0.5*p;
-- if (x > p_half) {
-- x -= p;
-- if (x >= p_half)
-- x -= p;
-- }
-- }
-- GET_HIGH_WORD(hx, x);
-- if ((hx&0x7fffffff) == 0)
-- hx = 0;
-- SET_HIGH_WORD(x, hx^sx);
-- return x;
-+ int q;
-+ return remquo(x, y, &q);
- }
-diff -Nur musl-0.9.13/src/math/remainderf.c musl-git/src/math/remainderf.c
---- musl-0.9.13/src/math/remainderf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/remainderf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,59 +1,7 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/e_remainderf.c */
--/*
-- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
-- */
--/*
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunPro, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
-+#include <math.h>
-
--#include "libm.h"
--
--float remainderf(float x, float p)
-+float remainderf(float x, float y)
- {
-- int32_t hx,hp;
-- uint32_t sx;
-- float p_half;
--
-- GET_FLOAT_WORD(hx, x);
-- GET_FLOAT_WORD(hp, p);
-- sx = hx & 0x80000000;
-- hp &= 0x7fffffff;
-- hx &= 0x7fffffff;
--
-- /* purge off exception values */
-- if (hp == 0 || hx >= 0x7f800000 || hp > 0x7f800000) /* p = 0, x not finite, p is NaN */
-- return (x*p)/(x*p);
--
-- if (hp <= 0x7effffff)
-- x = fmodf(x, p + p); /* now x < 2p */
-- if (hx - hp == 0)
-- return 0.0f*x;
-- x = fabsf(x);
-- p = fabsf(p);
-- if (hp < 0x01000000) {
-- if (x + x > p) {
-- x -= p;
-- if (x + x >= p)
-- x -= p;
-- }
-- } else {
-- p_half = 0.5f*p;
-- if (x > p_half) {
-- x -= p;
-- if (x >= p_half)
-- x -= p;
-- }
-- }
-- GET_FLOAT_WORD(hx, x);
-- if ((hx & 0x7fffffff) == 0)
-- hx = 0;
-- SET_FLOAT_WORD(x, hx ^ sx);
-- return x;
-+ int q;
-+ return remquof(x, y, &q);
- }
-diff -Nur musl-0.9.13/src/math/remquo.c musl-git/src/math/remquo.c
---- musl-0.9.13/src/math/remquo.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/remquo.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,171 +1,82 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_remquo.c */
--/*-
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunSoft, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--/*
-- * Return the IEEE remainder and set *quo to the last n bits of the
-- * quotient, rounded to the nearest integer. We choose n=31 because
-- * we wind up computing all the integer bits of the quotient anyway as
-- * a side-effect of computing the remainder by the shift and subtract
-- * method. In practice, this is far more bits than are needed to use
-- * remquo in reduction algorithms.
-- */
--
--#include "libm.h"
--
--static const double Zero[] = {0.0, -0.0,};
-+#include <math.h>
-+#include <stdint.h>
-
- double remquo(double x, double y, int *quo)
- {
-- int32_t n,hx,hy,hz,ix,iy,sx,i;
-- uint32_t lx,ly,lz,q,sxy;
--
-- EXTRACT_WORDS(hx, lx, x);
-- EXTRACT_WORDS(hy, ly, y);
-- sxy = (hx ^ hy) & 0x80000000;
-- sx = hx & 0x80000000; /* sign of x */
-- hx ^= sx; /* |x| */
-- hy &= 0x7fffffff; /* |y| */
-+ union {double f; uint64_t i;} ux = {x}, uy = {y};
-+ int ex = ux.i>>52 & 0x7ff;
-+ int ey = uy.i>>52 & 0x7ff;
-+ int sx = ux.i>>63;
-+ int sy = uy.i>>63;
-+ uint32_t q;
-+ uint64_t i;
-+ uint64_t uxi = ux.i;
-
-- /* purge off exception values */
-- if ((hy|ly) == 0 || hx >= 0x7ff00000 || /* y = 0, or x not finite */
-- (hy|((ly|-ly)>>31)) > 0x7ff00000) /* or y is NaN */
-+ *quo = 0;
-+ if (uy.i<<1 == 0 || isnan(y) || ex == 0x7ff)
- return (x*y)/(x*y);
-- if (hx <= hy) {
-- if (hx < hy || lx < ly) { /* |x| < |y| return x or x-y */
-- q = 0;
-- goto fixup;
-- }
-- if (lx == ly) { /* |x| = |y| return x*0 */
-- *quo = sxy ? -1 : 1;
-- return Zero[(uint32_t)sx>>31];
-- }
-- }
-+ if (ux.i<<1 == 0)
-+ return x;
-
-- // FIXME: use ilogb?
--
-- /* determine ix = ilogb(x) */
-- if (hx < 0x00100000) { /* subnormal x */
-- if (hx == 0) {
-- for (ix = -1043, i=lx; i>0; i<<=1) ix--;
-- } else {
-- for (ix = -1022, i=hx<<11; i>0; i<<=1) ix--;
-- }
-- } else
-- ix = (hx>>20) - 1023;
--
-- /* determine iy = ilogb(y) */
-- if (hy < 0x00100000) { /* subnormal y */
-- if (hy == 0) {
-- for (iy = -1043, i=ly; i>0; i<<=1) iy--;
-- } else {
-- for (iy = -1022, i=hy<<11; i>0; i<<=1) iy--;
-- }
-- } else
-- iy = (hy>>20) - 1023;
--
-- /* set up {hx,lx}, {hy,ly} and align y to x */
-- if (ix >= -1022)
-- hx = 0x00100000|(0x000fffff&hx);
-- else { /* subnormal x, shift x to normal */
-- n = -1022 - ix;
-- if (n <= 31) {
-- hx = (hx<<n)|(lx>>(32-n));
-- lx <<= n;
-- } else {
-- hx = lx<<(n-32);
-- lx = 0;
-- }
-- }
-- if (iy >= -1022)
-- hy = 0x00100000|(0x000fffff&hy);
-- else { /* subnormal y, shift y to normal */
-- n = -1022 - iy;
-- if (n <= 31) {
-- hy = (hy<<n)|(ly>>(32-n));
-- ly <<= n;
-- } else {
-- hy = ly<<(n-32);
-- ly = 0;
-- }
-+ /* normalize x and y */
-+ if (!ex) {
-+ for (i = uxi<<12; i>>63 == 0; ex--, i <<= 1);
-+ uxi <<= -ex + 1;
-+ } else {
-+ uxi &= -1ULL >> 12;
-+ uxi |= 1ULL << 52;
-+ }
-+ if (!ey) {
-+ for (i = uy.i<<12; i>>63 == 0; ey--, i <<= 1);
-+ uy.i <<= -ey + 1;
-+ } else {
-+ uy.i &= -1ULL >> 12;
-+ uy.i |= 1ULL << 52;
- }
-
-- /* fix point fmod */
-- n = ix - iy;
- q = 0;
-- while (n--) {
-- hz = hx - hy;
-- lz = lx - ly;
-- if (lx < ly)
-- hz--;
-- if (hz < 0) {
-- hx = hx + hx + (lx>>31);
-- lx = lx + lx;
-- } else {
-- hx = hz + hz + (lz>>31);
-- lx = lz + lz;
-+ if (ex < ey) {
-+ if (ex+1 == ey)
-+ goto end;
-+ return x;
-+ }
-+
-+ /* x mod y */
-+ for (; ex > ey; ex--) {
-+ i = uxi - uy.i;
-+ if (i >> 63 == 0) {
-+ uxi = i;
- q++;
- }
-+ uxi <<= 1;
- q <<= 1;
- }
-- hz = hx - hy;
-- lz = lx - ly;
-- if (lx < ly)
-- hz--;
-- if (hz >= 0) {
-- hx = hz;
-- lx = lz;
-+ i = uxi - uy.i;
-+ if (i >> 63 == 0) {
-+ uxi = i;
- q++;
- }
--
-- /* convert back to floating value and restore the sign */
-- if ((hx|lx) == 0) { /* return sign(x)*0 */
-- q &= 0x7fffffff;
-- *quo = sxy ? -q : q;
-- return Zero[(uint32_t)sx>>31];
-- }
-- while (hx < 0x00100000) { /* normalize x */
-- hx = hx + hx + (lx>>31);
-- lx = lx + lx;
-- iy--;
-- }
-- if (iy >= -1022) { /* normalize output */
-- hx = (hx-0x00100000)|((iy+1023)<<20);
-- } else { /* subnormal output */
-- n = -1022 - iy;
-- if (n <= 20) {
-- lx = (lx>>n)|((uint32_t)hx<<(32-n));
-- hx >>= n;
-- } else if (n <= 31) {
-- lx = (hx<<(32-n))|(lx>>n);
-- hx = 0;
-- } else {
-- lx = hx>>(n-32);
-- hx = 0;
-- }
-- }
--fixup:
-- INSERT_WORDS(x, hx, lx);
-- y = fabs(y);
-- if (y < 0x1p-1021) {
-- if (x + x > y || (x + x == y && (q & 1))) {
-- q++;
-- x -= y;
-- }
-- } else if (x > 0.5*y || (x == 0.5*y && (q & 1))) {
-- q++;
-+ if (uxi == 0)
-+ ex = -60;
-+ else
-+ for (; uxi>>52 == 0; uxi <<= 1, ex--);
-+end:
-+ /* scale result and decide between |x| and |x|-|y| */
-+ if (ex > 0) {
-+ uxi -= 1ULL << 52;
-+ uxi |= (uint64_t)ex << 52;
-+ } else {
-+ uxi >>= -ex + 1;
-+ }
-+ ux.i = uxi;
-+ x = ux.f;
-+ if (sy)
-+ y = -y;
-+ if (ex == ey || (ex+1 == ey && (2*x > y || (2*x == y && q%2)))) {
- x -= y;
-+ q++;
- }
-- GET_HIGH_WORD(hx, x);
-- SET_HIGH_WORD(x, hx ^ sx);
- q &= 0x7fffffff;
-- *quo = sxy ? -q : q;
-- return x;
-+ *quo = sx^sy ? -(int)q : (int)q;
-+ return sx ? -x : x;
- }
-diff -Nur musl-0.9.13/src/math/remquof.c musl-git/src/math/remquof.c
---- musl-0.9.13/src/math/remquof.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/remquof.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,126 +1,82 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_remquof.c */
--/*-
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunSoft, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--/*
-- * Return the IEEE remainder and set *quo to the last n bits of the
-- * quotient, rounded to the nearest integer. We choose n=31 because
-- * we wind up computing all the integer bits of the quotient anyway as
-- * a side-effect of computing the remainder by the shift and subtract
-- * method. In practice, this is far more bits than are needed to use
-- * remquo in reduction algorithms.
-- */
--
--#include "libm.h"
--
--static const float Zero[] = {0.0, -0.0,};
-+#include <math.h>
-+#include <stdint.h>
-
- float remquof(float x, float y, int *quo)
- {
-- int32_t n,hx,hy,hz,ix,iy,sx,i;
-- uint32_t q,sxy;
-+ union {float f; uint32_t i;} ux = {x}, uy = {y};
-+ int ex = ux.i>>23 & 0xff;
-+ int ey = uy.i>>23 & 0xff;
-+ int sx = ux.i>>31;
-+ int sy = uy.i>>31;
-+ uint32_t q;
-+ uint32_t i;
-+ uint32_t uxi = ux.i;
-
-- GET_FLOAT_WORD(hx, x);
-- GET_FLOAT_WORD(hy, y);
-- sxy = (hx ^ hy) & 0x80000000;
-- sx = hx & 0x80000000; /* sign of x */
-- hx ^= sx; /* |x| */
-- hy &= 0x7fffffff; /* |y| */
--
-- /* purge off exception values */
-- if (hy == 0 || hx >= 0x7f800000 || hy > 0x7f800000) /* y=0,NaN;or x not finite */
-+ *quo = 0;
-+ if (uy.i<<1 == 0 || isnan(y) || ex == 0xff)
- return (x*y)/(x*y);
-- if (hx < hy) { /* |x| < |y| return x or x-y */
-- q = 0;
-- goto fixup;
-- } else if(hx==hy) { /* |x| = |y| return x*0*/
-- *quo = sxy ? -1 : 1;
-- return Zero[(uint32_t)sx>>31];
-- }
-+ if (ux.i<<1 == 0)
-+ return x;
-
-- /* determine ix = ilogb(x) */
-- if (hx < 0x00800000) { /* subnormal x */
-- for (ix = -126, i=hx<<8; i>0; i<<=1) ix--;
-- } else
-- ix = (hx>>23) - 127;
--
-- /* determine iy = ilogb(y) */
-- if (hy < 0x00800000) { /* subnormal y */
-- for (iy = -126, i=hy<<8; i>0; i<<=1) iy--;
-- } else
-- iy = (hy>>23) - 127;
--
-- /* set up {hx,lx}, {hy,ly} and align y to x */
-- if (ix >= -126)
-- hx = 0x00800000|(0x007fffff&hx);
-- else { /* subnormal x, shift x to normal */
-- n = -126 - ix;
-- hx <<= n;
-- }
-- if (iy >= -126)
-- hy = 0x00800000|(0x007fffff&hy);
-- else { /* subnormal y, shift y to normal */
-- n = -126 - iy;
-- hy <<= n;
-+ /* normalize x and y */
-+ if (!ex) {
-+ for (i = uxi<<9; i>>31 == 0; ex--, i <<= 1);
-+ uxi <<= -ex + 1;
-+ } else {
-+ uxi &= -1U >> 9;
-+ uxi |= 1U << 23;
-+ }
-+ if (!ey) {
-+ for (i = uy.i<<9; i>>31 == 0; ey--, i <<= 1);
-+ uy.i <<= -ey + 1;
-+ } else {
-+ uy.i &= -1U >> 9;
-+ uy.i |= 1U << 23;
- }
-
-- /* fix point fmod */
-- n = ix - iy;
- q = 0;
-- while (n--) {
-- hz = hx - hy;
-- if (hz < 0)
-- hx = hx << 1;
-- else {
-- hx = hz << 1;
-+ if (ex < ey) {
-+ if (ex+1 == ey)
-+ goto end;
-+ return x;
-+ }
-+
-+ /* x mod y */
-+ for (; ex > ey; ex--) {
-+ i = uxi - uy.i;
-+ if (i >> 31 == 0) {
-+ uxi = i;
- q++;
- }
-+ uxi <<= 1;
- q <<= 1;
- }
-- hz = hx - hy;
-- if (hz >= 0) {
-- hx = hz;
-+ i = uxi - uy.i;
-+ if (i >> 31 == 0) {
-+ uxi = i;
- q++;
- }
--
-- /* convert back to floating value and restore the sign */
-- if (hx == 0) { /* return sign(x)*0 */
-- q &= 0x7fffffff;
-- *quo = sxy ? -q : q;
-- return Zero[(uint32_t)sx>>31];
-- }
-- while (hx < 0x00800000) { /* normalize x */
-- hx <<= 1;
-- iy--;
-- }
-- if (iy >= -126) { /* normalize output */
-- hx = (hx-0x00800000)|((iy+127)<<23);
-- } else { /* subnormal output */
-- n = -126 - iy;
-- hx >>= n;
-- }
--fixup:
-- SET_FLOAT_WORD(x,hx);
-- y = fabsf(y);
-- if (y < 0x1p-125f) {
-- if (x + x > y || (x + x == y && (q & 1))) {
-- q++;
-- x -= y;
-- }
-- } else if (x > 0.5f*y || (x == 0.5f*y && (q & 1))) {
-- q++;
-+ if (uxi == 0)
-+ ex = -30;
-+ else
-+ for (; uxi>>23 == 0; uxi <<= 1, ex--);
-+end:
-+ /* scale result and decide between |x| and |x|-|y| */
-+ if (ex > 0) {
-+ uxi -= 1U << 23;
-+ uxi |= (uint32_t)ex << 23;
-+ } else {
-+ uxi >>= -ex + 1;
-+ }
-+ ux.i = uxi;
-+ x = ux.f;
-+ if (sy)
-+ y = -y;
-+ if (ex == ey || (ex+1 == ey && (2*x > y || (2*x == y && q%2)))) {
- x -= y;
-+ q++;
- }
-- GET_FLOAT_WORD(hx, x);
-- SET_FLOAT_WORD(x, hx ^ sx);
- q &= 0x7fffffff;
-- *quo = sxy ? -q : q;
-- return x;
-+ *quo = sx^sy ? -(int)q : (int)q;
-+ return sx ? -x : x;
- }
-diff -Nur musl-0.9.13/src/math/remquol.c musl-git/src/math/remquol.c
---- musl-0.9.13/src/math/remquol.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/remquol.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,15 +1,3 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_remquol.c */
--/*-
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunSoft, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--
- #include "libm.h"
-
- #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-@@ -18,177 +6,119 @@
- return remquo(x, y, quo);
- }
- #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
--
--#define BIAS (LDBL_MAX_EXP - 1)
--
--#if LDBL_MANL_SIZE > 32
--typedef uint64_t manl_t;
--#else
--typedef uint32_t manl_t;
--#endif
--
--#if LDBL_MANH_SIZE > 32
--typedef uint64_t manh_t;
--#else
--typedef uint32_t manh_t;
--#endif
--
--/*
-- * These macros add and remove an explicit integer bit in front of the
-- * fractional mantissa, if the architecture doesn't have such a bit by
-- * default already.
-- */
--#ifdef LDBL_IMPLICIT_NBIT
--#define SET_NBIT(hx) ((hx) | (1ULL << LDBL_MANH_SIZE))
--#define HFRAC_BITS LDBL_MANH_SIZE
--#else
--#define SET_NBIT(hx) (hx)
--#define HFRAC_BITS (LDBL_MANH_SIZE - 1)
--#endif
--
--#define MANL_SHIFT (LDBL_MANL_SIZE - 1)
--
--static const long double Zero[] = {0.0, -0.0};
--
--/*
-- * Return the IEEE remainder and set *quo to the last n bits of the
-- * quotient, rounded to the nearest integer. We choose n=31 because
-- * we wind up computing all the integer bits of the quotient anyway as
-- * a side-effect of computing the remainder by the shift and subtract
-- * method. In practice, this is far more bits than are needed to use
-- * remquo in reduction algorithms.
-- *
-- * Assumptions:
-- * - The low part of the mantissa fits in a manl_t exactly.
-- * - The high part of the mantissa fits in an int64_t with enough room
-- * for an explicit integer bit in front of the fractional bits.
-- */
- long double remquol(long double x, long double y, int *quo)
- {
-- union IEEEl2bits ux, uy;
-- int64_t hx,hz; /* We need a carry bit even if LDBL_MANH_SIZE is 32. */
-- manh_t hy;
-- manl_t lx,ly,lz;
-- int ix,iy,n,q,sx,sxy;
-+ union ldshape ux = {x}, uy = {y};
-+ int ex = ux.i.se & 0x7fff;
-+ int ey = uy.i.se & 0x7fff;
-+ int sx = ux.i.se >> 15;
-+ int sy = uy.i.se >> 15;
-+ uint32_t q;
-
-- ux.e = x;
-- uy.e = y;
-- sx = ux.bits.sign;
-- sxy = sx ^ uy.bits.sign;
-- ux.bits.sign = 0; /* |x| */
-- uy.bits.sign = 0; /* |y| */
-- x = ux.e;
--
-- /* purge off exception values */
-- if ((uy.bits.exp|uy.bits.manh|uy.bits.manl)==0 || /* y=0 */
-- (ux.bits.exp == BIAS + LDBL_MAX_EXP) || /* or x not finite */
-- (uy.bits.exp == BIAS + LDBL_MAX_EXP &&
-- ((uy.bits.manh&~LDBL_NBIT)|uy.bits.manl)!=0)) /* or y is NaN */
-+ *quo = 0;
-+ if (y == 0 || isnan(y) || ex == 0x7fff)
- return (x*y)/(x*y);
-- if (ux.bits.exp <= uy.bits.exp) {
-- if ((ux.bits.exp < uy.bits.exp) ||
-- (ux.bits.manh <= uy.bits.manh &&
-- (ux.bits.manh < uy.bits.manh ||
-- ux.bits.manl < uy.bits.manl))) {
-- q = 0;
-- goto fixup; /* |x|<|y| return x or x-y */
-- }
-- if (ux.bits.manh == uy.bits.manh && ux.bits.manl == uy.bits.manl) {
-- *quo = sxy ? -1 : 1;
-- return Zero[sx]; /* |x|=|y| return x*0*/
-- }
-- }
--
-- /* determine ix = ilogb(x) */
-- if (ux.bits.exp == 0) { /* subnormal x */
-- ux.e *= 0x1.0p512;
-- ix = ux.bits.exp - (BIAS + 512);
-- } else {
-- ix = ux.bits.exp - BIAS;
-- }
-+ if (x == 0)
-+ return x;
-
-- /* determine iy = ilogb(y) */
-- if (uy.bits.exp == 0) { /* subnormal y */
-- uy.e *= 0x1.0p512;
-- iy = uy.bits.exp - (BIAS + 512);
-- } else {
-- iy = uy.bits.exp - BIAS;
-+ /* normalize x and y */
-+ if (!ex) {
-+ ux.i.se = ex;
-+ ux.f *= 0x1p120f;
-+ ex = ux.i.se - 120;
-+ }
-+ if (!ey) {
-+ uy.i.se = ey;
-+ uy.f *= 0x1p120f;
-+ ey = uy.i.se - 120;
- }
-
-- /* set up {hx,lx}, {hy,ly} and align y to x */
-- hx = SET_NBIT(ux.bits.manh);
-- hy = SET_NBIT(uy.bits.manh);
-- lx = ux.bits.manl;
-- ly = uy.bits.manl;
--
-- /* fix point fmod */
-- n = ix - iy;
- q = 0;
--
-- while (n--) {
-- hz = hx - hy;
-- lz = lx - ly;
-- if (lx < ly)
-- hz -= 1;
-- if (hz < 0) {
-- hx = hx + hx + (lx>>MANL_SHIFT);
-- lx = lx + lx;
-- } else {
-- hx = hz + hz + (lz>>MANL_SHIFT);
-- lx = lz + lz;
-+ if (ex >= ey) {
-+ /* x mod y */
-+#if LDBL_MANT_DIG == 64
-+ uint64_t i, mx, my;
-+ mx = ux.i.m;
-+ my = uy.i.m;
-+ for (; ex > ey; ex--) {
-+ i = mx - my;
-+ if (mx >= my) {
-+ mx = 2*i;
-+ q++;
-+ q <<= 1;
-+ } else if (2*mx < mx) {
-+ mx = 2*mx - my;
-+ q <<= 1;
-+ q++;
-+ } else {
-+ mx = 2*mx;
-+ q <<= 1;
-+ }
-+ }
-+ i = mx - my;
-+ if (mx >= my) {
-+ mx = i;
- q++;
- }
-- q <<= 1;
-- }
-- hz = hx - hy;
-- lz = lx - ly;
-- if (lx < ly)
-- hz -= 1;
-- if (hz >= 0) {
-- hx = hz;
-- lx = lz;
-- q++;
-- }
--
-- /* convert back to floating value and restore the sign */
-- if ((hx|lx) == 0) { /* return sign(x)*0 */
-- q &= 0x7fffffff;
-- *quo = sxy ? -q : q;
-- return Zero[sx];
-- }
-- while (hx < (1ULL<<HFRAC_BITS)) { /* normalize x */
-- hx = hx + hx + (lx>>MANL_SHIFT);
-- lx = lx + lx;
-- iy -= 1;
-- }
-- ux.bits.manh = hx; /* The integer bit is truncated here if needed. */
-- ux.bits.manl = lx;
-- if (iy < LDBL_MIN_EXP) {
-- ux.bits.exp = iy + (BIAS + 512);
-- ux.e *= 0x1p-512;
-- } else {
-- ux.bits.exp = iy + BIAS;
-- }
-- ux.bits.sign = 0;
-- x = ux.e;
--fixup:
-- y = fabsl(y);
-- if (y < LDBL_MIN * 2) {
-- if (x + x > y || (x + x == y && (q & 1))) {
-+ if (mx == 0)
-+ ex = -120;
-+ else
-+ for (; mx >> 63 == 0; mx *= 2, ex--);
-+ ux.i.m = mx;
-+#elif LDBL_MANT_DIG == 113
-+ uint64_t hi, lo, xhi, xlo, yhi, ylo;
-+ xhi = (ux.i2.hi & -1ULL>>16) | 1ULL<<48;
-+ yhi = (uy.i2.hi & -1ULL>>16) | 1ULL<<48;
-+ xlo = ux.i2.lo;
-+ ylo = ux.i2.lo;
-+ for (; ex > ey; ex--) {
-+ hi = xhi - yhi;
-+ lo = xlo - ylo;
-+ if (xlo < ylo)
-+ hi -= 1;
-+ if (hi >> 63 == 0) {
-+ xhi = 2*hi + (lo>>63);
-+ xlo = 2*lo;
-+ q++;
-+ } else {
-+ xhi = 2*xhi + (xlo>>63);
-+ xlo = 2*xlo;
-+ }
-+ q <<= 1;
-+ }
-+ hi = xhi - yhi;
-+ lo = xlo - ylo;
-+ if (xlo < ylo)
-+ hi -= 1;
-+ if (hi >> 63 == 0) {
-+ xhi = hi;
-+ xlo = lo;
- q++;
-- x-=y;
- }
-- } else if (x > 0.5*y || (x == 0.5*y && (q & 1))) {
-- q++;
-- x-=y;
-+ if ((xhi|xlo) == 0)
-+ ex = -120;
-+ else
-+ for (; xhi >> 48 == 0; xhi = 2*xhi + (xlo>>63), xlo = 2*xlo, ex--);
-+ ux.i2.hi = xhi;
-+ ux.i2.lo = xlo;
-+#endif
- }
-
-- ux.e = x;
-- ux.bits.sign ^= sx;
-- x = ux.e;
--
-+ /* scale result and decide between |x| and |x|-|y| */
-+ if (ex <= 0) {
-+ ux.i.se = ex + 120;
-+ ux.f *= 0x1p-120f;
-+ } else
-+ ux.i.se = ex;
-+ x = ux.f;
-+ if (sy)
-+ y = -y;
-+ if (ex == ey || (ex+1 == ey && (2*x > y || (2*x == y && q%2)))) {
-+ x -= y;
-+ q++;
-+ }
- q &= 0x7fffffff;
-- *quo = sxy ? -q : q;
-- return x;
-+ *quo = sx^sy ? -(int)q : (int)q;
-+ return sx ? -x : x;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/rint.c musl-git/src/math/rint.c
---- musl-0.9.13/src/math/rint.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/rint.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,90 +1,20 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_rint.c */
--/*
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunPro, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--/*
-- * rint(x)
-- * Return x rounded to integral value according to the prevailing
-- * rounding mode.
-- * Method:
-- * Using floating addition.
-- * Exception:
-- * Inexact flag raised if x not equal to rint(x).
-- */
--
--#include "libm.h"
--
--static const double
--TWO52[2] = {
-- 4.50359962737049600000e+15, /* 0x43300000, 0x00000000 */
-- -4.50359962737049600000e+15, /* 0xC3300000, 0x00000000 */
--};
-+#include <math.h>
-+#include <stdint.h>
-
- double rint(double x)
- {
-- int32_t i0,j0,sx;
-- uint32_t i,i1;
-- double w,t;
-+ union {double f; uint64_t i;} u = {x};
-+ int e = u.i>>52 & 0x7ff;
-+ int s = u.i>>63;
-+ double_t y;
-
-- EXTRACT_WORDS(i0, i1, x);
-- // FIXME: signed shift
-- sx = (i0>>31) & 1;
-- j0 = ((i0>>20)&0x7ff) - 0x3ff;
-- if (j0 < 20) {
-- if (j0 < 0) {
-- if (((i0&0x7fffffff)|i1) == 0)
-- return x;
-- i1 |= i0 & 0x0fffff;
-- i0 &= 0xfffe0000;
-- i0 |= ((i1|-i1)>>12) & 0x80000;
-- SET_HIGH_WORD(x, i0);
-- STRICT_ASSIGN(double, w, TWO52[sx] + x);
-- t = w - TWO52[sx];
-- GET_HIGH_WORD(i0, t);
-- SET_HIGH_WORD(t, (i0&0x7fffffff)|(sx<<31));
-- return t;
-- } else {
-- i = 0x000fffff>>j0;
-- if (((i0&i)|i1) == 0)
-- return x; /* x is integral */
-- i >>= 1;
-- if (((i0&i)|i1) != 0) {
-- /*
-- * Some bit is set after the 0.5 bit. To avoid the
-- * possibility of errors from double rounding in
-- * w = TWO52[sx]+x, adjust the 0.25 bit to a lower
-- * guard bit. We do this for all j0<=51. The
-- * adjustment is trickiest for j0==18 and j0==19
-- * since then it spans the word boundary.
-- */
-- if (j0 == 19)
-- i1 = 0x40000000;
-- else if (j0 == 18)
-- i1 = 0x80000000;
-- else
-- i0 = (i0 & ~i)|(0x20000>>j0);
-- }
-- }
-- } else if (j0 > 51) {
-- if (j0 == 0x400)
-- return x+x; /* inf or NaN */
-- return x; /* x is integral */
-- } else {
-- i = (uint32_t)0xffffffff>>(j0-20);
-- if ((i1&i) == 0)
-- return x; /* x is integral */
-- i >>= 1;
-- if ((i1&i) != 0)
-- i1 = (i1 & ~i)|(0x40000000>>(j0-20));
-- }
-- INSERT_WORDS(x, i0, i1);
-- STRICT_ASSIGN(double, w, TWO52[sx] + x);
-- return w - TWO52[sx];
-+ if (e >= 0x3ff+52)
-+ return x;
-+ if (s)
-+ y = (double)(x - 0x1p52) + 0x1p52;
-+ else
-+ y = (double)(x + 0x1p52) - 0x1p52;
-+ if (y == 0)
-+ return s ? -0.0 : 0;
-+ return y;
- }
-diff -Nur musl-0.9.13/src/math/rintf.c musl-git/src/math/rintf.c
---- musl-0.9.13/src/math/rintf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/rintf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,48 +1,20 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_rintf.c */
--/*
-- * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com.
-- */
--/*
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunPro, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--
--#include "libm.h"
--
--static const float
--TWO23[2] = {
-- 8.3886080000e+06, /* 0x4b000000 */
-- -8.3886080000e+06, /* 0xcb000000 */
--};
-+#include <math.h>
-+#include <stdint.h>
-
- float rintf(float x)
- {
-- int32_t i0,j0,sx;
-- float w,t;
-+ union {float f; uint32_t i;} u = {x};
-+ int e = u.i>>23 & 0xff;
-+ int s = u.i>>31;
-+ float_t y;
-
-- GET_FLOAT_WORD(i0, x);
-- sx = (i0>>31) & 1;
-- j0 = ((i0>>23)&0xff) - 0x7f;
-- if (j0 < 23) {
-- if (j0 < 0) {
-- if ((i0&0x7fffffff) == 0)
-- return x;
-- STRICT_ASSIGN(float, w, TWO23[sx] + x);
-- t = w - TWO23[sx];
-- GET_FLOAT_WORD(i0, t);
-- SET_FLOAT_WORD(t, (i0&0x7fffffff)|(sx<<31));
-- return t;
-- }
-- STRICT_ASSIGN(float, w, TWO23[sx] + x);
-- return w - TWO23[sx];
-- }
-- if (j0 == 0x80)
-- return x+x; /* inf or NaN */
-- return x; /* x is integral */
-+ if (e >= 0x7f+23)
-+ return x;
-+ if (s)
-+ y = (float)(x - 0x1p23f) + 0x1p23f;
-+ else
-+ y = (float)(x + 0x1p23f) - 0x1p23f;
-+ if (y == 0)
-+ return s ? -0.0f : 0.0f;
-+ return y;
- }
-diff -Nur musl-0.9.13/src/math/rintl.c musl-git/src/math/rintl.c
---- musl-0.9.13/src/math/rintl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/rintl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,30 +1,3 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_rintl.c */
--/*-
-- * Copyright (c) 2008 David Schultz <das@FreeBSD.ORG>
-- * All rights reserved.
-- *
-- * Redistribution and use in source and binary forms, with or without
-- * modification, are permitted provided that the following conditions
-- * are met:
-- * 1. Redistributions of source code must retain the above copyright
-- * notice, this list of conditions and the following disclaimer.
-- * 2. Redistributions in binary form must reproduce the above copyright
-- * notice, this list of conditions and the following disclaimer in the
-- * documentation and/or other materials provided with the distribution.
-- *
-- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-- * SUCH DAMAGE.
-- */
--
- #include "libm.h"
-
- #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-@@ -33,53 +6,26 @@
- return rint(x);
- }
- #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
--
--#define BIAS (LDBL_MAX_EXP - 1)
--
--static const float
--shift[2] = {
- #if LDBL_MANT_DIG == 64
-- 0x1.0p63, -0x1.0p63
-+#define TOINT 0x1p63
- #elif LDBL_MANT_DIG == 113
-- 0x1.0p112, -0x1.0p112
-+#define TOINT 0x1p112
- #endif
--};
--static const float zero[2] = { 0.0, -0.0 };
--
- long double rintl(long double x)
- {
-- union IEEEl2bits u;
-- uint32_t expsign;
-- int ex, sign;
--
-- u.e = x;
-- expsign = u.xbits.expsign;
-- ex = expsign & 0x7fff;
--
-- if (ex >= BIAS + LDBL_MANT_DIG - 1) {
-- if (ex == BIAS + LDBL_MAX_EXP)
-- return x + x; /* Inf, NaN, or unsupported format */
-- return x; /* finite and already an integer */
-- }
-- sign = expsign >> 15;
--
-- /*
-- * The following code assumes that intermediate results are
-- * evaluated in long double precision. If they are evaluated in
-- * greater precision, double rounding may occur, and if they are
-- * evaluated in less precision (as on i386), results will be
-- * wildly incorrect.
-- */
-- x += shift[sign];
-- x -= shift[sign];
--
-- /*
-- * If the result is +-0, then it must have the same sign as x, but
-- * the above calculation doesn't always give this. Fix up the sign.
-- */
-- if (ex < BIAS && x == 0.0)
-- return zero[sign];
--
-- return x;
-+ union ldshape u = {x};
-+ int e = u.i.se & 0x7fff;
-+ int s = u.i.se >> 15;
-+ long double y;
-+
-+ if (e >= 0x3fff+LDBL_MANT_DIG-1)
-+ return x;
-+ if (s)
-+ y = x - TOINT + TOINT;
-+ else
-+ y = x + TOINT - TOINT;
-+ if (y == 0)
-+ return 0*x;
-+ return y;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/round.c musl-git/src/math/round.c
---- musl-0.9.13/src/math/round.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/round.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,48 +1,28 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_round.c */
--/*-
-- * Copyright (c) 2003, Steven G. Kargl
-- * All rights reserved.
-- *
-- * Redistribution and use in source and binary forms, with or without
-- * modification, are permitted provided that the following conditions
-- * are met:
-- * 1. Redistributions of source code must retain the above copyright
-- * notice unmodified, this list of conditions, and the following
-- * disclaimer.
-- * 2. Redistributions in binary form must reproduce the above copyright
-- * notice, this list of conditions and the following disclaimer in the
-- * documentation and/or other materials provided with the distribution.
-- *
-- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- */
--
--#include <math.h>
-+#include "libm.h"
-
- double round(double x)
- {
-- double t;
-+ union {double f; uint64_t i;} u = {x};
-+ int e = u.i >> 52 & 0x7ff;
-+ double_t y;
-
-- if (!isfinite(x))
-+ if (e >= 0x3ff+52)
- return x;
--
-- if (x >= 0.0) {
-- t = floor(x);
-- if (t - x <= -0.5)
-- t += 1.0;
-- return t;
-- } else {
-- t = floor(-x);
-- if (t + x <= -0.5)
-- t += 1.0;
-- return -t;
-+ if (u.i >> 63)
-+ x = -x;
-+ if (e < 0x3ff-1) {
-+ /* raise inexact if x!=0 */
-+ FORCE_EVAL(x + 0x1p52);
-+ return 0*u.f;
- }
-+ y = (double)(x + 0x1p52) - 0x1p52 - x;
-+ if (y > 0.5)
-+ y = y + x - 1;
-+ else if (y <= -0.5)
-+ y = y + x + 1;
-+ else
-+ y = y + x;
-+ if (u.i >> 63)
-+ y = -y;
-+ return y;
- }
-diff -Nur musl-0.9.13/src/math/roundf.c musl-git/src/math/roundf.c
---- musl-0.9.13/src/math/roundf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/roundf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,48 +1,27 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_roundf.c */
--/*-
-- * Copyright (c) 2003, Steven G. Kargl
-- * All rights reserved.
-- *
-- * Redistribution and use in source and binary forms, with or without
-- * modification, are permitted provided that the following conditions
-- * are met:
-- * 1. Redistributions of source code must retain the above copyright
-- * notice unmodified, this list of conditions, and the following
-- * disclaimer.
-- * 2. Redistributions in binary form must reproduce the above copyright
-- * notice, this list of conditions and the following disclaimer in the
-- * documentation and/or other materials provided with the distribution.
-- *
-- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- */
--
--#include <math.h>
-+#include "libm.h"
-
- float roundf(float x)
- {
-- float t;
-+ union {float f; uint32_t i;} u = {x};
-+ int e = u.i >> 23 & 0xff;
-+ float_t y;
-
-- if (!isfinite(x))
-+ if (e >= 0x7f+23)
- return x;
--
-- if (x >= 0.0) {
-- t = floorf(x);
-- if (t - x <= -0.5)
-- t += 1.0;
-- return t;
-- } else {
-- t = floorf(-x);
-- if (t + x <= -0.5)
-- t += 1.0;
-- return -t;
-+ if (u.i >> 31)
-+ x = -x;
-+ if (e < 0x7f-1) {
-+ FORCE_EVAL(x + 0x1p23f);
-+ return 0*u.f;
- }
-+ y = (float)(x + 0x1p23f) - 0x1p23f - x;
-+ if (y > 0.5f)
-+ y = y + x - 1;
-+ else if (y <= -0.5f)
-+ y = y + x + 1;
-+ else
-+ y = y + x;
-+ if (u.i >> 31)
-+ y = -y;
-+ return y;
- }
-diff -Nur musl-0.9.13/src/math/roundl.c musl-git/src/math/roundl.c
---- musl-0.9.13/src/math/roundl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/roundl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,56 +1,39 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_roundl.c */
--/*-
-- * Copyright (c) 2003, Steven G. Kargl
-- * All rights reserved.
-- *
-- * Redistribution and use in source and binary forms, with or without
-- * modification, are permitted provided that the following conditions
-- * are met:
-- * 1. Redistributions of source code must retain the above copyright
-- * notice unmodified, this list of conditions, and the following
-- * disclaimer.
-- * 2. Redistributions in binary form must reproduce the above copyright
-- * notice, this list of conditions and the following disclaimer in the
-- * documentation and/or other materials provided with the distribution.
-- *
-- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- */
--
--#include <math.h>
--#include <float.h>
-+#include "libm.h"
-
- #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
- long double roundl(long double x)
- {
- return round(x);
- }
--#else
-+#elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
-+#if LDBL_MANT_DIG == 64
-+#define TOINT 0x1p63
-+#elif LDBL_MANT_DIG == 113
-+#define TOINT 0x1p112
-+#endif
- long double roundl(long double x)
- {
-- long double t;
-+ union ldshape u = {x};
-+ int e = u.i.se & 0x7fff;
-+ long double y;
-
-- if (!isfinite(x))
-+ if (e >= 0x3fff+LDBL_MANT_DIG-1)
- return x;
--
-- if (x >= 0.0) {
-- t = floorl(x);
-- if (t - x <= -0.5)
-- t += 1.0;
-- return t;
-- } else {
-- t = floorl(-x);
-- if (t + x <= -0.5)
-- t += 1.0;
-- return -t;
-+ if (u.i.se >> 15)
-+ x = -x;
-+ if (e < 0x3fff-1) {
-+ FORCE_EVAL(x + TOINT);
-+ return 0*u.f;
- }
-+ y = x + TOINT - TOINT - x;
-+ if (y > 0.5)
-+ y = y + x - 1;
-+ else if (y <= -0.5)
-+ y = y + x + 1;
-+ else
-+ y = y + x;
-+ if (u.i.se >> 15)
-+ y = -y;
-+ return y;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/scalbn.c musl-git/src/math/scalbn.c
---- musl-0.9.13/src/math/scalbn.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/scalbn.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,29 +1,31 @@
--#include "libm.h"
-+#include <math.h>
-+#include <stdint.h>
-
- double scalbn(double x, int n)
- {
-- double scale;
-+ union {double f; uint64_t i;} u;
-+ double_t y = x;
-
- if (n > 1023) {
-- x *= 0x1p1023;
-+ y *= 0x1p1023;
- n -= 1023;
- if (n > 1023) {
-- x *= 0x1p1023;
-+ y *= 0x1p1023;
- n -= 1023;
- if (n > 1023)
- n = 1023;
- }
- } else if (n < -1022) {
-- x *= 0x1p-1022;
-+ y *= 0x1p-1022;
- n += 1022;
- if (n < -1022) {
-- x *= 0x1p-1022;
-+ y *= 0x1p-1022;
- n += 1022;
- if (n < -1022)
- n = -1022;
- }
- }
-- INSERT_WORDS(scale, (uint32_t)(0x3ff+n)<<20, 0);
-- STRICT_ASSIGN(double, x, x * scale);
-+ u.i = (uint64_t)(0x3ff+n)<<52;
-+ x = y * u.f;
- return x;
- }
-diff -Nur musl-0.9.13/src/math/scalbnf.c musl-git/src/math/scalbnf.c
---- musl-0.9.13/src/math/scalbnf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/scalbnf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,29 +1,31 @@
--#include "libm.h"
-+#include <math.h>
-+#include <stdint.h>
-
- float scalbnf(float x, int n)
- {
-- float scale;
-+ union {float f; uint32_t i;} u;
-+ float_t y = x;
-
- if (n > 127) {
-- x *= 0x1p127f;
-+ y *= 0x1p127f;
- n -= 127;
- if (n > 127) {
-- x *= 0x1p127f;
-+ y *= 0x1p127f;
- n -= 127;
- if (n > 127)
- n = 127;
- }
- } else if (n < -126) {
-- x *= 0x1p-126f;
-+ y *= 0x1p-126f;
- n += 126;
- if (n < -126) {
-- x *= 0x1p-126f;
-+ y *= 0x1p-126f;
- n += 126;
- if (n < -126)
- n = -126;
- }
- }
-- SET_FLOAT_WORD(scale, (uint32_t)(0x7f+n)<<23);
-- STRICT_ASSIGN(float, x, x * scale);
-+ u.i = (uint32_t)(0x7f+n)<<23;
-+ x = y * u.f;
- return x;
- }
-diff -Nur musl-0.9.13/src/math/scalbnl.c musl-git/src/math/scalbnl.c
---- musl-0.9.13/src/math/scalbnl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/scalbnl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -8,7 +8,7 @@
- #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
- long double scalbnl(long double x, int n)
- {
-- union IEEEl2bits scale;
-+ union ldshape u;
-
- if (n > 16383) {
- x *= 0x1p16383L;
-@@ -29,8 +29,8 @@
- n = -16382;
- }
- }
-- scale.e = 1.0;
-- scale.bits.exp = 0x3fff + n;
-- return x * scale.e;
-+ u.f = 1.0;
-+ u.i.se = 0x3fff + n;
-+ return x * u.f;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/signgam.c musl-git/src/math/signgam.c
---- musl-0.9.13/src/math/signgam.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/signgam.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,4 +1,5 @@
--#include "libm.h"
-+#include <math.h>
-+#include "libc.h"
-
- int __signgam = 0;
-
-diff -Nur musl-0.9.13/src/math/sincosl.c musl-git/src/math/sincosl.c
---- musl-0.9.13/src/math/sincosl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/sincosl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -9,25 +9,19 @@
- #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
- void sincosl(long double x, long double *sin, long double *cos)
- {
-- union IEEEl2bits u;
-+ union ldshape u = {x};
- unsigned n;
- long double y[2], s, c;
-
-- u.e = x;
-- u.bits.sign = 0;
--
-- /* x = nan or inf */
-- if (u.bits.exp == 0x7fff) {
-+ u.i.se &= 0x7fff;
-+ if (u.i.se == 0x7fff) {
- *sin = *cos = x - x;
- return;
- }
--
-- /* |x| < (double)pi/4 */
-- if (u.e < M_PI_4) {
-- /* |x| < 0x1p-64 */
-- if (u.bits.exp < 0x3fff - 64) {
-+ if (u.f < M_PI_4) {
-+ if (u.i.se < 0x3fff - LDBL_MANT_DIG) {
- /* raise underflow if subnormal */
-- if (u.bits.exp == 0) FORCE_EVAL(x*0x1p-120f);
-+ if (u.i.se == 0) FORCE_EVAL(x*0x1p-120f);
- *sin = x;
- /* raise inexact if x!=0 */
- *cos = 1.0 + x;
-@@ -37,7 +31,6 @@
- *cos = __cosl(x, 0);
- return;
- }
--
- n = __rem_pio2l(x, y);
- s = __sinl(y[0], y[1], 1);
- c = __cosl(y[0], y[1]);
-diff -Nur musl-0.9.13/src/math/sinhl.c musl-git/src/math/sinhl.c
---- musl-0.9.13/src/math/sinhl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/sinhl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -8,10 +8,7 @@
- #elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
- long double sinhl(long double x)
- {
-- union {
-- long double f;
-- struct{uint64_t m; uint16_t se; uint16_t pad;} i;
-- } u = {.f = x};
-+ union ldshape u = {x};
- unsigned ex = u.i.se & 0x7fff;
- long double h, t, absx;
-
-diff -Nur musl-0.9.13/src/math/sinl.c musl-git/src/math/sinl.c
---- musl-0.9.13/src/math/sinl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/sinl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,31 +1,3 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_sinl.c */
--/*-
-- * Copyright (c) 2007 Steven G. Kargl
-- * All rights reserved.
-- *
-- * Redistribution and use in source and binary forms, with or without
-- * modification, are permitted provided that the following conditions
-- * are met:
-- * 1. Redistributions of source code must retain the above copyright
-- * notice unmodified, this list of conditions, and the following
-- * disclaimer.
-- * 2. Redistributions in binary form must reproduce the above copyright
-- * notice, this list of conditions and the following disclaimer in the
-- * documentation and/or other materials provided with the distribution.
-- *
-- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- */
--
--
- #include "libm.h"
-
- #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-@@ -36,46 +8,34 @@
- #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
- long double sinl(long double x)
- {
-- union IEEEl2bits z;
-+ union ldshape u = {x};
- unsigned n;
-- long double y[2];
-- long double hi, lo;
--
-- z.e = x;
-- z.bits.sign = 0;
-+ long double y[2], hi, lo;
-
-- /* If x = NaN or Inf, then sin(x) = NaN. */
-- if (z.bits.exp == 0x7fff)
-- return (x - x) / (x - x);
--
-- /* |x| < (double)pi/4 */
-- if (z.e < M_PI_4) {
-- /* |x| < 0x1p-64 */
-- if (z.bits.exp < 0x3fff - 64) {
-+ u.i.se &= 0x7fff;
-+ if (u.i.se == 0x7fff)
-+ return x - x;
-+ if (u.f < M_PI_4) {
-+ if (u.i.se < 0x3fff - LDBL_MANT_DIG/2) {
- /* raise inexact if x!=0 and underflow if subnormal */
-- FORCE_EVAL(z.bits.exp == 0 ? x/0x1p120f : x+0x1p120f);
-+ FORCE_EVAL(u.i.se == 0 ? x*0x1p-120f : x+0x1p120f);
- return x;
- }
- return __sinl(x, 0.0, 0);
- }
--
- n = __rem_pio2l(x, y);
- hi = y[0];
- lo = y[1];
- switch (n & 3) {
- case 0:
-- hi = __sinl(hi, lo, 1);
-- break;
-+ return __sinl(hi, lo, 1);
- case 1:
-- hi = __cosl(hi, lo);
-- break;
-+ return __cosl(hi, lo);
- case 2:
-- hi = -__sinl(hi, lo, 1);
-- break;
-+ return -__sinl(hi, lo, 1);
- case 3:
-- hi = -__cosl(hi, lo);
-- break;
-+ default:
-+ return -__cosl(hi, lo);
- }
-- return hi;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/sqrtl.c musl-git/src/math/sqrtl.c
---- musl-0.9.13/src/math/sqrtl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/sqrtl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -2,8 +2,6 @@
-
- long double sqrtl(long double x)
- {
-- /* FIXME: implement sqrtl in C. At least this works for now on
-- * ARM (which uses ld64), the only arch without sqrtl asm
-- * that's supported so far. */
-+ /* FIXME: implement in C, this is for LDBL_MANT_DIG == 64 only */
- return sqrt(x);
- }
-diff -Nur musl-0.9.13/src/math/tanhl.c musl-git/src/math/tanhl.c
---- musl-0.9.13/src/math/tanhl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/tanhl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -8,10 +8,7 @@
- #elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
- long double tanhl(long double x)
- {
-- union {
-- long double f;
-- struct{uint64_t m; uint16_t se; uint16_t pad;} i;
-- } u = {.f = x};
-+ union ldshape u = {x};
- unsigned ex = u.i.se & 0x7fff;
- unsigned sign = u.i.se & 0x8000;
- uint32_t w;
-diff -Nur musl-0.9.13/src/math/tanl.c musl-git/src/math/tanl.c
---- musl-0.9.13/src/math/tanl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/tanl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,35 +1,3 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_tanl.c */
--/*-
-- * Copyright (c) 2007 Steven G. Kargl
-- * All rights reserved.
-- *
-- * Redistribution and use in source and binary forms, with or without
-- * modification, are permitted provided that the following conditions
-- * are met:
-- * 1. Redistributions of source code must retain the above copyright
-- * notice unmodified, this list of conditions, and the following
-- * disclaimer.
-- * 2. Redistributions in binary form must reproduce the above copyright
-- * notice, this list of conditions and the following disclaimer in the
-- * documentation and/or other materials provided with the distribution.
-- *
-- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-- * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-- */
--/*
-- * Limited testing on pseudorandom numbers drawn within [0:4e8] shows
-- * an accuracy of <= 1.5 ULP where 247024 values of x out of 40 million
-- * possibles resulted in tan(x) that exceeded 0.5 ULP (ie., 0.6%).
-- */
--
- #include "libm.h"
-
- #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-@@ -40,28 +8,21 @@
- #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
- long double tanl(long double x)
- {
-- union IEEEl2bits z;
-+ union ldshape u = {x};
- long double y[2];
- unsigned n;
-
-- z.e = x;
-- z.bits.sign = 0;
--
-- /* If x = NaN or Inf, then tan(x) = NaN. */
-- if (z.bits.exp == 0x7fff)
-- return (x - x) / (x - x);
--
-- /* |x| < (double)pi/4 */
-- if (z.e < M_PI_4) {
-- /* |x| < 0x1p-64 */
-- if (z.bits.exp < 0x3fff - 64) {
-+ u.i.se &= 0x7fff;
-+ if (u.i.se == 0x7fff)
-+ return x - x;
-+ if (u.f < M_PI_4) {
-+ if (u.i.se < 0x3fff - LDBL_MANT_DIG/2) {
- /* raise inexact if x!=0 and underflow if subnormal */
-- FORCE_EVAL(z.bits.exp == 0 ? x/0x1p120f : x+0x1p120f);
-+ FORCE_EVAL(u.i.se == 0 ? x*0x1p-120f : x+0x1p120f);
- return x;
- }
- return __tanl(x, 0, 0);
- }
--
- n = __rem_pio2l(x, y);
- return __tanl(y[0], y[1], n&1);
- }
-diff -Nur musl-0.9.13/src/math/trunc.c musl-git/src/math/trunc.c
---- musl-0.9.13/src/math/trunc.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/trunc.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,63 +1,19 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_trunc.c */
--/*
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunPro, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--/*
-- * trunc(x)
-- * Return x rounded toward 0 to integral value
-- * Method:
-- * Bit twiddling.
-- * Exception:
-- * Inexact flag raised if x not equal to trunc(x).
-- */
--
- #include "libm.h"
-
--static const double huge = 1.0e300;
--
- double trunc(double x)
- {
-- int32_t i0,i1,j0;
-- uint32_t i;
-+ union {double f; uint64_t i;} u = {x};
-+ int e = (int)(u.i >> 52 & 0x7ff) - 0x3ff + 12;
-+ uint64_t m;
-
-- EXTRACT_WORDS(i0, i1, x);
-- j0 = ((i0>>20)&0x7ff) - 0x3ff;
-- if (j0 < 20) {
-- if (j0 < 0) { /* |x|<1, return 0*sign(x) */
-- /* raise inexact if x != 0 */
-- if (huge+x > 0.0) {
-- i0 &= 0x80000000U;
-- i1 = 0;
-- }
-- } else {
-- i = 0x000fffff>>j0;
-- if (((i0&i)|i1) == 0)
-- return x; /* x is integral */
-- /* raise inexact */
-- if (huge+x > 0.0) {
-- i0 &= ~i;
-- i1 = 0;
-- }
-- }
-- } else if (j0 > 51) {
-- if (j0 == 0x400)
-- return x + x; /* inf or NaN */
-- return x; /* x is integral */
-- } else {
-- i = (uint32_t)0xffffffff>>(j0-20);
-- if ((i1&i) == 0)
-- return x; /* x is integral */
-- /* raise inexact */
-- if (huge+x > 0.0)
-- i1 &= ~i;
-- }
-- INSERT_WORDS(x, i0, i1);
-- return x;
-+ if (e >= 52 + 12)
-+ return x;
-+ if (e < 12)
-+ e = 1;
-+ m = -1ULL >> e;
-+ if ((u.i & m) == 0)
-+ return x;
-+ FORCE_EVAL(x + 0x1p120f);
-+ u.i &= ~m;
-+ return u.f;
- }
-diff -Nur musl-0.9.13/src/math/truncf.c musl-git/src/math/truncf.c
---- musl-0.9.13/src/math/truncf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/truncf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,52 +1,19 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_truncf.c */
--/*
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunPro, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--/*
-- * truncf(x)
-- * Return x rounded toward 0 to integral value
-- * Method:
-- * Bit twiddling.
-- * Exception:
-- * Inexact flag raised if x not equal to truncf(x).
-- */
--
- #include "libm.h"
-
--static const float huge = 1.0e30f;
--
- float truncf(float x)
- {
-- int32_t i0,j0;
-- uint32_t i;
-+ union {float f; uint32_t i;} u = {x};
-+ int e = (int)(u.i >> 23 & 0xff) - 0x7f + 9;
-+ uint32_t m;
-
-- GET_FLOAT_WORD(i0, x);
-- j0 = ((i0>>23)&0xff) - 0x7f;
-- if (j0 < 23) {
-- if (j0 < 0) { /* |x|<1, return 0*sign(x) */
-- /* raise inexact if x != 0 */
-- if (huge+x > 0.0f)
-- i0 &= 0x80000000;
-- } else {
-- i = 0x007fffff>>j0;
-- if ((i0&i) == 0)
-- return x; /* x is integral */
-- /* raise inexact */
-- if (huge+x > 0.0f)
-- i0 &= ~i;
-- }
-- } else {
-- if (j0 == 0x80)
-- return x + x; /* inf or NaN */
-- return x; /* x is integral */
-- }
-- SET_FLOAT_WORD(x, i0);
-- return x;
-+ if (e >= 23 + 9)
-+ return x;
-+ if (e < 9)
-+ e = 1;
-+ m = -1U >> e;
-+ if ((u.i & m) == 0)
-+ return x;
-+ FORCE_EVAL(x + 0x1p120f);
-+ u.i &= ~m;
-+ return u.f;
- }
-diff -Nur musl-0.9.13/src/math/truncl.c musl-git/src/math/truncl.c
---- musl-0.9.13/src/math/truncl.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/truncl.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,23 +1,3 @@
--/* origin: FreeBSD /usr/src/lib/msun/src/s_truncl.c */
--/*
-- * ====================================================
-- * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-- *
-- * Developed at SunPro, a Sun Microsystems, Inc. business.
-- * Permission to use, copy, modify, and distribute this
-- * software is freely granted, provided that this notice
-- * is preserved.
-- * ====================================================
-- */
--/*
-- * truncl(x)
-- * Return x rounded toward 0 to integral value
-- * Method:
-- * Bit twiddling.
-- * Exception:
-- * Inexact flag raised if x not equal to truncl(x).
-- */
--
- #include "libm.h"
-
- #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
-@@ -26,43 +6,31 @@
- return trunc(x);
- }
- #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
--#ifdef LDBL_IMPLICIT_NBIT
--#define MANH_SIZE (LDBL_MANH_SIZE + 1)
--#else
--#define MANH_SIZE LDBL_MANH_SIZE
-+#if LDBL_MANT_DIG == 64
-+#define TOINT 0x1p63
-+#elif LDBL_MANT_DIG == 113
-+#define TOINT 0x1p112
- #endif
--
--static const long double huge = 1.0e300;
--static const float zero[] = { 0.0, -0.0 };
--
- long double truncl(long double x)
- {
-- union IEEEl2bits u = { .e = x };
-- int e = u.bits.exp - LDBL_MAX_EXP + 1;
-+ union ldshape u = {x};
-+ int e = u.i.se & 0x7fff;
-+ int s = u.i.se >> 15;
-+ long double y;
-
-- if (e < MANH_SIZE - 1) {
-- if (e < 0) {
-- /* raise inexact if x != 0 */
-- if (huge + x > 0.0)
-- u.e = zero[u.bits.sign];
-- } else {
-- uint64_t m = ((1llu << MANH_SIZE) - 1) >> (e + 1);
-- if (((u.bits.manh & m) | u.bits.manl) == 0)
-- return x; /* x is integral */
-- /* raise inexact */
-- if (huge + x > 0.0) {
-- u.bits.manh &= ~m;
-- u.bits.manl = 0;
-- }
-- }
-- } else if (e < LDBL_MANT_DIG - 1) {
-- uint64_t m = (uint64_t)-1 >> (64 - LDBL_MANT_DIG + e + 1);
-- if ((u.bits.manl & m) == 0)
-- return x; /* x is integral */
-- /* raise inexact */
-- if (huge + x > 0.0)
-- u.bits.manl &= ~m;
-+ if (e >= 0x3fff+LDBL_MANT_DIG-1)
-+ return x;
-+ if (e <= 0x3fff-1) {
-+ FORCE_EVAL(x + 0x1p120f);
-+ return x*0;
- }
-- return u.e;
-+ /* y = int(|x|) - |x|, where int(|x|) is an integer neighbor of |x| */
-+ if (s)
-+ x = -x;
-+ y = x + TOINT - TOINT - x;
-+ if (y > 0)
-+ y -= 1;
-+ x += y;
-+ return s ? -x : x;
- }
- #endif
-diff -Nur musl-0.9.13/src/math/x86_64/ceill.s musl-git/src/math/x86_64/ceill.s
---- musl-0.9.13/src/math/x86_64/ceill.s 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/x86_64/ceill.s 2013-09-16 20:31:39.000000000 +0200
-@@ -1 +1 @@
--# see floor.s
-+# see floorl.s
-diff -Nur musl-0.9.13/src/math/x86_64/exp2l.s musl-git/src/math/x86_64/exp2l.s
---- musl-0.9.13/src/math/x86_64/exp2l.s 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/x86_64/exp2l.s 2013-09-16 20:31:39.000000000 +0200
-@@ -4,8 +4,18 @@
- fldt 8(%rsp)
- fldl2e
- fmulp
-+ movl $0xc2820000,-4(%rsp)
-+ flds -4(%rsp)
-+ fucomp %st(1)
-+ fnstsw %ax
-+ sahf
- fld1
-- fld %st(1)
-+ jb 1f
-+ # x*log2e <= -65, return -1 without underflow
-+ fstp %st(1)
-+ fchs
-+ ret
-+1: fld %st(1)
- fabs
- fucom %st(1)
- fnstsw %ax
-@@ -26,44 +36,32 @@
- .type exp2l,@function
- exp2l:
- fldt 8(%rsp)
--1: mov $0x467ff000,%eax
-- mov %eax,-16(%rsp)
-- mov $0x80000000,%eax
-- mov %eax,-20(%rsp)
-- xor %eax,%eax
-- mov %eax,-24(%rsp)
-- flds -16(%rsp) # 16380
-+1: fld %st(0)
-+ sub $16,%rsp
-+ fstpt (%rsp)
-+ mov 8(%rsp),%ax
-+ and $0x7fff,%ax
-+ cmp $0x3fff+13,%ax
-+ jb 4f # |x| < 8192
-+ cmp $0x3fff+15,%ax
-+ jae 3f # |x| >= 32768
-+ fsts (%rsp)
-+ cmpl $0xc67ff800,(%rsp)
-+ jb 2f # x > -16382
-+ movl $0x5f000000,(%rsp)
-+ flds (%rsp) # 0x1p63
- fld %st(1)
-- fabs
-- fucom %st(1)
-+ fsub %st(1)
-+ faddp
-+ fucomp %st(1)
- fnstsw
-- fstp %st(0)
-- fstp %st(0)
- sahf
-- ja 3f # |x| > 16380
-- jp 2f # x is nan (avoid invalid except in fistp)
-- fld %st(0)
-- fistpl -16(%rsp)
-- fildl -16(%rsp)
-- fxch %st(1)
-- fsub %st(1)
-- mov $0x3fff,%eax
-- add %eax,-16(%rsp)
-- f2xm1
-- fld1
-- faddp # 2^(x-rint(x))
-- fldt -24(%rsp) # 2^rint(x)
-- fmulp
--2: fstp %st(1)
-- ret
--
--3: fld %st(0)
-- fstpt -24(%rsp)
-- fld1
-- mov -15(%rsp),%ax
-- and $0x7fff,%ax
-- cmp $0x7fff,%ax
-- je 1f # x = +-inf
-+ je 2f # x - 0x1p63 + 0x1p63 == x
-+ movl $1,(%rsp)
-+ flds (%rsp) # 0x1p-149
-+ fdiv %st(1)
-+ fstps (%rsp) # raise underflow
-+2: fld1
- fld %st(1)
- frndint
- fxch %st(2)
-@@ -72,4 +70,21 @@
- faddp # 2^(x-rint(x))
- 1: fscale
- fstp %st(1)
-+ add $16,%rsp
-+ ret
-+3: xor %eax,%eax
-+4: cmp $0x3fff-64,%ax
-+ fld1
-+ jb 1b # |x| < 0x1p-64
-+ fstpt (%rsp)
-+ fistl 8(%rsp)
-+ fildl 8(%rsp)
-+ fsubrp %st(1)
-+ addl $0x3fff,8(%rsp)
-+ f2xm1
-+ fld1
-+ faddp # 2^(x-rint(x))
-+ fldt (%rsp) # 2^rint(x)
-+ fmulp
-+ add $16,%rsp
- ret
-diff -Nur musl-0.9.13/src/math/x86_64/lrintl.s musl-git/src/math/x86_64/lrintl.s
---- musl-0.9.13/src/math/x86_64/lrintl.s 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/x86_64/lrintl.s 2013-09-16 20:31:39.000000000 +0200
-@@ -2,6 +2,6 @@
- .type lrintl,@function
- lrintl:
- fldt 8(%rsp)
-- fistpl 8(%rsp)
-- mov 8(%rsp),%eax
-+ fistpll 8(%rsp)
-+ mov 8(%rsp),%rax
- ret
-diff -Nur musl-0.9.13/src/math/x86_64/truncl.s musl-git/src/math/x86_64/truncl.s
---- musl-0.9.13/src/math/x86_64/truncl.s 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/math/x86_64/truncl.s 2013-09-16 20:31:39.000000000 +0200
-@@ -1 +1 @@
--# see floor.s
-+# see floorl.s
-diff -Nur musl-0.9.13/src/misc/realpath.c musl-git/src/misc/realpath.c
---- musl-0.9.13/src/misc/realpath.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/misc/realpath.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,10 +1,11 @@
- #include <stdlib.h>
--#include <stdio.h>
- #include <limits.h>
- #include <sys/stat.h>
- #include <fcntl.h>
- #include <errno.h>
- #include <unistd.h>
-+#include <string.h>
-+#include "syscall.h"
-
- void __procfdname(char *, unsigned);
-
-@@ -14,38 +15,31 @@
- ssize_t r;
- struct stat st1, st2;
- char buf[15+3*sizeof(int)];
-- int alloc = 0;
-+ char tmp[PATH_MAX];
-
- if (!filename) {
- errno = EINVAL;
- return 0;
- }
-
-- fd = open(filename, O_RDONLY|O_NONBLOCK|O_CLOEXEC);
-+ fd = syscall(SYS_open, filename, O_PATH|O_NONBLOCK|O_CLOEXEC|O_LARGEFILE);
- if (fd < 0) return 0;
- __procfdname(buf, fd);
-
-- if (!resolved) {
-- alloc = 1;
-- resolved = malloc(PATH_MAX);
-- if (!resolved) return 0;
-- }
--
-- r = readlink(buf, resolved, PATH_MAX-1);
-+ r = readlink(buf, tmp, sizeof tmp - 1);
- if (r < 0) goto err;
-- resolved[r] = 0;
-+ tmp[r] = 0;
-
- fstat(fd, &st1);
-- r = stat(resolved, &st2);
-+ r = stat(tmp, &st2);
- if (r<0 || st1.st_dev != st2.st_dev || st1.st_ino != st2.st_ino) {
- if (!r) errno = ELOOP;
- goto err;
- }
-
-- close(fd);
-- return resolved;
-+ __syscall(SYS_close, fd);
-+ return resolved ? strcpy(resolved, tmp) : strdup(tmp);
- err:
-- if (alloc) free(resolved);
-- close(fd);
-+ __syscall(SYS_close, fd);
- return 0;
- }
-diff -Nur musl-0.9.13/src/mman/mprotect.c musl-git/src/mman/mprotect.c
---- musl-0.9.13/src/mman/mprotect.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/mman/mprotect.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,5 +1,5 @@
- #include <sys/mman.h>
--#include <limits.h>
-+#include "libc.h"
- #include "syscall.h"
-
- int mprotect(void *addr, size_t len, int prot)
-diff -Nur musl-0.9.13/src/signal/sigemptyset.c musl-git/src/signal/sigemptyset.c
---- musl-0.9.13/src/signal/sigemptyset.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/signal/sigemptyset.c 2013-09-16 20:31:39.000000000 +0200
-@@ -4,6 +4,10 @@
- int sigemptyset(sigset_t *set)
- {
- set->__bits[0] = 0;
-- if (sizeof(long)==4) set->__bits[1] = 0;
-+ if (sizeof(long)==4 || _NSIG > 65) set->__bits[1] = 0;
-+ if (sizeof(long)==4 && _NSIG > 65) {
-+ set->__bits[2] = 0;
-+ set->__bits[3] = 0;
-+ }
- return 0;
- }
-diff -Nur musl-0.9.13/src/signal/sigfillset.c musl-git/src/signal/sigfillset.c
---- musl-0.9.13/src/signal/sigfillset.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/signal/sigfillset.c 2013-09-16 20:31:39.000000000 +0200
-@@ -7,8 +7,13 @@
- #if ULONG_MAX == 0xffffffff
- set->__bits[0] = 0x7ffffffful;
- set->__bits[1] = 0xfffffffcul;
-+ if (_NSIG > 65) {
-+ set->__bits[2] = 0xfffffffful;
-+ set->__bits[3] = 0xfffffffful;
-+ }
- #else
- set->__bits[0] = 0xfffffffc7ffffffful;
-+ if (_NSIG > 65) set->__bits[1] = 0xfffffffffffffffful;
- #endif
- return 0;
- }
-diff -Nur musl-0.9.13/src/signal/sigqueue.c musl-git/src/signal/sigqueue.c
---- musl-0.9.13/src/signal/sigqueue.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/signal/sigqueue.c 2013-09-16 20:31:39.000000000 +0200
-@@ -3,6 +3,7 @@
- #include <unistd.h>
- #include <stdint.h>
- #include "syscall.h"
-+#include "pthread_impl.h"
-
- int sigqueue(pid_t pid, int sig, const union sigval value)
- {
-@@ -14,9 +15,9 @@
- si.si_code = SI_QUEUE;
- si.si_value = value;
- si.si_uid = getuid();
-- pthread_sigmask(SIG_BLOCK, (void *)(uint64_t[1]){-1}, &set);
-+ __block_app_sigs(&set);
- si.si_pid = getpid();
- r = syscall(SYS_rt_sigqueueinfo, pid, sig, &si);
-- pthread_sigmask(SIG_SETMASK, &set, 0);
-+ __restore_sigs(&set);
- return r;
- }
-diff -Nur musl-0.9.13/src/stdio/popen.c musl-git/src/stdio/popen.c
---- musl-0.9.13/src/stdio/popen.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/stdio/popen.c 2013-09-16 20:31:39.000000000 +0200
-@@ -39,7 +39,7 @@
- * remove the close-on-exec flag in the child without also creating
- * a file descriptor leak race condition in the parent. */
- if (p[1-op] == 1-op) {
-- int tmp = fcntl(F_DUPFD_CLOEXEC, 1-op, 0);
-+ int tmp = fcntl(1-op, F_DUPFD_CLOEXEC, 0);
- if (tmp < 0) {
- e = errno;
- goto fail;
-diff -Nur musl-0.9.13/src/stdio/vfscanf.c musl-git/src/stdio/vfscanf.c
---- musl-0.9.13/src/stdio/vfscanf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/stdio/vfscanf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -118,6 +118,8 @@
- }
-
- if (*p=='m') {
-+ wcs = 0;
-+ s = 0;
- alloc = !!dest;
- p++;
- } else {
-diff -Nur musl-0.9.13/src/stdio/vfwscanf.c musl-git/src/stdio/vfwscanf.c
---- musl-0.9.13/src/stdio/vfwscanf.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/stdio/vfwscanf.c 2013-09-16 20:31:39.000000000 +0200
-@@ -143,6 +143,8 @@
- }
-
- if (*p=='m') {
-+ wcs = 0;
-+ s = 0;
- alloc = !!dest;
- p++;
- } else {
-diff -Nur musl-0.9.13/src/temp/__randname.c musl-git/src/temp/__randname.c
---- musl-0.9.13/src/temp/__randname.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/temp/__randname.c 2013-09-16 20:31:39.000000000 +0200
-@@ -5,7 +5,7 @@
- int __clock_gettime(clockid_t, struct timespec *);
-
- /* This assumes that a check for the
-- template size has alrady been made */
-+ template size has already been made */
- char *__randname(char *template)
- {
- int i;
-diff -Nur musl-0.9.13/src/thread/mips/clone.s musl-git/src/thread/mips/clone.s
---- musl-0.9.13/src/thread/mips/clone.s 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/thread/mips/clone.s 2013-09-16 20:31:39.000000000 +0200
-@@ -3,6 +3,7 @@
- .type __clone,@function
- __clone:
- # Save function pointer and argument pointer on new thread stack
-+ and $5, $5, -8
- subu $5, $5, 16
- sw $4, 0($5)
- sw $7, 4($5)
-@@ -11,15 +12,18 @@
- lw $6, 16($sp)
- lw $7, 20($sp)
- lw $9, 24($sp)
-+ subu $sp, $sp, 16
- sw $9, 16($sp)
- li $2, 4120
- syscall
- beq $7, $0, 1f
- nop
-+ addu $sp, $sp, 16
- jr $ra
- subu $2, $0, $2
- 1: beq $2, $0, 1f
- nop
-+ addu $sp, $sp, 16
- jr $ra
- nop
- 1: lw $25, 0($sp)
-diff -Nur musl-0.9.13/src/thread/pthread_create.c musl-git/src/thread/pthread_create.c
---- musl-0.9.13/src/thread/pthread_create.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/thread/pthread_create.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,5 +1,7 @@
-+#define _GNU_SOURCE
- #include "pthread_impl.h"
- #include "stdio_impl.h"
-+#include "libc.h"
- #include <sys/mman.h>
-
- static void dummy_0()
-@@ -127,7 +129,9 @@
- size_t size, guard;
- struct pthread *self = pthread_self(), *new;
- unsigned char *map = 0, *stack = 0, *tsd = 0, *stack_limit;
-- unsigned flags = 0x7d8f00;
-+ unsigned flags = CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND
-+ | CLONE_THREAD | CLONE_SYSVSEM | CLONE_SETTLS
-+ | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID | CLONE_DETACHED;
- int do_sched = 0;
- pthread_attr_t attr = {0};
-
-@@ -197,7 +201,7 @@
- new->tsd = (void *)tsd;
- if (attr._a_detach) {
- new->detached = 1;
-- flags -= 0x200000;
-+ flags -= CLONE_CHILD_CLEARTID;
- }
- if (attr._a_sched) {
- do_sched = new->startlock[0] = 1;
-diff -Nur musl-0.9.13/src/thread/pthread_getattr_np.c musl-git/src/thread/pthread_getattr_np.c
---- musl-0.9.13/src/thread/pthread_getattr_np.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/thread/pthread_getattr_np.c 2013-09-16 20:31:39.000000000 +0200
-@@ -1,5 +1,6 @@
- #define _GNU_SOURCE
- #include "pthread_impl.h"
-+#include "libc.h"
- #include <sys/mman.h>
-
- int pthread_getattr_np(pthread_t t, pthread_attr_t *a)
-diff -Nur musl-0.9.13/src/thread/synccall.c musl-git/src/thread/synccall.c
---- musl-0.9.13/src/thread/synccall.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/thread/synccall.c 2013-09-16 20:31:39.000000000 +0200
-@@ -43,7 +43,7 @@
- pthread_t self;
- struct sigaction sa;
- struct chain *next;
-- uint64_t oldmask;
-+ sigset_t oldmask;
-
- if (!libc.threads_minus_1) {
- func(ctx);
-@@ -52,12 +52,12 @@
-
- __inhibit_ptc();
-
-- __syscall(SYS_rt_sigprocmask, SIG_BLOCK, SIGALL_SET,
-- &oldmask, _NSIG/8);
-+ __block_all_sigs(&oldmask);
-
- sem_init(&chaindone, 0, 0);
- sem_init(&chainlock, 0, 1);
- chainlen = 0;
-+ head = 0;
- callback = func;
- context = ctx;
-
-@@ -70,6 +70,10 @@
- sigqueue(self->pid, SIGSYNCCALL, (union sigval){0});
- while (sem_wait(&chaindone));
-
-+ sa.sa_flags = 0;
-+ sa.sa_handler = SIG_IGN;
-+ __libc_sigaction(SIGSYNCCALL, &sa, 0);
-+
- for (cur=head; cur; cur=cur->next) {
- sem_post(&cur->sem);
- while (sem_wait(&cur->sem2));
-@@ -81,12 +85,7 @@
- sem_post(&cur->sem);
- }
-
-- sa.sa_flags = 0;
-- sa.sa_handler = SIG_IGN;
-- __libc_sigaction(SIGSYNCCALL, &sa, 0);
--
-- __syscall(SYS_rt_sigprocmask, SIG_SETMASK,
-- &oldmask, 0, _NSIG/8);
-+ __restore_sigs(&oldmask);
-
- __release_ptc();
- }
-diff -Nur musl-0.9.13/src/unistd/faccessat.c musl-git/src/unistd/faccessat.c
---- musl-0.9.13/src/unistd/faccessat.c 2013-08-30 23:30:53.000000000 +0200
-+++ musl-git/src/unistd/faccessat.c 2013-09-16 20:31:39.000000000 +0200
-@@ -19,7 +19,7 @@
- __syscall(SYS_exit, 1);
- ret = __syscall(SYS_faccessat, c->fd, c->filename, c->amode, 0);
- __syscall(SYS_write, c->p, &ret, sizeof ret);
-- __syscall(SYS_exit, 0);
-+ return 0;
- }
-
- int faccessat(int fd, const char *filename, int amode, int flag)