diff options
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) |